;祝你生日快乐ORG0000HLJMPSTARTORG000BHINC20H;中断服务,中断计数器加1MOVTH0,0bbH;d8MOVTL0,0EFH;12M晶
;祝你生日快乐
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中止服务,中止计数器加1
MOV TH0,#0bbH ;d8
MOV TL0,#0EFH ;12M晶振,构成10毫秒中止
RETI
START:
INITIAL:MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
CPL P1.6
MUSIC0: NOP
MOV DPTR,#MUSIC_DAT ;表头地址送DPTR
MOV 20H,#00H ;中止计数器清0
MOV B,#00H ;表序号清0
MUSIC1: NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则完毕
CPL P1.7
CPL P1.6
CJNE A,#0FFH,MUSIC5 ;是休止符则持续履行
LJMP MUSIC3
MUSIC5: NOP
MOV R6,A ;r6=18H音符的频率
INC DPTR