简易电子琴设计——单片机资料文档.docx
MCS-51单片机课程设计简易电子琴设计日期:2 0 0 5年7月1日设计人:李源渊 班级:交通C 0 2 1班 学号:0 2 7 4 8 91 .设计题目:简易电子琴设计.总体设计:(1)问题描述:设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等七个音符。使用元件:AT89C5K LM324,喇叭,按键等。(2)问题解决方案:由于一首音乐是由许多不同音阶组成,每个音阶对应 不同的频率,这样我们可用不同频率组合,即可构成我们想要的音乐了,当然对 单片机产生不同的频率非常方便,我们可用单片机的定时/计数器。来产生这样 的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系设定正确即可。对于晶振频率为12MHz的单片机,其定时器的计数周期为1MHz,假如选择 工作方式1,那T值便为T=216-5*105/相应的频率,那么根据不同的频率计算 出应该赋给定时器的计数值。建立这样一个数据表,然后采用查表程序即可。对于一些硬件设备,比如喇叭,可考虑用其它硬件代替,比如LED数码显 示器等。3.统硬件图按鞋复位电路按鞋复位电路简易电子琴硬件设计原理图(010110408等设计)SETB Pl.lSETB Pl.5SETB Pl.6SETB Pl.7TT4: CJNE A,#05H,TT5CLR Pl.5SETB P1.0SETB Pl.2SETB Pl.3SETB Pl.4SETB Pl.lSETB Pl.6SETB Pl.7TT5: CJNE A,#00H,TT6CLR Pl.7SETB P1.0SETB Pl.2SETB Pl.3SETB Pl.4SETB Pl.lSETB Pl.5SETB Pl.6TT6: CJNE A,#06H,TT8CLR Pl.7SETB P1.0SETB Pl.2SETB Pl.3SETB Pl.4SETB Pl.lSETB Pl.6SETB Pl.5TT8: ADD A,#0DHMOVC MOVX DPTR,AACALL DL1MOV A,R3RL AJB ACC.2,LD1MOV R3,AINC ROAJMP DOILD1: RETDESH: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 80H,90H,88H,83H,0C6H,0AlH,086H,08EH,0FFH,0C0HDL1: MOV R7,#2DL: MOV R6,#0FFHDL6: DJNZ R6,DL6DJNZ R7,DLRETEND.调试方法:把程序编译成功后,在硬件机板上按指定的硬件图的要求把线连 好运行,分别在键盘上按下1 , 2 , 3 , 4 , 5 , 6 , 7 ,对应 的闪光灯依次亮起,表示调试运行成功.6 .不足之处:由于没有喇叭,所以用闪光灯代替,其只能表示出我们是在发音, 但不能用灯表示出7种音发的音频和音调,以至于效果不佳,但 基本原理相近.如果能引进喇叭设备则效果会更好.7 .心得体会:此次单片机设计锻炼了我们的动手能力,使我们所学的理论知识 得以更好的发挥和应用,在实践应用中也使我们对所学的知识有 了更深刻的理解.另外,由于设备的限制,也锻炼了我们的变通 能力.总之,扎实的理论基础是完善的课程设计的重要保证.实 践是知识扩展的途径.4.程序流程图:5.程序清单:ORG 0000HSTART: MOV SP,60HMOV DPTR,#0FF20HMOV A,#03HMOVX DPTR,AMOV 70H,#00HKEY1: ACALL KS1JNZ LK1Nl: ACALL DIRAJMP KEY1LK1: ACALL DIRACALL DIRACALL KS1JNZ LK2ACALL DIRAJMP KEY1LK2: MOV R2,#0FEHMOV R4,#0LK4: MOV DPTR,#0FF21HMOV A,R2MOVX DPTR,AINC DPTRINC DPTRMOVX JB ACC.O,LONEMOV A,#0AJMP LKPLONE: JB ACC.l,LTWOMOV A,#08HAJMP LKPLTWO: JBACC.1,LTHRMOV A,#10HAJMP LKPLTHR: JB ACC3LFORMOV A,#18HSJMP LKPLFOR: JB ACC.4,NEXTMOV 70H,#19HAJMP KEY1LKP: ADD A,R4MOV 70H,APUSH ACCLED1:clr 70hajmp Ik3LED2:clr 70hajmp Ik3LED3:clr 70hajmp Ik3LED4:clr 70hajmp Ik3LK3: ACALL DIRACALL KS1JNZ LK3POP ACCAJMP KEY1NEXT: INC R4MOV A,R2JNB ACC.7,KNDRL AMOV R2,AAJMP LK4KND: AJMP KEY1KS1: MOV DPTR,#0FF21HMOV A,#0MOVX DPTR,AINC DPTRINC DPTRMOVX epi aanl a,#lfhretdir: mov r0,#70hmov ANL A,#OFHMOV 30H,AMOV SWAP AANL A,#OFHMOV 31H,AMOV R0,#30HMOV R3,#01HDOI: MOV A,R3MOV DPTR,#0FF21HMOVX DPTR,AINC DPTRMOVCJNE A,#08H,TTCLR P1.0SETB Pl.lSETB Pl.2SETB Pl.3SETB Pl.4SETB Pl.6SETB Pl.7TT: CJNE A,#OAH,TT1CLR Pl.lSETB P1.0SETB Pl.2SETB Pl.3SETB Pl.4SETB Pl.5SETB Pl.6SETB Pl.7TT1: CJNE A,#0CH,TT2CLR Pl.2SETB P1.0SETB Pl.lSETB Pl.3SETB Pl.4SETB Pl.5SETB Pl.6SETB Pl.7TT2: CJNE A,#01H,TT3CLR Pl.3SETB P1.0SETB Pl.2SETB Pl.lSETB Pl.4SETB Pl.5SETB Pl.6SETB Pl.7TT3: CJNE A,#03H,TT4CLR Pl.4SETB P1.0SETB Pl.2