您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机电子琴课程设计完整版
1单片机技术及系统设计课程设计题目:基于单片机的电子琴制作专业:通信工程班级:08-1班姓名:何秋慧学号:200807040113组员:何秋慧赵玉春杨彦英龙芳实验地点:东五楼301、305指导老师:陈燕、陈晓雷设计时间:2011-1-3至2011-1-9成绩:2一、设计指标:(1)设计一个(4×4)的键盘,并将16个键设计成16个音;(2)可弹奏想要表达的音乐;(3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。二、设计要求:(1)按设计指标进行电路设计;(2)列出音阶与单片机定时器输出频率关系表格;(3)制作符合设计指标的硬件电路。三、设计说明:电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代音乐,特别是电子音乐、电脑音乐的基本结构、特征,因而使我们的教师在进行现代音乐、电子音乐、电脑音乐的教学时,更直接、更简便。单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个弹奏按键、1个播放键和扬声器。四、设计简单原理介绍一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们3可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式(如式3-1所示)是:N=fi÷2÷fr3-1式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr例如:设K=65536,fi=1MHz,DO(523Hz)的计数值。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fDO的T=65536-500000/523=64580单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表4-2所示表3-2音符频率表低音音符频率HZ中音音符频率HZ高音音符频率HZ1261.631523.2511045.52293.672587.3321174.663329.633659.4631318.514349.234698.4641396.925391.995738.9951567.986440.006880.0061760.007493.887987.7671975.52我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据低音0-19之间,中音在20-39之间,高音在40-59之间TABLE:DW40,63628,63835,64021,64103,64260,64400,64524,0,0DW0,63731,63928,0,64185,64331,64463,0,0,0DW0,64580,64684,64777,64820,64898,64968,65030,0,0DW0,64633,64732,0,64860,64934,64994,0,0,0DW0,65058,65110,65157,65178,65217,65252,65283,0,0DW0,65085,65134,0,65198,65235,65268,0,0,0DW0在这个程序中,弹奏音乐的程序是用定时/计数器T0来完成的,播放音乐程序则是用定时/计数器T1来完成的。五、软件总体方案及设计流程(1)键盘扫描程序:检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测(2)功能转移程序:对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲功能(3)琴键处理程序:根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音(4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下5程序简易流程图是否是开始T0初始化并开中断允许T0中断T1初始化并开中断允许T1中断键盘扫描程序有键按下否识别按键功能播放键根据按键功能装入相应音符值到T0取相应的音符码装入T1启动T0启动T1按键释放成功否按键释放成功否停止T0工作停止T1工作延时去抖动是否弹奏键6弹奏程序流程图延时返回键盘扫描程序CPLP3.0退出中断根据键值查音律表给定时器T0赋值进入中断开始计时取键值开中断并允许中断设定定时器工作方式弹奏子程序7自动播放歌曲程序流程图YYN六、硬件总体方案及说明51单片机P1口通过连接4*4的矩阵键盘,作为琴键键盘;P2.0查音律表,给定时器赋值延时开始计时进入中断退出中断返回键盘扫描CPL3.0自动播放音乐程序休止符STOP取该音符的节拍码取简谱码开中断,设定定时器T1工作模式INCDPTRA0,DPTR歌谱地址A=0A=0FFH8接播放音乐键;P3.0口接喇叭,通过执行相应的功能程序使电子琴发出不同音色的声音。(一)芯片介绍:在本次电子琴设计中,我们组成员单片机芯片选用了AT89C51芯片,而89C51系列的兼容性也比较好。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读先通)P3口同时为闪烁编程和编程校验接收一些控制信号。(二)硬件接线:(1)利用P1口为按键接入口,形成4×4组成16个按键矩阵,设计成16个音,下图所示:9(2)p3.0口音频输出,接一个喇叭。(3)复位电路我们本来在方案选择的时候有两种选择的,上电复位和按扭复位,上电复位是利用电容充电来实现的,而按扭复位是电源对外节电容的充电使RST为高电平,复位松开后,电容通过下拉电阻放电,使RST恢复低电平。为了制作软件的方便我们还是选择用按扭复位,因为它比较直观。(4)电路设计图如下:0123456789ABCDEF所对应的键码为:10七、设计仪器、设备和材料清单主要仪器设备:个人计算机和相关的软件主要元器件:独立按键16个单片机芯片AT80C51一片12MHz晶振一个S8550三极管一个不同阻值电阻数个开关一个USB电源插口一个喇叭一个10uF、30pF电容数个电路板一块电烙铁一个等八、设计源程序BUFFEQU30HSTH0EQU31HSTL0EQU32HTEMPEQU33HORG00HLJMPSTARTORG0BHLJMPINT_T0ORG001BHLJMPTIM1START:MOVTMOD,#01H;设置T0工作方式SETBET0SETBEA;启动T0MAIN:MOVP1,#0FFH;P1全置1CLRP1.4;开始扫描第一行MOVA,P1ANLA,#0FH;屏蔽高四位XRLA,#0FH;低位有”0”则有键按下,否则无JZKKEY1;有则继续,没有则转移到KKEY1LCALLDELY10MS;调用延时程序MOVA,P1;重新开始判断有无键按下ANLA,#0FHXRLA,#0FHJZKKEY1MOVA,P1ANLA,#0FH;求键值11CJNEA,#0EH,CKK1;相等该行第一列有键MOVBUFF,#0;该键值为0LJMPNDK1;跳到NDK1执行功能程序CKK1:CJNEA,#0DH,KK2;相等说明该行第二列有键MOVBUFF,#1;该键值为1LJMPNDK1;跳到NDK1执行相应的功能程序KK2:CJNEA,#0BH,KK3;相等说明该行第三列有键MOVBUFF,#2;该键值为2LJMPNDK1;跳到NDK1执行相应的功能程序KK3:CJNEA,#07H,KK4;相等说明该行第四列有键按MOVBUFF,#3;该键值为2LJMPNDK1;跳到NDK1执行相应的功能程序KK4:NOPNDK1:MOVA,BUFFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,BUFFMOVB,#2MULABMOVTEMP,AMOVDPTR,#TABLE1MOVCA,@A+DPTRMOVSTH0,AMOVTH0,AINCTEMPMOVA,TEMPMOVCA,@A+DPTRMOVSTL0,AMOVTL0,ASETBTR0NDK1A:MOVA,P1ANLA,#0FHXRLA,#0FHJNZNDK1ACLRTR0KKEY1:MOVP1,#0FFH;开始扫描第二行12CLRP1.5MOVA,P1ANLA,#0FHXRLA,#0FHJZKKEY2LCALLDELY10MSMOVA,P1ANLA,#0FHXRLA,#0FHJZKKEY2MOVA,P1ANLA,#0FHCJNEA,#0EH,KK5MOVBUFF,#4LJMPNDK2KK5:CJNEA,#0DH,KK6MOVBUFF,#5LJMPNDK2KK6:CJNEA,#0BH,KK7MOVBUFF,#6LJMPNDK2KK7:CJNEA,#07H,KK8MOVBUFF,#7LJMPNDK2KK8:NOPNDK2:MOVA,BUFFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,BUFFMOVB,#2MULABMOVTEMP,AMOVDPTR,#TABLE1MOVCA,@A+DPTRMOVSTH0,AMOVTH0,A13INCTEMPMOVA,TEMPMOVCA,@A+DPTRMOVSTL0,AMOVTL0,ASETBTR0NDK2A:MOVA,P1ANLA,#0FHXRLA,#0FHJNZNDK2ACLRTR0KKEY2:MOVP1,#0FFH;开始扫描第三行CLRP1.6MOVA,P1ANLA,#0FHXRLA,#0FHJZKKEY3LCALLDELY10MSMOVA,P1ANLA,#0FHXRLA,#0FHJZKKEY3MOVA,P1ANLA,#0FHCJNEA,#0EH,KK9MOVBUFF,#8LJMPNDK3KK9:CJNEA,#0DH,KK10MOVBUFF,#9LJMPNDK3KK10:CJNEA,#0BH,KK11MOVBUFF,#10LJMPNDK3KK11:CJNEA,#07H,KK12MOVBUFF,#11LJMPNDK3KK12:NOP14NDK3:MOVA,BUFFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,BUFFMOVB,#2MULABMOVTEMP,AMOVDPTR,#TABLE1MOVC
本文标题:单片机电子琴课程设计完整版
链接地址:https://www.777doc.com/doc-3505339 .html