单片机汇编音乐程序改成C语言,有会的高手帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/30 10:49:56
ORG 0000H
SJMP START
ORG 000BH
LJMP TIM0
START:MOV TMOD,#01H
MOV IE,#82H
START0:MOV 30H,#00H
NEXT: MOV A,30H
MOV DPTR,#TAB
MOVC A,@A+DPTR //A=82H
MOV R2,A //简谱码存于R2
JZ END0 //是否取到00H结束码
ANL A,#0FH //bushi,取节拍码(低四位)
MOV R5,A //节拍码存于R5=2
MOV A,R2
SWAP A
ANL A,#0FH //取四位音符码 A=08
JNZ SING //取到的音符码是否为0
CLR TR0 //是,不发音
SJMP D1
SING:DEC A
MOV 22H,A //22H=07H
RL A //A=2*07H
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV TH0,A
MOV 21H,A //21h=64898
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV 20H,A //20h=64968
SETB TR0
D1:LCALL DELAY
INC 30H
JMP NEXT
END0:CLR TR0
JMP START0
TIM0:PUSH ACC
PUSH PSW
MOV TL0,20H
MOV TH0,21H
CPL P3.0
POP PSW
POP ACC
RETI

为什么要将汇编改成C语言?

直接用C语言写一个?
http://xiesx1985.blog.163.com/blog/static/483120972009081055746/