1、实现两个功能:一是按下预先定义按键,蜂鸣器发出指定的音调的声音,同时数码管和LED灯反馈音调的信息;二是数码管循环提示乐曲信息,按键选择乐曲并演奏,如:按2号键,唱乐曲2。关键词:音乐键盘,keil,protues1 绪论2 系统整体介绍3系统硬件设计3.1 AT89C52模块3.2 键盘扫描模块3.3 LED灯显示模块3.4 数码管显示模块3.5 蜂鸣器模块4系统软件设计4.1 主程序4.2 键盘扫描子程序4.3 LED灯数码管显示子程序4.4 音乐定时器初值4.5 延时子程序4.6 程序框图5 调试与结果6 设计总结7 参考文献8 附件 8.1系统原理图 8.2程序清单利用AT89C52单
2、片机和相应的单片机知识,通过简单的设计模拟钢琴键盘的发声,矩阵键盘驱动蜂鸣器发出相应频率的音调和歌曲,LED灯和数码管显示相应的音调和歌曲编号。本设计节约了为买大型钢琴所花费的大量钱财,为喜爱音乐创作的人员提供了一个追求梦想的平台。还可以满足小朋友玩耍的需要。2系统整体介绍本系统可分为:AT89C52模块,键盘输入模块,LED灯显示模块,数码管显示模块,蜂鸣器模块。AT89C52模块:系统的核心部分,负责处理来自键盘输入模块的键值,然后AT89C52根据键值做出相应的判断,驱动LED灯显示模块、数码管显示模块和蜂鸣器模块做出相应的响应。键盘输入模块:读取那个键按下,将键值送到AT89C52。L
3、ED灯显示模块:将AT89C52送来的音调或歌曲编号通过8个LED灯显示出来。数码管显示模块:将AT89C52送来的音调或歌曲编号通过8位静态数码管显示出来。蜂鸣器模块:AT89C52 I/O口送来的高低电平驱动蜂鸣器发出对应频率的声音。3 系统硬件设计AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
4、如图3.1所示: 图3.1 AT89C52P0:需外接上拉电阻(10K)。P1、P2、P3:不需要外接上拉电阻RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。XTAL1、XTAL2:振荡器反相放大器及内部时钟发生器的输入端、输出端。3.2 键盘输入模块方法一:独立键盘有键按下,返回键值;否则,返回0FFH。如图3.2.1图3.2.1方法二:矩阵键盘线反转法:首先,将行线编程为输入线,列线编程为输出线,然后使列线全输出低电平,读取行线电平,行线从高电平转为低电平的行线为按下按键所在行;然后,将列线编程为输入线,行线编程为输出线,然后使行线全输出低电平,读取列
5、线电平,列线从高电平转为低电平的列线为按下按键所在列。如图3.2.2所示: 图 3.2.2本系统采用方法二,因为矩阵键盘节约I/O口,节约资源,而且按键多。如图3.2.3所示: 图 3.2.3本系统采用LED灯静态显示的方法,共阴高电平点亮。如图3.3.1所示: 图 3.3.1 图 3.3.2图 3.3.2为本系统实际的LED灯和芯片的连接电路。LED灯第几个亮:1, 2, 3, 4, 5, 6, 7, 8;对应代码为: 01h,02h,04h,08h,10h,20h,40h,80h;本系统采用8位段码静态显示的方法,共阳低电平点亮。如图3.4.1所示: 图 3.4.1 图 3.4.2图 3.
6、4.2为本系统实际的数码管和芯片的连接电路。数码管显示: 1, 2, 3, 4, 5, 6, 7;对应段码为:0f9h,0a4h,0b0h,99h,92h,82h,0f8h;输入高电平,蜂鸣器发出响声;输入低电平,蜂鸣器不响。通过控制输入信号的频率来发出不同的音调;通过控制信号持续时间来控制声音的长短。蜂鸣器如图3.5所示:图 3.54 系统软件设计org 0000h jmp main org 000bh jmp int_0 org 0100hmain: setb et0 setb ea mov tmod,#01hnext0: lcall key0 cjne a,#08h,next1 ;a=#
7、direct cy=0next1: jnc next2 ;cy=0跳转 lcall led lcall music lcall wait jmp next0next2: cjne a,#08h,next3 ;/=跳转 lcall song10next3: lcall led lcall song20 键值检测程序如下:key0: mov p0,#0fh mov a,p0 cpl a ;取反 anl a,#0fh ;与 mov 30h,a ;行值 jz next0 ;a=0转移key1: mov p0,#0f0h cpl a anl a,#0f0h mov 31h,a ;列值 jz next0
8、jbc f0,key2 ;bit=1转移 setb f0 lcall delay0 jmp key0key2: mov a,30h mov 30h,#00h mov 32h,#03h clr ckey3: rrc a ;右移 jc key4 ;cy=1转移 inc 30h djnz 32h,key3key4: mov a,31h mov 31h,#03hkey5: rlc a ;左移 jc key6 dec 31h djnz 32h,key5key6: rlc a add a,31h mov 33h,a ret键值送给33h键盘松手检测程序如下:wait: jnz wait clr tr0 c
9、lr f0歌曲中断检测程序如下:button: anl a,#0fhled: mov a,33h mov dptr,#tab0 movc a,a+dptr mov p1,a mov a,33h mov dptr,#tab1 mov p3,a定时器初值查表程序如下:music: mov dptr,#mus0h mov 34h,a mov th0,34h mov 35h,a mov tl0,35h setb tr0 ret 中断程序如下:int_0: clr tf0 cpl p2.0 retidelay0: mov r0,#20 ;延时20msloop0: mov r1,#250loop1: no
10、p nop djnz r1,loop1 djnz r0,loop0delay1: mov r0,#100 ;延时100msloop2:loop3: djnz r1,loop3 djnz r0,loop2 键值=8 松手 是 否 没松手 图 4.6 有键 (1)不能正确读取矩阵键盘的键值,因为P0口没有外接上拉电阻,而P1、P2、P3口不需要外接上拉电阻。(2)播放歌曲的音的时长不正确,因为每个音的节拍不一样,持续时间长短也不一样,需要单独的一个延时子程序。使用说明:矩阵键盘共4*4=16个键,按下前八个键会对应发出1、2、3、4、5、6、7、1八个音,第九个按键和第十个按键分别对应两首歌曲,其
11、余六个按键未定义。经过本次课程设计,更加详细的了解单片机的具体内部原理和工作过程,知道了通过给单片机的定时/计数器设置计数初值,驱动蜂鸣器发出各种音调和完整歌曲的方法。在设计的过程中遇到了很多问题,需要上网查资料解决,培养了独自解决问题的能力;和组员商量讨论,提高了设计效率,培养了团队合作意识。(2)音调和计数初值关系www.docin./p-359437295.html ;30h 行值31h 列值32h 置循环数33h 键值34h th035h tl036h 查表数37h 节拍数 org 0000h setb et0 setb ea mov tmod,#01h lcall key0 cjne
12、 a,#08h,next1 ; jnc next2 ; lcall music lcall wait cjne a,#08h,next3 ; lcall led lcall song10 lcall song20 mov p0,#0fh mov a,p0 mov 30h,a ; mov p0,#0f0h mov 31h,a ; jbc f0,key2 ; setb f0 lcall delay0 mov a,30h mov 30h,#00h mov 32h,#03h rrc a ; djnz 32h,key3 mov a,31h mov 31h,#03h rlc a ; djnz 32h,ke
13、y5 mov 33h,a mov r0,#20 ; mov r1,#250 djnz r1,loop1 djnz r0,loop0 mov r0,#100 ; djnz r1,loop3 djnz r0,loop2 mov a,33h mov dptr,#tab0 mov p1,a mov dptr,#tab1 mov p3,a mov dptr,#mus0h mov 34h,a mov th0,34h mov 35h,a mov tl0,35h setb tr0song10: mov 36h,#0ffhsong11: inc 36h mov a,36h mov dptr,#mus1h mov
14、 dptr,#mus1l mov dptr,#mus1r cjne a,#100,song12 jmp song14song12: mov 37h,asong13: lcall delay1 lcall button jnz song14 djnz 37h,song13 jmp song11song14:song20:song21: mov dptr,#mus2h mov dptr,#mus2l mov dptr,#mus2r cjne a,#100,song22 jmp song24song22:song23: jnz song24 djnz 37h,song23 jmp song21son
15、g24: clr tf0tab0: db 01h,02h,04h,08h,10h,20h,40h,80h,01h,02htab1: db 0f9h,0a4h,0b0h,99h,92h,82h,0f8h,79h,0f9h,0a4hmus0h: db 0f8h,0f8h,0fah,0fah,0fbh,0fbh,0fch,0fchmus0l: db 88h,50h,17h,6bh,08h,92h,0eh,40h;1,2,3,4,5,6,7,1mus1h:0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fch,0fch,0fch,0fch,0fdh,0fdh,0fch,0fch
16、,0fch,0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fch,0fch,0fch,0fch,0fdh,0fch,0fch,0fch,0fch,0fch,0fch,0fdh,0fch,0fch,0fch,0fdh,0fdh,0fch,0fch,0fdh,0fdh,0fdh,0fch,0fch,0fch,0fbh,0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fdh,0fch,0fch,0fch,0fch,0fdh,0fch,0fch,0fch,0fch,00hmus1l:09h,09h,34h,82h,82h,34h,09h,0a
17、ch,44h,44h,0ach,09h,09h,0ach,0ach,0ach,09h,09h,34h,82h,82h,34h,09h,0ach,44h,44h,0ach,09h,0ach,44h,44h,44h,0ach,0ach,09h,44h,0ach,09h,34h,09h,44h,0ach,09h,34h,09h,0ach,44h,0ach,04h,09h,09h,09h,34h,82h,82h,34h,09h,34h,0ach,44h,44h,0ach,09h,0ach,44h,44h,44h,00hmus1r:4,4,4,4,4,4,4,4,4,4,4,4,6,2,4,4,4,4,
18、4,4,4,4,4,4,4,4,4,4,6,2,4,4,4,4,4,4,4,2,2,4,4,4,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,4,4,4,4,6,2,4,4,100mus2h:0fdh,0fdh,0fdh,0fdh,0feh,0feh,0feh,0fdh,0fdh,0fdh,0fdh,0feh,0feh,0feh,0fdh,0fdh,0feh,0feh,0feh,0feh,0fdh,0feh,0feh,0feh,0feh,0feh,0feh,0fehmus2l:80h,80h,0c6h,80h,2ah,02h,02h,80h,80h,0c6h,80h,5ch,2ah,2ah,80h,80h,0c0h,84h,2ah,02h,0c6h,98h,98h,84h,2ah,5ch,2ah,2ahmus2r:3,1,4,4,4,4,4,3,1,4,4,4,4,4,3,1,4,4,4,4,4,3,1,4,4,4,4,4,100 end
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1