📄 n.asm
字号:
org 0000h
ajmp main
org 000bh/*T0中断入口*/
ajmp intt0/*T0中断服务子程序*/
org 0030h/*主程序起始地址*/
main: mov tmod,#01h/*设置T0为16位定时器*/
mov ie,#82h/*开中断*/
start: mov 30h,#00h/*取简谱码指针*/
next: mov a,30h/*简谱指针载入A*/
mov dptr,#tab
movc a,@a+dptr
mov r2,a/*取到的简码暂存R2*/
jz end0/*是否取到结束吗*/
anl a,#0fh/*不是,则取低4位*/
mov r5,a/*将节拍码存R5*/
mov a,r2/*将取到的简谱码再载入A*/
swap a/*高低四位交换*/
anl a,#0fh/*取低四位(音符码)*/
jnz sing/*取到的音符码为0吗*/
clr tr0/*是,则不发音*/
ajmp d1/*跳到D1*/
sing: dec a/*取到的音符码减1(不含0)*/
mov 22h,a/*存入22H*/
rl a/*乘2*/
mov dptr,#tab1/*至TAB1取相对的低位字节计数值*/
movc a,@a+dptr
mov th0,a/*取到的高位字节存入TH0*/
mov 21h,a/*取到高位字节存入21H*/
mov a,22h/*再载入取到的音符码*/
rl a/*乘2*/
inc a/*加1*/
movc a,@a+dptr/*至TAB1取相对的低字节计数值*/
mov tl0,a/*取到的低位字节存入TL0*/
mov 20h,a/*取到的低位字节存入20H*/
setb tr0/*启动T0*/
d1: acall delay/*基本单位时间1/4拍187毫秒*/
inc 30h/*取简码指针加1*/
ajmp next/*取下一个码*/
end0: clr tr0/*停止T0*/
ajmp start/*重复循环*/
intt0: push acc/*将A的值暂存于堆栈*/
push psw/*将PSW的值暂存于堆栈*/
mov tl0,20h/*重设计数值*/
mov th0,21h
cpl p2.1/*将P1.7位反相*/
pop psw
pop acc/*从堆栈取回A,PSW的值*/
reti/*中断返回*/
delay: mov r7,#02h/*187MS延时*/
dl1: mov r4,#187
dl2: mov r3,#248
djnz r3,$
djnz r4,dl2
djnz r7,dl1
djnz r5,delay/*决定节拍*/
ret
tab1:
DW 64260,64400,64524,64580
DW 64684,64777,64820,64898
DW 64968,65030,65058,65110
DW 65157,65178,65217
/*
;不倒翁
tab:
DB 84H,94H,88H
DB 64H,54H,68H
DB 84H,64H,54H,44H
DB 62H,82H,42H,62H,58H
DB 84H,94H,88H
DB 64H,54H,68H
DB 84H,64H,54H,44H
DB 52H,42H,52H,62H,48H
DB 00H
end
;三只小猫
tab:DB 62H,82H,82H,62H,98H
DB 92H,0B2H,0B2H,82H,98H
DB 62H,82H,82H,52H,68H
DB 92H,0B2H,0B2H,82H,98H
DB 62H,82H,82H,62H,92H,92H,94H
DB 92H,0B2H,0B2H,92H,84H,94H
DB 0B8H,0B4H,04H
DB 00H
end
;哈巴狗
tab:DB 42H,42H,42H,52H,64H,04H
DB 62H,62H,62H,72H,84H,04H
DB 92H,92H,82H,72H,64H,04H
DB 82H,82H,52H,62H,44H,04H
DB 42H,42H,42H,52H,64H,04H
DB 62H,62H,62H,72H,84H,04H
DB 92H,92H,82H,72H,64H,04H
DB 82H,82H,52H,62H,44H,04H
DB 00H
end
;妹妹背着洋娃娃
tab:DB 84H,02H,82H,64H,54H
DB 64H,54H,48H
DB 64H,02H,52H,44H,24H
DB 14H,24H,18H
DB 24H,02H,22H,42H,24H
DB 44H,54H,68H
DB 54H,02H,52H,84H,84H
DB 54H,64H,48H
DB 00H
end
/*
;新年快乐
tab:
0x42,0x42,0x44,0x14,0x02,
0x62,0x62,0x64,0x44,0x04,
0x42,0x62,0x84,0x84,0x02,
0x72,0x62,0x54,0x04,
0x52,0x62,0x74,0x74,0x02,
0x62,0x52,0x64,0x44,0x04,
0x42,0x62,0x54,0x14,0x02,
0x32,0x52,0x44,0x04,
0x00
end
/*
;绿岛小夜曲
tab:
DB 0A2H,0B2H,0D2H,0B2H,0A4H,0B2H,0D2H
DB 0B2H,0A2H,82H ,72H,88H
DB 72H, 82H,0A2H,82H,72H,62H,42H,62H
DB 38H,38H
DB 0A4H,02H,0B2H,0A4H,084H
DB 72H,82H,72H,62H,72H,84H,72H
DB 64H,62H,12H,34H,02H,42H
DB 38H,38H
DB 44H,02H,32H,44H,64H
DB 72H,82H,72H,62H,72H,84H,0A2H
DB 72H,74H,82H,0A2H,02H,0B2H
DB 0A8H,0A8H
DB 0B2H,0B4H,0A2H,84H,82H,72H
DB 62H,72H,82H, 0A2H,88H
DB 72H,74H,62H,42H,32H,32H,62H
DB 78H,78H
DB 82H,84H,72H,82H,0A2H,84H
DB 72H,82H, 72H, 62H, 48H
DB 32H,0A2H,82H,0F2H,0A2H,0B2H,82H,72H
DB 68H,68H
DB 0B2H, 0B2H,0A2H, 82H,84H,02H
DB 72H,74H,62H,42H,32H,42H,62H
DB 78H,78H
DB 0A2H,0B2H,0A2H,72H,82H,84H,82H
DB 72H,74H,62H,44H,64H
DB 0A8H,0A4H,02H,0A2H
DB 0A2H ,0B1H ,0A1H,82H,0A2H,0B4H,0B2H,0C2H
DB 0A2H,0B2H,0A2H,82H,78H
DB 84H,72H,62H,44H,02H,62H
DB 72H,81H,71H,62H,72H,84H,02H,0A2H
DB 0B4H,02H,82H,74H,82H,72H
DB 68H,68H,04H
DB 00H
end
/*
;弯弯的月亮
tab:
DB 62H,82H,82H,62H,98H
DB 92H,0B2H,0B2H,82H,98H
DB 62H,82H,82H,52H,68H
DB 92H,0B2H,0B2H,82H,92H,92H,94H
DB 92H,0B2H,0B2H,92H,84H,94H
DB 0B8H,0B4H,04H
DB 00H
end
;记事本
tab:
DB 84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,82H,84H,0B2H,0A2H,0A2H,93H,04H
DB 94H,92H,82H,82H,63H,62H,62H,52H,52H,42H,44H,04H
DB 62H,52H,52H,42H,84H,04H
DB 92H,82H,94H,82H,63H,04H
DB 84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,83H,04H
DB 84H,0B2H,0A2H,0A2H,93H,94H,82H,92H,82H,63H,04H
DB 52H,62H,52H,62H,44H,04H
DB 52H,62H,52H,42H,84H,04H
DB 14H,62H,52H,52H,42H,54H,42H,44H,04H
DB 0A2H,0B2H,0A2H,63H,04H
DB 0A2H,0B2H,0A2H,63H,04H
DB 0D2H,0C2H,0C2H,0B2H,0C2H,0B2H,0B2H,0B2H,94H,84H,94H,64H,04H
DB 64H,62H,52H,52H,42H,44H,04H
DB 64H,62H,52H,52H,42H,84H,04H
DB 84H,92H,82H,92H,83H,63H,04H
DB 0A2H,0B2H,0A2H,63H,04H
DB 0A2H,0B2H,0A2H,63H,04H
DB 0D2H,0C2H,0C2H,0B2H,0D2H,0C2H,0C2H,0B2H,0C2H,0C2H,0C4H,0E4H,64H,04H
DB 0D4H,0C2H,0D2H,0C2H,0B2H,94H,04H
DB 0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,04H
DB 0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,0B4H,96H,04H
DB 00H
end
;两只蝴蝶
tab:
DB 62H,52H,64H,04H
DB 52H,62H,52H,44H,04H
DB 22H,42H,54H,64H,52H,42H,22H,42H,14H,04H
DB 62H,52H,64H,04H
DB 52H,62H,52H,44H,04H
DB 22H,42H,54H,64H,52H,42H,22H,42H,54H,04H
DB 62H,52H,64H,04H
DB 52H,62H,52H,44H,04H
DB 22H,42H,54H,64H,52H,42H,22H,42H,14H,04H
DB 62H,82H,84H,04H
DB 82H,92H,82H,64H,04H
DB 52H,62H,54H,64H,52H,42H,22H,42H,44H,04H
DB 82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H
DB 62H,62H,82H,94H,94H,22H,62H,56H,04H
DB 62H,82H,82H,62H,84H,04H
DB 0B4H,0A2H,92H,0A2H,64H,04H
DB 92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
DB 82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H
DB 62H,62H,82H,94H,94H,22H,62H,56H,04H
DB 62H,82H,82H,62H,84H,04H
DB 0B4H,0A2H,92H,0A2H,64H,04H
DB 92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
DB 62H,82H,82H,62H,84H,04H
DB 0B4H,0A2H,92H,0A2H,64H,04H
DB 92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
DB 00H
end
;兰花草
tab:
DB 42H,82H,82H,82H,86H,72H,63H,71H,62H,52H,48H
DB 0B2H,0B2H,0B2H,0B2H,0B6H,0A2H
DB 83H,0A1H,0A2H,92H,88H,82H,0B2H,0B2H,0A2H,86H,72H
DB 63H,71H,62H,52H,44H,12H,02H
DB 12H,62H,62H,52H,46H,82H,73H,61H,52H,32H,48H
DB 00H
end
*/
;2002年的第一场雪
tab:
;1
DB 04H,0A2H,0A2H,0A2H,0A2H,0A2H,0A2H,0B4H,0A2H,92H,72H,72H,72H,72H,92H
DB 92H,92H,92H,92H,92H,92H,62H,72H,72H,72H,04H
DB 02H,0A2H,0A2H,0A2H,0A4H,0A2H,0A2H,0B4H,0A2H,92H,92H,0A2H,0A4H
DB 02H,62H,62H,62H,62H,62H,52H,0A2H,94H,92H,92H,92H,72H,74H
;2
DB 04H,0A2H,0A2H,0A2H,0A2H,0A2H,0A2H,0B4H,0A2H,92H,72H,72H,72H,72H,92H
DB 92H,92H,92H,92H,92H,92H,62H,72H,72H,72H,04H
DB 02H,0A2H,0A2H,0A2H,0A4H,0A2H,0A2H,0B4H,0A2H,92H,92H,0A2H,0A4H
DB 02H,62H,62H,62H,62H,62H,52H,0A2H,94H,92H,92H,92H,72H,74H
;3
DB 02H,0A2H,0A2H,0A2H,0A2H,0A2H,0A2H,0B4H,0A2H,0B2H,92H,72H,74H
DB 02H,62H,62H,62H,64H,62H,52H,74H,62H,72H,52H,32H,34H
DB 02H,0A2H,0A2H,0A2H,0A2H,0A2H,0A2H,0A2H,0B4H,0A2H,0B2H,92H,72H,74H
DB 02H,62H,62H,62H,62H,62H,52H,32H,94H,92H,92H,62H,72H,74H
DB 02H,0A2H,0A2H,0A2H,0A4H,0A2H,0A2H,0B4H,0A2H,92H,72H,72H,74H
DB 02H,62H,62H,62H,62H,62H,62H,52H,74H,62H,72H,52H,32H,34H
;4
DB 02H,62H,62H,62H,62H,62H,52H,32H,52H,52H,52H,32H,32H,22H,12H
DB 02H,62H,62H,62H,62H,62H,52H,32H,62H,72H,72H,72H,72H
DB 02H,62H,62H,62H,62H,62H,52H,32H,92H,0A2H,0A2H,0A2H,0A2H
END
/*
;两只老虎
tab: db 44h,54h,64h,44h
db 44h,54h,64h,44h
db 64h,74h,88h
db 64h,74h,88h
db 82h,92h,82h,72h,64h,44h
db 82h,92h,82h,72h,64h,44h
db 44h,84h,48h
db 44h,14h,48h
db 44h,54h,64h,44h
db 44h,54h,64h,44h
db 64h,74h,88h
db 64h,74h,88h
db 82h,92h,82h,72h,64h,44h
db 82h,92h,82h,72h,64h,44h
db 44h,84h,48h
db 44h,14h,48h
db 00h
end
/*
;过雪山草地
tab:db 52h,61h,81h,22h,41h
db 54h,02h,62h,84h
db 71h,81h,92h,84h
db 04h,0b2h,0b2h,92h,0b2h
db 82h,02h,91h,82h,62h
db 52h,52h,22h,52h,44h
db 04h,52h,02h,61h,52h
db 42h,22h,21h,41h,54h
db 82h,02h,81h,72h,82h
db 92h,72h,84h,92h,92h
db 81h,91h,0a2h,94h,02h
db 82h,62h,92h,82h,52h
db 64h,04h,82h,91h,0b1h
db 92h,81h,61h,52h,61h
db 81h,51h,61h,42h,22h
db 02h,41h,61h,81h,52h
db 44h,04h,08h,00h
end
/*
;甜蜜蜜
tab:
db 11h,21h,41h,51h,68h
db 14h,22h,11h,21h,48h
db 48h,64h,82h,92h,65h
db 42h,53h,41h,52h,61h
db 81h,68h,52h,52h,52h
db 51h,61h,51h,41h,42h
db 21h,11h,12h,45h,52h
db 63h,51h,61h,51h,61h
db 81h,58h,58h,64h,82h
db 92h,65h,42h,53h,41h
db 52h,61h,81h,68h,52h
db 52h,52h,51h,61h,51h
db 41h,42h,21h,13h,45h
db 62h,51h,41h,42h,21h
db 11h,12h,48h,48h,68h
db 14h,21h,41h,11h,21h
db 48h,48h,22h,42h,22h
db 42h,22h,21h,41h,21h
db 11h,12h,68h,68h,22h
db 42h,22h,42h,22h,21h
db 41h,21h,11h,12h,68h
db 64h,02h,81h,91h,84h
db 02h,81h,91h,84h,02h
db 81h,91h,82h,81h,91h
db 82h,81h,91h,88h,64h
db 82h,92h,65h,42h,53h
db 41h,52h,61h,81h,68h
db 52h,52h,52h,51h,61h
db 51h,41h,42h,21h,13h
db 45h,62h,51h,41h,42h
db 21h,11h,12h,48h,48h
db 68h,14h,21h,41h,11h
db 21h,48h,48h,00h
end
/*
;月亮代表我的心
tab:
db 02h,12h,45h,62h,85h,42h,35h,62h,84h,02h,82h
db 95h,0a2h,0b5h,92h
db 8ch,62h,52h,45h,42h,44h,62h,52h,45h,42h,44h
db 52h,62h,55h,42h,24h
db 64h,5ch,02h,12h,45h,62h,85h,42h
db 35h,62h,84h,02h,82h,95h,0a2h,0b5h,92h,8ch,62h
db 52h,45h,42h,44h,62h,52h,45h,42h,44h,52h,62h
db 55h,22h,34h,42h,52h,4ch,84h
db 65h,52h,44h,84h,3ch,22h,32h,25h,34h,24h,14h
db 6ch,84h,65h,52h,44h
db 84h,3ch,22h,32h,45h,42h,45h,51h
db 61h,5ch,02h,12h
db 45h,62h,85h,42h,35h,62h,85h,82h,95h,0a2h,0b5h
db 92h,8ch,62h,52h
db 45h,42h,44h,62h,52h,45h,42h,44h,52h,62h,55h
db 22h,34h,42h,52h,4ch
;重复
db 62h,52h,45h,42h,44h,62h,52h,45h,42h,44h,52h
db 62h,55h,22h,34h,42h,52h,4ch,62h,52h,45h,42h
db 44h,62h,52h,45h,42h,44h,52h,62h,55h,22h,34h
db 42h,52h,4ch,00h
end
/*
tab: //遇见
db 82h,62h,64h,82h,52h
db 54h,62h,52h,52h,42h
db 48h,42h,32h,22h,32h
db 42h,32h,42h,42h,52h,62h
db 6Ch,82h,62h,64h,82h,52h,54h,62h,52h
db 52h,42h,48h,42h,32h
db 22h,32h,42h,32h,32h,42h,42h,52h
db 48h,02h,82h,92h,0A2h
db 0B4h,0A2h,0B2h,0A2h,92h,92h,81h,71h
db 84h,32h,82h,44h,52h,62h
db 72h,62h,52h,42h,34h,82h,62h
db 64h,82h,52h,54h,62h,52h
db 52h,42h,48h,42h,32h
db 22h,32h,42h,32h,32h,42h,42h,52h
db 6Ch,82h,62h
db 64h,82h,0C2h,0C4h,0B2h,0A2h
db 0A2h,0B2h,0A8h,42h,32h
db 22h,32h,42h,32h,32h,42h,42h,52h
db 48h,02h,82h,92h,0A2h
db 0B4h,0A2h,0B2h,0A2h,92h,82h,92h
db 92h,82h,84h,82h,42h,52h,62h
db 74h,62h,72h,82h,42h,52h,62h
db 62h,62h,64h,02h,92h,0A2h
db 0B4h,0A2h,0B2h,0C2h,0B2h,0C2h,0D2h
db 0D2h,82h,84h,82h,42h,52h,62h
db 74h,62h,72h,62h,52h,52h,42h
db 32h,42h,48h,02h,82h
db 0D2h,0C2h,82h,0D2h,0C4h,0C2h,0F2h
db 02h,72h,62h,72h,82h,0A2h
db 0A2h,0C2h,0BCh,82h,62h
db 32h,42h,44h,02h,82h,92h,0A2h
db 0B4h,0A2h,0B2h,0C2h,0B2h,0A2h,92h
db 92h,82h,84h,02h,42h,52h,62h
db 74h,62h,72h,82h,42h,42h,92h
db 92h,82h,84h,02h,82h,92h,0A2h
db 0B4h,0A2h,0B2h,0C2h,0A2h,0C2h,0D2h
db 0D2h,82h,84h,02h,42h,52h,62h
db 74h,62h,72h,82h,42h,44h
db 51h,61h,51h,41h,4Ch
db 08h,02h,82h,92h,0A2h
db 0B4h,0A2h,0B2h,0A2h,92h,82h,72h
db 72h,82h,8Ch
db 72h,62h,52h,42h,0A4h,0A4h
db 0BFh,00h
end
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -