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

📄 兰花草.asm

📁 我学单片机89C51时编的大部分程序都在里面
💻 ASM
字号:
ORG     0000H
        LJMP    START
        ORG     000BH
        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      P1.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,#26H
MUSIC4:
        NOP
        MOV     R3,#202H
        LCALL   DEL
        DJNZ    R2,MUSIC4
        INC     DPTR
        LJMP    MUSIC1
END0:
        NOP
        MOV     R2,#205H         ;歌曲结束,延时1秒后继续
MUSIC6:
        MOV     R3,#00H
        LCALL   DEL
        DJNZ    R2,MUSIC6
        LJMP    MUSIC0
DEL:
        NOP
DEL3:
        MOV     R4,#05H
DEL4:
        NOP
        DJNZ    R4,DEL4
        NOP
        DJNZ    R3,DEL3
        RET
        NOP
DAT:
       DB      3BH,20H,26H,20H
       DB       26H,20H,26H,20H
       DB       26H,60H,2BH,20H
       DB       30H,30H,2BH,10H
       DB       30H,20H,30H,20H
       DB       34H,20H,3BH,80H
       DB       1CH,20H,1CH,20H
       DB       1CH,20H,1CH,20H
       DB       1CH,60H,20H,20H
       DB       26H,20H,20H,20H
       DB       20H,20H,24H,20H
       DB       26H,80H,26H,20H
       DB       1CH,20H,1CH,20H
       DB       20H,20H,26H,60H
       DB       2BH,20H,30H,20H
       DB       2BH,20H,30H,20H
       DB       34H,20H,3BH,40H
       DB       4FH,40H,4FH,20H
       DB       30H,20H,30H,20H
       DB       34H,20H,3BH,60H
       DB       26H,20H,2BH,30H
       DB       30H,10H,34H,20H
       DB       42H,20H,3BH,80H
        DB      18H,     80H,     00H

⌨️ 快捷键说明

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