1、中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI9886503037064185高 1 DO104665058低 5 SO39264260# 1 DO#11096508541564331高 2 RE117565110低 6 LA44064400# 2 RE#12456513446664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO5236458014806519
2、855464633高 5 SO156865217中 2 RE5876468416616523562264732高 6 LA176065252中 3 M65964777186565268中 4 FA69864820高 7 SI196765283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音019之间,中音在2039之间,高音在4059之间TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0 DW 0,63731,63928,0,64185,64331,64463,0,0,0 DW 0,64580,64
3、684,64777,64820,64898,64968,65030,0,0 DW 0,64633,64732,0,64860,64934,64994,0,0,0 DW 0,65058,65110,65157,65178,65217,65252,65283,0,0 DW 0,65085,65134,0,65198,65235,65268,0,0,0 DW 02、音乐的音拍,一个节拍为单位(C调)曲调值DELAY调4/4125ms62ms调3/4187ms94ms调2/4250ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。下面就用AT89S51单片机产生一首“生日快乐”歌曲来说
4、明单片机如何产生的。在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。5 程序框图图4.22.26 汇编源程序KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33H ORG 00H LJMP START ORG 0BH LJMP INT_T0START: MOV TMOD,#01H SETB ET0 SETB EAWAIT: MOV P3,#0FFH CLR P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 LCALL DELY10MS ANL A,#0FH CJNE
5、A,#0EH,NK1 MOV KEYBUF,#0 LJMP DK1NK1: CJNE A,#0DH,NK2 MOV KEYBUF,#1NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2NK3: CJNE A,#07H,NK4 MOV KEYBUF,#3NK4: NOPDK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOV STL0,A MOV
6、TL0,A SETB TR0DK1A: JNZ DK1A CLR TR0NOKEY1: CLR P3.5 JZ NOKEY2 CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2NK5: CJNE A,#0DH,NK6 MOV KEYBUF,#5NK6: CJNE A,#0BH,NK7 MOV KEYBUF,#6NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7NK8:DK2:DK2A: JNZ DK2ANOKEY2: CLR P3.6 JZ NOKEY3 CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3NK9: CJNE
7、A,#0DH,NK10 MOV KEYBUF,#9NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11NK12:DK3:DK3A: JNZ DK3ANOKEY3: CLR P3.7 JZ NOKEY4 CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15NK16:DK4:DK4A: JNZ DK4ANOKEY4: LJMP WAITDELY10MS: MOV R6,#10D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETINT_T0: MOV TH0,STH0 MOV TL0,STL0 CPL P1.0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1