资源描述:
《简易电子琴 单片机设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、简易电子琴单片机设计一、硬件设计方案及相关解释简易电子琴单片机设计主要由五部分组成,时钟频率、晶振电路、键盘扫描、发音电路和供电及复位电路。(1)时钟频率:时钟频率单片机在时钟的驱动下才能工作,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。(2)晶振电路:单片机的定时控制功能是用时钟电路和振荡器完成的,二根据硬件电路的不同,连接方式分为内部时钟方式。在实验中,采用内部时钟方式。(3)键盘扫描:采用矩阵键盘(4)发音电路(5)供电
2、及复位电路通过proteus软件连线,把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上;把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4R1-R4端口上;按下MUSICKEY键,系统自动播放预存在内存中的曲子,按下RESKEY键,系统复位,停止播放。按下矩阵键盘中的任意键,扬声器发出相应的音符。二、设计思路1、定时/计数器的设计和状态字定义定时器T0中断服务程序,定时器T0工作方式于方式12、键盘设计及相关应用技
3、术采用矩阵式键盘电路,虽然它在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要繁琐,但在节省单片机I/O端口资源上有优势,从而它更适于多按键电路。三、框图:组成框图:四、汇编主程序:KEYBUFEQU30HSTH0EQU31HSTL0EQU32HTEMPEQU33HSPKEQUP1.6ORG0000HLJMPSTARTORG0BHLJMPINT_T0;定时器T0中断服务程序START:MOVTMOD,#01H;选择定时器T0工作方式于方式1SETBET0SETBEAWAIT:MOVP2,#0FF
4、HCLRP2.4MOVA,P2ANLA,#0FHXRLA,#0FHMULABMOVTEMP,AMOVDPTR,#TABLE1MOVCA,@A+DPTRMOVSTH0,AMOVTH0,AINCTEMPMOVA,TEMPMOVCA,@A+DPTRMOVSTL0,AMOVTL0,ASETBTR0DK1A:MOVA,P2ANLA,#0FHXRLA,#0FHJNZDK1ACLRTR0NOKEY1:MOVP2,#0FFHCLRP2.5MOVA,P2ANLA,#0FHXRLA,#0FHJZNOKEY2LCALLDEL
5、Y10MSMOVA,P2ANLA,#0FHXRLA,#0FHJZNOKEY2JZNOKEY1LCALLDELY10MSMOVA,P2ANLA,#0FHXRLA,#0FHJZNOKEY1MOVA,P2ANLA,#0FHCJNEA,#0EH,NK1MOVKEYBUF,#0LJMPDK1NK1:CJNEA,#0DH,NK2MOVKEYBUF,#1LJMPDK1NK2:CJNEA,#0BH,NK3MOVKEYBUF,#2LJMPDK1NK3:CJNEA,#07H,NK4MOVKEYBUF,#3LJMPDK1NK
6、4:NOPDK1:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,KEYBUFMOVB,#2MOVA,P2ANLA,#0FHCJNEA,#0EH,NK5MOVKEYBUF,#4LJMPDK2NK5:CJNEA,#0DH,NK6MOVKEYBUF,#5LJMPDK2NK6:CJNEA,#0BH,NK7MOVKEYBUF,#6LJMPDK2NK7:CJNEA,#07H,NK8MOVKEYBUF,#7LJMPDK2NK8:NOPDK2:MOVA,KEYBUF
7、MOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,KEYBUFMOVB,#2MULABMOVTEMP,AMOVDPTR,#TABLE1MOVCA,@A+DPTRMOVSTH0,AMOVTH0,AINCTEMPLJMPDK3NK10:CJNEA,#0BH,NK11XRLA,#0FHJNZDK3ACLRTR0NOKEY3:MOVP2,#0FFHCLRP2.7MOVA,P2ANLA,#0FHXRLA,#0FHJZNOKEY4LCALLDELY10MSMOVA,P2ANLA,#0FH
8、XRLA,#0FHJZNOKEY4MOVA,P2ANLA,#0FHCJNEA,#0EH,NK13MOVKEYBUF,#12LJMPDK4NK13:CJNEA,#0DH,NK14MOVKEYBUF,#13LJMPDK4NK14:CJNEA,#0BH,NK15MOVKEYBUF,#14LJMPDK4NK15:CJNEA,#07H,NK16MOVKEYBUF,#15LJMPDK4MOVKEYBUF,#10LJMPDK3NK11:CJNEA,#07