1、单片机音乐源编码 实训项目三:音乐演奏器一、实训目的了解发出不同音调声音的编程方法。二、项目内容及电路1、项目内容:播放自己喜欢的歌曲附加功能:实现播放多首歌曲,数码管显示正在播放的是第几首曲目,按键K1设为上一首按键,按键K2设为下一首按键,按键K3设为播放按键。2、项目电路同实训项目一。 三、实训内容1、 声音原理 声音的产生是一种音频振动的效果。振动的频率高,则为高音,振动的频率低,则为低音。振动的频率不同,发出的声音也就不同,有规律的振动发出的声音叫“乐音”。音频的范围为20HZ200KHZ之间,人类的耳朵比较容易辨识的声音频率范围是200HZ20KHZ。一般音响电路是用正弦波信号驱动
2、喇叭,从而产生悦耳的音乐;在数字电路里,则是用数字脉冲信号驱动喇叭,从而产生声音。如果声音的频率相同,人类的耳朵很难区分哪个是脉冲信号产生的声音,哪个是正弦波信号产生的声音。 音乐演奏控制器是通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音阶的声音。再利用延迟来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符对应的频率转换为定时常数,把相应的节拍变换为定时常数,分别用以控制定时器产生方波的频率和该频率方波的持续时间。(1)利用定时/计数器T0工作在16位定时方式,通过改变TH0和TL0的值,就可以产生不同频率的脉冲,例如想产生523HZ(音符1的中音)的脉冲,其周期为
3、1/523=1922uS,因此只要让T0定时956 uS后,使P1.6取反,就可以在P1.0引脚上输出一个频率为523HZ的脉冲。若晶振的频率为12MHZ,机器周期为1 uS,则计数值为956/1956,而计数器的初值为6553695664580FC44H,即TH0=0FFH,TL0=22H。这样每个音符都对应了一个T值,12M晶振时各音符的T值如下表1: 表1: 12M晶振时对应的T值表音符(低音)T值音符(中音)T值音符(高音)T值16362816458016505826383526468426511036402136477736515746410346482046517856426056
4、4898565217664400664968665252764524765030765282(2)每个音符的发音长度,各调节拍与时间的设定如下表2所示: 表2: 调值与节拍延时时间关系表曲调值1/4拍时间1/8拍时间调4/4125ms62ms调3/4187ms94ms调2/4250ms125ms2、软件设计(1)音符节拍选择你喜欢的歌曲,查找这些歌曲的简谱,根据表1和表2,做好音符节拍常数表,如;兰花草音符节拍表SONG0: DB 42H,82H,82H,82H,86H,72H,63H,71H,62H,52H,48H DB 0B2H,0B2H,0B2H,0B2H,0B6H,0A2H DB 83
5、H,0A1H,0A2H,92H,88H,82H,0B2H,0B2H,0A2H,86H,72H DB 63H,71H,62H,52H,44H,12H,02H DB 12H,62H,62H,52H,46H,82H,73H,61H,52H,32H,48H DB 00H备注:高4位为音调,低4位为节拍,00H为休止符。(2)绘制流程图采用模块化设计,分为主程序、中断服务子程序及显示子程序,分别绘出这些程序的流程图。(3)根据流程图,编制源程序。3、仿真调试,最好先调试出一首。四、实训总结1、学会使用伪指令,方便程序阅读与更改。2、程序编写要规范,要有相应的注释。参考程序如下:BEEP BIT P2.0
6、;生日快乐JD EQU 30HYD EQU 31HTHH0 EQU 32HTLL0 EQU 33HJP EQU 34HORG 0000HAJMP MAINORG 000BHAJMP TIM0ORG 0030HMAIN: MOV SP,#60H ;主程序 MOV TMOD,#01H ;设定时方式 MOV IE,#82H ;开中断 CLR BEEPSTART0:MOV JD,#00H ; NEXT: MOV A,JD MOV DPTR,#TABLE MOVC A,A+DPTR ;查表取音调和节拍 MOV B,A JZ END0 ;为零,不进行处理. ANL A,#0FH MOV JP,A ;将节拍
7、存入JP MOV A,B SWAP A ANL A,#0FH JNZ SING ;根据音调决定是否演奏. CLR TR0 JMP D1SING: DEC A MOV YD,A ;将音调存入YD. RL A MOV DPTR,#TABLE1 MOVC A,A+DPTR ;根据音调决定定时器初值. MOV TH0,A ;放入TH0 MOV THH0,A MOV A,YD RL A INC A MOVC A,A+DPTR MOV TL0,A ;放入TL0 MOV TLL0,A SETB TR0 ;启动定时D1: ACALL DELAY INC JD JMP NEXTEND0: CLR TR0 JMP
8、 START0TIM0: ;定时器中断服务程序 PUSH ACC PUSH PSW MOV TL0,TLL0 ;重赋初值. MOV TH0,THH0 CPL BEEP POP PSW POP ACC RETIDELAY:MOV R7,#02H ;节拍延时子程序D2: MOV R6,#187D3: MOV R5,#248 DJNZ R5,$ DJNZ R6,D3 DJNZ R7,D2 DJNZ JP,DELAY RETTABLE1: ;决定音调的定时初值.DW 63628,63835,64021,64103,64260,64400,64524 ;低音1234657 DW 64580,64684,
9、64777,64820,64898,64968,65030 ;中音1234567 DW 65058,65110,65157,65178,65217,65252,65282 ;高音1234567TABLE: ;决定音调和节拍的表格,不同的歌曲此表不同DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H,82H,01H,81H,94H,84H,0C4H,0B4H,04HDB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H,0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB 82H,01H,81H,94H,84H,0B4H,0A
10、4H,04H,82H,01H,81H,94H,84H,0C4H,0B4H,04HDB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H,0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00END;兰花草; DB 42H,82H,82H,82H,86H,72H,63H,71H,62H,52H,48H DB 0B2H,0B2H,0B2H,0B2H,0B6H,0A2H DB 83H,0A1H,0A2H,92H,88H,82H,0B2H,0B2H,0A2H,86H,72H DB 63H,71H,62H,52H,44H,12H,02H DB 12H,62
11、H,62H,52H,46H,82H,73H,61H,52H,32H,48H DB 00H;两只老虎; DB 44H,54H,64H,44H DB 44H,54H,64H,44H DB 64H,74H,88H DB 64H,74H,88H DB 82H,92H,82H,72H,64H,44H DB 82H,92H,82H,72H,64H,44H DB 54H,14H,48H DB 54H,14H,48H DB 00H;生日快乐;DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H DB 82
12、H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H,04H DB 0E2H,01H,0E1H,0D4H,0B4H DB 0C4H,0B4H,04H DB 00H;两只蝴蝶; DB 62H,52H,64H,04H, DB 52H,62H,52H,44H,04H DB 22H,42H,54H,64H,52H,42H,22H,42H,14H,04H DB 62H,52H,64H,04H DB 52H,62H,52H,44H,04H DB 22H,42H,54H,64H,52H,42H,22H,42H,54H,04H DB 62H,52H,64H,04H DB 52H,62H,5
13、2H,44H,04H DB 22H,42H,54H,64H,52H,42H,22H,42H,14H,04H DB 62H,82H,84H,04H DB 82H,92H,82H,64H,04H DB 52H,62H,54H,64H,52H,42H,22H,42H,44H,04H DB 82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H DB 62H,62H,82H,94H,94H,22H,62H,56H,04H DB 62H,82H,82H,62H,84H,04H DB 0B4H,0A2H,92H,0A2H,64H,04H DB 92H,92H,
14、0A2H,92H,82H,62H,53H,63H,53H,84H,04H DB 82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H DB 62H,62H,82H,94H,94H,22H,62H,56H,04H DB 62H,82H,82H,62H,84H,04H DB 0B4H,0A2H,92H,0A2H,64H,04H DB 92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H DB 62H,82H,82H,62H,84H,04H DB 0B4H,0A2H,92H,0A2H,64H,04H DB 92H,9
15、2H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H DB 00H;记事本; DB84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,82H,84H,0B2H,0A2H,0A2H,93H,04H DB 94H,92H,82H,82H,63H,62H,62H,52H,52H,42H,44H,04H DB 62H,52H,52H,42H,84H,04H DB 92H,82H,94H,82H,63H,04H DB 84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,83H,04H DB 84H,0B2H,0A2H,0A
16、2H,93H,94H,82H,92H,82H,63H,04H DB 52H,62H,52H,62H,44H,04H DB 52H,62H,52H,42H,84H,04H DB 14H,62H,52H,52H,42H,54H,42H,44H,04H DB 0A2H,0B2H,0A2H,63H,04H DB 0A2H,0B2H,0A2H,63H,04H DB 0D2H,0C2H,0C2H,0B2H,0C2H,0B2H,0B2H,0B2H,94H,84H,94H,64H,04H DB 64H,62H,52H,52H,42H,44H,04H DB 64H,62H,52H,52H,42H,84H,04H
17、 DB 84H,92H,82H,92H,83H,63H,04H DB 0A2H,0B2H,0A2H,63H,04H DB 0A2H,0B2H,0A2H,63H,04H DB 0D2H,0C2H,0C2H,0B2H,0D2H,0C2H,0C2H,0B2H,0C2H,0C2H,0C4H,0E4H,64H,04H DB 0D4H,0C2H,0D2H,0C2H,0B2H,94H,04H DB 0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,04H DB 0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,0B4H,96H,04H DB 00H;新年快乐; DB 42H,42H,44
18、H,14H,02H DB 62H,62H,64H,44H,04H DB 42H,62H,84H,84H,02H DB 72H,62H,54H,04H DB 52H,62H,74H,74H,02H DB 62H,52H,64H,44H,04H DB 42H,62H,54H,14H,02H DB 32H,52H,44H,04H DB 00H;哈巴狗; DB 42H,42H,42H,52H,64H,04H DB 62H,62H,62H,72H,84H,04H DB 92H,92H,82H,72H,64H,04H DB 82H,82H,52H,62H,44H,04H DB 42H,42H,42H,52
19、H,84H,04H DB 62H,62H,62H,72H,84H,04H DB 92H,92H,82H,72H,64H,04H DB 82H,82H,52H,62H,44H,04H DB 00H;绿岛小夜曲; DB 0A2H,0B2H,0D2H,0B2H,0A4H,0B2H,0D2H DB 0B2H,0A2H,82H ,72H,88H DB 72H, 82H,0A2H,82H,72H,62H,42H,62H DB 38H,38H DB 0A4H,02H,0B2H,0A4H,084H DB 72H,82H,72H,62H,72H,84H,72H DB 64H,62H,12H,34H,02H,42
20、H DB 38H,38H DB 44H,02H,32H,44H,64H DB 72H,82H,72H,62H,72H,84H,0A2H DB 72H,74H,82H,0A2H,02H,0B2H DB 0A8H,0A8H DB 0B2H,0B4H,0A2H,84H,82H,72H DB 62H,72H,82H, 0A2H,88H DB 72H,74H,62H,42H,32H,32H,62H DB 78H,78H DB 82H,84H,72H,82H,0A2H,84H DB 72H,82H, 72H, 62H, 48H DB 32H,0A2H,82H,0F2H,0A2H,0B2H,82H,72H
21、DB 68H,68H DB 0B2H, 0B2H,0A2H, 82H,84H,02H DB 72H,74H,62H,42H,32H,42H,62H DB 78H,78H DB 0A2H,0B2H,0A2H,72H,82H,84H,82H DB 72H,74H,62H,44H,64H DB 0A8H,0A4H,02H,0A2H DB 0A2H ,0B1H ,0A1H,82H,0A2H,0B4H,0B2H,0C2H DB 0A2H,0B2H,0A2H,82H,78H DB 84H,72H,62H,44H,02H,62H DB 72H,81H,71H,62H,72H,84H,02H,0A2H DB 0B4H,02H,82H,74H,82H,72H DB 68H,68H,04H DB 00H;弯弯的月亮; DB 62H,82H,82H,62H,98H DB 92H,0B2H,0B2H,82H
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1