⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c.asm

📁 蜂鸣器音乐汇编程序
💻 ASM
字号:
ORG 0000H
LJMP START
ORG 000BH
CLR P2.0;音乐输出口
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START: 
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MOV B,#00H ;表序号清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A
SETB TR0 ;启动计数
MUSIC2:
NOP
CPL P2.0;音乐输出口
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3: 
MOV R4,#02H
DEL4: 
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
db 15h,16h,75h,15h,16h,55h,13h,15h,16h,15h,16h,99h,12h,13h,65h,45h,13h,12h,11h,12h,73h,62h,42h,12h,11h,96h,15h,76h
db 55h,23h,45h,0a9h,22h,53h,12h,13h,65h,52h,22h,42h,21h,0a6h,0e9h,91h,12h,13h,12h,13h,15h,99h,12h
          
db 20h,23h,23h,23h,63h,22h,23h,23h,22h,41h,0a6h,25h,53h,22h,21h,0a9h,21h,0a6h,75h,26h,0a9h,21h,0a6h,0c9h,12h,11h,96h,15h
db 23h,25h,25h,26h,45h,21h,22h,13h,35h,25h,0a9h,0a6h,25h,23h,22h,71h,52h,25h,45h,13h,15h,13h,12h,21h,41h,22h,43h,45h
db 23h,25h,26h,0a9h,42h,12h,33h,72h,51h,22h,43h,22h,21h,0c6h,0c9h,29h,0c6h,45h,23h,23h,53h,25h,26h,25h,13h,12h,21h,62h
db 42h,23h,25h,55h,26h,25h,23h,45h,26h,0a9h,21h,22h,63h,52h,22h,22h,13h,12h,21h,0a6h,0f9h,00h
 
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -