本单片机音乐播放器主要是由AT89C2051单片机和喇叭组成。内部存储了一首《八月桂花香》的歌曲。每一个音符和每一种声调都有它特定的频率,单片机音乐播放器就是利用不同的音符和音调所组成的各种不同的频率,所能发出声音的不同的原理,使它们按照乐谱有机的组合起来,利用单片机的定时器使定时器定出不同的时间(时间的长短根据频率的大小来决定),发出不同频率的声音,这样不断的定时,不断的发出各种频率的声音,就形成了优美的音乐了。 汇编源程序如下:
ORG 0000H LJMP START ORG 000BH INC 20H MOV TH0,#0D8H MOV TL0,#0EFH RETI START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV IE,#82H MUSIC0: NOP MOV DPTR,#DAT MOV 20H,#00H MOV B,#00H MUSIC1: NOP CLR A MOVC A,@A+DPTR JZ END0 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5: NOP MOV R6,A INC DPTR MOV A,B MOVC A,@A+DPTR MOV R7,A SETB TR0 MUSIC2: NOP CPL P1.4 MOV A,R6 MOV R3,A CPL A MOV P0,A CPL A LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 MOV 20H,#00H INC DPTR LJMP MUSIC1 MUSIC3: NOP CLR TR0 MOV R2,#0DH MUSIC4: NOP MOV R3,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1 END0: NOP MOV R2,#64H MUSIC6: MOV R3,#00H LCALL DEL DJNZ R2,MUSIC6 LJMP MUSIC0 DEL: NOP DEL3: MOV R4,#05H DEL4: NOP DJNZ R4,DEL4 NOP DJNZ R3,DEL3 RET DAT: DB 18H, 30H, 1CH, 10H DB 20H, 40H, 1CH, 10H DB 18H, 10H, 20H, 10H DB 1CH, 10H, 18H, 40H DB 1CH, 20H, 20H, 20H DB 1CH, 20H, 18H, 20H DB 20H, 80H, 0FFH,20H DB 30H, 1CH, 10H, 18H DB 20H, 15H, 20H, 1CH DB 20H, 20H, 20H, 26H DB 40H, 20H, 20H, 2BH DB 20H, 26H, 20H, 20H DB 20H, 30H, 80H, 0FFH DB 20H, 20H, 1CH, 10H DB 18H, 10H, 20H, 20H DB 26H, 20H, 2BH, 20H DB 30H, 20H, 2BH, 40H DB 20H, 20H, 1CH, 10H DB 18H, 10H, 20H, 20H DB 26H, 20H, 2BH, 20H DB 30H, 20H, 2BH, 40H DB 20H, 30H, 1CH, 10H DB 18H, 20H, 15H, 20H DB 1CH, 20H, 20H, 20H DB 26H, 40H, 20H, 20H DB 2BH, 20H, 26H, 20H DB 20H, 20H, 30H, 80H DB 20H, 30H, 1CH, 10H DB 20H, 10H, 1CH, 10H DB 20H, 20H, 26H, 20H DB 2BH, 20H, 30H, 20H DB 2BH, 40H, 20H, 15H DB 1FH, 05H, 20H, 10H DB 1CH, 10H, 20H, 20H DB 26H, 20H, 2BH, 20H DB 30H, 20H, 2BH, 40H DB 20H, 30H, 1CH, 10H DB 18H, 20H, 15H, 20H DB 1CH, 20H, 20H, 20H DB 26H, 40H, 20H, 20H DB 2BH, 20H, 26H, 20H DB 20H, 20H, 30H, 30H DB 20H, 30H, 1CH, 10H DB 18H, 40H, 1CH, 20H DB 20H, 20H, 26H, 40H DB 13H, 60H, 18H, 20H DB 15H, 40H, 13H, 40H DB 18H, 80H, 00H END 注:晶振12MHZ。音乐输出口为P1.4。 本程序已通过实践验证!!!
|