中断部分如下:两个定时中断中都用到了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
|