资源描述:
《单片机 电子琴设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、硬件实验二十一电子琴一、实验要求利用实验仪上提供的键盘,使数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音调。用P1.0口发出音频脉冲,驱动喇叭。二、实验目的1.了解计算机发声原理。2.进一步熟悉定时器编程方法.3.进一步熟悉键盘扫描电路工作原理及编程方法三、实验电路及连接喇叭发声电路与硬件实验六相同,键盘电路无需连线,原理图可参考图1和硬件实验十七四、实验说明1、利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调.2、定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下
2、一次反转发出脉冲高电平.由于定时参数不同,就发出了不同频率的脉冲.本实验中按键一次,会发50个脉冲.发完后继续检测键盘,如果键还按下,继续发音。各音阶标称频率值:音阶1234567频率(HZ)261.1293.7329.6349.2392.0440.0493.9五、实验框图定时中断开始否保护现场检测键输入是读入键值停止计时否1<键值<7输出音频脉冲电平(高或低)是用键值查表得到音频相关数据音频脉冲电平反转脉冲个数减1按音频数据设置定时器恢复现场启动定时开始发声中断返回否已发50个脉冲?定时中断程序框图是关闭定时停止发声主程序框图;硬件实验二
3、十一电子琴OUTBITequ0FE02hINequ0FE00hPulseequ0PulseCNTequ50hToneHighequ51hToneLowequ52hSpeakerequP1.0000002008EljmpStartorg000bhTimer0Int:000BC0D0pushPSW000DC28CclrTR0000F85518CmovTH0,ToneHigh001285528AmovTL0,ToneLow0015D28CsetbTR00017A200movc,Pulse00199290movSpeaker,c001BB200cp
4、lPulse001D1550decPulseCNT001FD0D0popPSW002132retiToneTable:0022FC420024FCAE0026FD0A0028FD35002AFD82002CFDC8002EFE05dw64578,64686,64778,64821,64898,64968,65029TestKey:003090FE02movdptr,#OUTBIT00337400mova,#00035F0movx@dptr,a003690FE00movdptr,#IN0039E0movxa,@dptr003AF4cpla00
5、3B540Fanla,#0fh003D22retKeyTable:003E1615140041FFdb16h,15h,14h,0ffh0042131211004510db13h,12h,11h,10h00460D0C0B00490Adb0dh,0ch,0bh,0ah004A0E0306004D09db0eh,03h,06h,09h004E0F0205005108db0fh,02h,05h,08h0052000104005507db00h,01h,04h,07hGetKey:005690FE02movdptr,#OUTBIT00598583A
6、0movP2,dph005C7800movr0,#Low(IN)005E7920movr1,#00100000b00607A06movr2,#6KLoop:0062E9mova,r10063F4cpla0064F0movx@dptr,a0065F4cpla006603rra0067F9movr1,a0068E2movxa,@r00069F4cpla006A540Fanla,#0fh006C7006jnzGoon1006EDAF2djnzr2,KLoop00707AFFmovr2,#0ffh0072800FsjmpExitGoon1:0074
7、F9movr1,a0075EAmova,r2007614deca007723rla007823rla0079FAmovr2,a;r2=(r2-1)*4007AE9mova,r1007B7904movr1,#4LoopC:007D13rrca007E4003jcExit00800Aincr20081D9FAdjnzr1,LoopCExit:008390FE02movdptr,#OUTBIT0086E4clra0087F0movx@dptr,a0088EAmova,r2008990003Emovdptr,#KeyTable008C93movca
8、,@a+dptr008D22retStart:008E758170movsp,#70h0091758901movTMOD,#01;Timer009475A882movIE,#82