;祝你生日快乐
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0bbH ;d8
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
本文引用地址:https://www.eepw.com.cn/article/201611/320042.htmSTART:
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