中斷部分如下:兩個定時中斷中都用到了A,調試時歌曲一直演唱第一個音,發現定時器1中斷中*號下方的根本沒執行,A中的數據始終是0C8H,
調試了一個禮拜,還是不知道哪錯了,求各位大佬幫忙,不勝感激。愛你們。
T00: CPL SOUND //定時器0中斷 產生音調
MOV DPTR,#TONE1
MOV A,R0
MOVC A,@A+DPTR
MOV TH0,A
MOV DPTR,#TONE2
MOV A,R1
MOVC A,@A+DPTR
MOV TL0,A
OUT00: RETI
T01: MOV TH1,#9EH //該定時中斷產生節拍,每個音調演奏的時長
MOV TL1,#58H
MOV DPTR,#RHYTHM
MOV A,R2
MOVC A,@A+DPTR
MOV BEAT,A
DJNZ BEAT,OUT01
********************
INC R0 //這部分運行時條件不滿足, 始終保持初值不變,初值R0-R2都是0.
INC R1
INC R2
DEC R3
OUT01: RETI
TONE1: DB 0FDH,0FDH,0FDH,0FDH,0FEH,0FDH,0FDH,0FDH
DB 0FDH,0FDH,0FDH,0FDH,0FDH,0FCH,0FDH,0FBH,0FDH,0FDH,0FCH
DB 0FCH,0FDH,0FDH,0FDH,0FDH,0FDH,0FCH,0FCH
DB 0FDH,0FDH,0FCH,0FCH,0FBH,0FCH,0FBH
TONE2: DB 0C8H,82H,0AH,82H,22H,0C8H,82H,0C8H
DB 0AH,82H,0C8H,82H,0AH,0ADH,44H,90H,82H,0AH,0ADH
DB 0ADH,0AH,82H,82H,0C8H,0AH,0ADH,44H
DB 82H,0AH,0ADH,44H,90H,44H,04H
RHYTHM: DB 45,15,30,30,30,15,15,60
DB 30,15,15,30,15,15,15,15,15,15,60
DB 45,15,30,15,15,45,15,60
DB 45,15,15,15,15,15,60
|