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

📄 speaker.asm

📁 51单片机音乐播放器.rar
💻 ASM
字号:
;===================
;八月桂花香 12M晶振
;===================

        ORG     0000H
        LJMP    START
        ORG     000BH            ;T0入口
        INC     20H
        MOV     TH0,#0D8H
        MOV     TL0,#0EFH
        RETI
START:  MOV     SP,#50H          ;堆栈指针
        MOV     TH0,#0FFH
        MOV     TL0,#0FFH
        MOV     TMOD,#01H
        MOV     IE,#82H
MUSIC0: NOP
        MOV     DPTR,#DAT
        MOV     20H,#00H
        MOV     B,#00H
MUSIC1: NOP
        CLR     A
        MOVC    A,@A+DPTR
        JZ      END0             ;取出的表值为0时结束
        CJNE    A,#0FFH,MUSIC5   ;判断不等于FFH是转,不明白原因
        LJMP    MUSIC3
MUSIC5: NOP
        MOV     R6,A
        INC     DPTR
        MOV     A,B
        MOVC    A,@A+DPTR
        MOV     R7,A
        SETB    TR0
MUSIC2: NOP
        CPL     P1.2
        MOV     A,R6
        MOV     R3,A;R3将在延时子程序中用到,可能与声音有关
        LCALL   DEL
        MOV     A,R7
        CJNE    A,20H,MUSIC2;判断不等于20H时转,不明白原因
        MOV     20H,#00H
        INC     DPTR
       ;INC     B
        LJMP    MUSIC1
MUSIC3: NOP
        CLR     TR0
        MOV     R2,#0DH
MUSIC4: NOP
        MOV     R3,#0FFH
        LCALL   DEL
        DJNZ    R2,MUSIC4        ;R2减1,不为0则转
        INC     DPTR
        LJMP    MUSIC1
END0:   NOP
        MOV     R2,#64H
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      18H,     30H,     1CH,     10H
        DB      20H,     40H,     1CH,     10H
        DB      18H,     10H,     20H,     10H
        DB      1CH,     10H,     18H,     40H
        DB      1CH,     20H,     20H,     20H
        DB      1CH,     20H,     18H,     20H
        DB      20H,     80H,    0FFH,     20H
        DB      30H,     1CH,     10H,     18H
        DB      20H,     15H,     20H,     1CH
        DB      20H,     20H,     20H,     26H
        DB      40H,     20H,     20H,     2BH
        DB      20H,     26H,     20H,     20H
        DB      20H,     30H,     80H,    0FFH
        DB      20H,     20H,     1CH,     10H
        DB      18H,     10H,     20H,     20H
        DB      26H,     20H,     2BH,     20H
        DB      30H,     20H,     2BH,     40H
        DB      20H,     20H,     1CH,     10H
        DB      18H,     10H,     20H,     20H
        DB      26H,     20H,     2BH,     20H
        DB      30H,     20H,     2BH,     40H
        DB      20H,     30H,     1CH,     10H
        DB      18H,     20H,     15H,     20H
        DB      1CH,     20H,     20H,     20H
        DB      26H,     40H,     20H,     20H
        DB      2BH,     20H,     26H,     20H
        DB      20H,     20H,     30H,     80H
        DB      20H,     30H,     1CH,     10H
        DB      20H,     10H,     1CH,     10H
        DB      20H,     20H,     26H,     20H
        DB      2BH,     20H,     30H,     20H
        DB      2BH,     40H,     20H,     15H
        DB      1FH,     05H,     20H,     10H
        DB      1CH,     10H,     20H,     20H
        DB      26H,     20H,     2BH,     20H
        DB      30H,     20H,     2BH,     40H
        DB      20H,     30H,     1CH,     10H
        DB      18H,     20H,     15H,     20H
        DB      1CH,     20H,     20H,     20H
        DB      26H,     40H,     20H,     20H
        DB      2BH,     20H,     26H,     20H
        DB      20H,     20H,     30H,     30H
        DB      20H,     30H,     1CH,     10H
        DB      18H,     40H,     1CH,     20H
        DB      20H,     20H,     26H,     40H
        DB      13H,     60H,     18H,     20H
        DB      15H,     40H,     13H,     40H
        DB      18H,     80H,     00H
        end


⌨️ 快捷键说明

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