您好,欢迎访问三七文档
陕西国防工业职业技术学院基于AT89C51单片机的多音阶电子琴设计题目基于AT89C51单片机的多音阶电子琴设计专业电子信息工程技术班级信息3101组员徐航刘国翠张秀珍袁红梅伍超金鑫目录项目描述项目要求系统设计3.1框图设计硬件设计4.1电路原理图软件设计5.1程序流程图5.2电子琴程序:5.3AT98C51引脚图5.4面包板的使用5.5无焊面包板5.6系统仿真及调试5.7功能的实现小结:基于AT89C51单片机的多音阶电子琴设计项目描述电子琴是现代科技与音乐结合的产物,是一种新型的键盘乐器。电子琴在现代音乐中扮演着重要的角色。单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本项目中的主要内容是以AT89C51单片机为核心的控制元件,设计一个多音阶电子琴。它具有硬件电路简单,软件功能完善,控制系统可靠,性价比高等优点,具有一定的实用价值。项目要求基于AT89C51单片机的多音阶电子琴设计要求如下:(1)由4*4组成16个按键矩阵,设计成16个音节。(2)可随意弹奏想要表达的音乐。系统设计3.1框图设计基于AT89C51单片机的多音阶电子琴系统框图电源电路复位电路晶振电路AT89C51单片机音频放大电路扬声器4*4按键矩阵电路硬件设计4.1电路原理图4.2元器件清单序号元件名称规格数量用途151单片机AT89C511控制核心2晶振12M立式1晶振电路3三极管90121音频放大电路4按键16按键电路5电解电容10uF/10V1复位电路6瓷片电容30PF瓷片电容2晶振电路7电阻10K1音频放大电路电阻4.7K1电阻100欧18喇叭8欧/0.5W1扬声器9电源5V/0.5A1提供+5V软件设计5.1程序流程图开始T0初始化并开中断允许T0中断按键按下成功否?根据按键功能,将音符T直装入到T0中启动T0工作按键释放成功否?停止T0工作NYNYT0中断入口设置T0计数初值P1.0取反输出返回5.2电子琴程序:ORG0000HLJMPMAINORG000BHLJMPTIMER0ORG0100HMAIN:DATABUFDATA30HMOVDPTR,#TABMOVTMOD,#01H;设置定时器0和定时器1工作方式1下SETBEA;开中断SETBET0;开定时器0中断START:MOVR7,#11110111B;R7暂存键扫描码,低4位作为键扫描输出MOVR6,#00H;R6作为键值的暂存寄存器MOVR5,#04H;R5作为行扫描的计数器MOVP2,R7;扫描口送P2口KEY_SCAN:MOVR4,#04H;R4作为列扫描的计数器ORLP2,#0F0H;设置P2.4—P2。7为读引脚模式MOVA,P2;读P2口引脚的数据MOVDATABUF,A;将读入的P2口数据存入DATABUF单元SETBC;CY=1LINE_DEC:RLCA;A中数据循环左移JNCKEY_VAL;若CY=0,表明某列某键被按下,转去执行取键值程序INCR6;若CY=1,某列无按键被按下,R6递增DJNZR4,LINE_DEC;判断每行的第4列是否扫描完毕,没有则继续MOVA,R7;每行的4列都扫描完,无按键下,去扫描码RRA;右移A中的数据MOVR7,A;扫描码存回R7MOVP2,A;扫描码送P2口DJNZR5,KEY_SCAN;判断4行是否扫描完毕LJMPSTART;扫描完的话,跳回STARTKEY_VAL:LCALLDELAY20MS;延时20msORLP2,#0F0H;置P2口为读引脚MOVA,P2;P2口数据送给ACJNEA,DATABUF,START;新读入的数据和上次读入的数据比较,若相同表明是某键被按下MOV31H,R6;R6中存的是对应的键值送31H单元保存LCALLTABLE;调用查表程序,给定时器0赋初值SETBTR0;启动T0LOOP:MOVP2,#0F0HMOVA,P2CJNEA,#0F0H,LOOP;判断按键是否释放CLRTR0;已释放按键,关闭T0LJMPSTART;******定时器0中断服务程序******TIMER0:PUSHACCPUSHPSWCLRTR0;关闭T0MOVTH0,32H;TH0←(32H),计数器初值高8位赋值MOVTL0,33H ;TH0←(33H),计数器初值低8位SETBTR0 ;启动T0CPLP1.0 ;P1.0输入取反POPPSWPOPACCRETIDELAY20MS: ;延时20ms子程序MOVR1,#20LOOP2:MOVR0,#149LOOP1:DJNZR0,LOOP1DJNZR1,LOOP2RETTABLE:MOVA,31HCLRCRLCAMOVR2,AMOVCA,@A+DPTRMOV32H,AMOVTH0,AINCR2MOVA,R2MOVCA,@A+DPTRMOV33H,AMOVTL0,ARET;每个音符对应的计数初值表TAB:DW64021,64103,64260,64400DW64524,64580,64684,64777DW64820,64898,64968,65030DW65058,65110,65157,65178END5.3AT98C51引脚图AT89S51单片机引脚介绍AT89S51有PDIP、PLCC、TQFP三种封装方式,其中最常见的就是采用40Pin封装的双列直接PDIP封装,芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口(见右图)左边那列引脚逆时针数起,依次为1、2、3、4。。。40,其中芯片的1脚顶上有个凹点(见右图)。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。1、主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线2、外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端3、控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。芯片实物图片芯片引脚功能4、可编程输入/输出引脚(32根)AT89S51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。每一根引脚都可以编程,比如用来控制电机、交通灯、霓虹灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能,尽情发挥你的想象力吧,实现你想要的:)强大无比。PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7上面就是AT89S51单片机引脚的简单介绍,其它51系列家族的单片机8031、8051、89C51等引脚和89S51兼容,只是个别引脚功能定义不同。5.4面包板的使用1.面包板的构造面包板即"集成电路实验板",就是一种插件板,此"板"上具有若干小型"插座(孔)".在进行电路实验时,可以根据电路连接要求,在相应孔内插入电子元器件的引脚以及导线等,使其与孔内弹性接触簧片接触,由此连接成所需的实验电路。面包板是专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。5.5无焊面包板 【名称】:面包板(也称万用线路板或集成电路实验板)由于板子上有很多小插孔,很像面包中的小孔,因此得名。 【分类】:单面包板,组合面包板,无焊面包板。 【构造】:整板使用热固性酚醛树脂制造,板底有金属条,在板上对应位置打孔使得元件插入孔中时能够与金属条接触,从而达到导电目的。一般将每5个孔板用一条金属条连接。板子中央一般有一条凹槽,这是针对需要集成电路、芯片试验而设计的。板子两侧有两排竖着的插孔,也是5个一组。这两组插孔是用于给板子上的元件提供电源。 母板使用带铜箔导电层的玻璃纤维板,作用是把无焊面包板固定,并且引出电源接线柱。 【内部结构】:面包板上下部分内部连线和中间部分不同,如图:面包板内部结构图【用途】:对集成电路进行试验 【使用】:不用焊接和手动接线,将元件插入孔中就可测试电路及元件,使用方便。使用前应确定哪些元件的引脚应连在一起,再将要连接在一起的引脚插入同一组的5个小孔中。5.6系统仿真及调试1.硬件调试(1)先排除硬件电路故障,包括设计性错误和工艺性故障。其原则是先静态后动态。(2)利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否连接正确,是否有短路现象。(3)先要将单片机AT89S52新品取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,若这些都没有问题,则接上仿真机进行联机调试观察各接口是否正常。2.软件调试软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。单片机AT89C51是系统的核心,利用万用表检测单片机电源是否为(40脚)+5V,晶振是否正常工作(可用示波器测试,也可用万用表检测,两引脚电压一般为1.8~2.3V),复位引脚RST(复位时为高电平,单片机工作时为低电平),EA是否为高电平,这样一来单片机就能工作了,再结合电路图,检测故障!3.程序运行结果5.7功能的实现(1)软件部分音乐的产生原理:一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,利用不同频率的组合,可构成不同的音乐,对于单片机来产生不同频率很简单,可以利用单片机定时、计数器T0来产生这样方波频率信号,因此,只需将一首歌的音阶和频率相对应即可。若要产生音频脉冲,只要算出某一频率的周期,再将此周期除以二,利用定时器时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。矩阵键盘的原理:4*4矩阵键盘是由CPU控制IO口来实现扫描的。(3)硬件部分本设计使用Protues仿真软件进行仿真。电路共由以下几部分组成:矩阵键盘部分,扬声器部分,AT89C51主控电路部分,晶振电路,复位电路,音频放大电路,独立按键部分。设计中采用AT89S51的并行口P3接4*4矩阵键盘,以P3.0-P3.3做输入线,以P3.4-P3.7作输出线。每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。扬声器借口电路部分:仿真中的扬声器一段接三极管,进行放大电路,从而产生音乐效果,扬声器驱动发声。通过相应的模拟电路的设计,可以实现音量的调节。小结:将程序烧入芯片,调试成功后可任意弹奏自己想要的旋律。本设计通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴系统硬件组成,利用单片机产生不同频率来产生音阶,最终产生想要表达的音乐。不足之处:(1)可弹奏的音符数较少,只能在一定范围内满足需要。(2)音量不可调。实训总结:通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。相信这对我们以后的学习和工作都会有很大的帮助。我们一定要在最短的时间里对这些不足加以改正!这次实训是软件与硬件的结合,通过软件仿真,面包板搭接电路,以及在万用板上焊接。让我们体会到了软硬件结合的惊人之处。在实训中我们六个人通过一个多音阶电子琴的制作,使我们深深地体会到了单片机在现实生活中的小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。更让我们体会到了单片机手动的开始平台的完善与成熟。在试训中有苦有甜,当我们为一个很难攻破的程序找出路时,
本文标题:电子琴实训报告
链接地址:https://www.777doc.com/doc-5865659 .html