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

📄 dian_zi_qin.asm

📁 在51系列单片机平台上实现电子琴功能
💻 ASM
字号:
        ORG    0000H
        SJMP   START

        ORG    000BH
        LJMP   BELL

        ORG    0030H
START:  MOV    SP,#30H
        MOV    TMOD,#01H
        SETB   ET0
        SETB   EA
        MOV    R0,#0EFH
        MOV    R1,#4
        MOV    R2,#16
        MOV    DPTR,#KEYTAB
        MOV    TH0,#0ECH
        MOV    TL0,#078H

L0:
        MOV    R2,#16
        MOV    P2,R0
        MOV    A,R0
        RL     A
        MOV    R0,A
        MOV    A,P2
        ANL    A,#0FH
        CJNE   A,#0FH,L1      ;键盘按下的话转L1
        DJNZ   R1,L0
        MOV    R1,#4
        MOV    R0,#0EFH
        SJMP   L0

L1:     MOV    A,R2
        DEC    A
        MOV    DPTR,#KEYTAB
        MOVC   A,@A+DPTR
        CJNE   A,P2,L2
        MOV    A,R2
        DEC    A
        MOV    70H,A
        SJMP   L3

L2:     DJNZ   R2,L1


L3:     MOV    A,70H
        MOV    DPTR,#HTAB
        MOVC   A,@A+DPTR
        MOV    71H,A
        MOV    DPTR,#LTAB
        MOV    A,70H
        MOVC   A,@A+DPTR
        MOV    72H,A
        SETB   TR0
        CALL   DELAY
        CLR    TR0
        LJMP   L0

BELL:   PUSH   ACC
        PUSH   PSW
        PUSH   DPL
        PUSH   DPH

        MOV    TH0,71H
        MOV    TL0,72H
        CPL    P3.7

        POP    DPH
        POP    DPL
        POP    PSW
        POP    ACC
        RETI

DELAY:  MOV    R3,#028H
DELAY1: MOV    R4,#0FFH
        DJNZ   R4,$
        DJNZ   R3,DELAY1
        RET

KEYTAB:  DB     07EH, 0E7H, 0D7H, 0B7H, 077H, 0EBH, 0DBH, 0BBH, 07BH, 0EDH
         DB     0DDH, 0BDH, 07DH, 0EEH, 0DEH, 0BEH

HTAB:    DB     0FDH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FFH,0FFH,0FFH
         DB     0FFH,0FFH,0FFH,0FFH,0FDH,0FEH

LTAB:    DB     082H,022H,056H,085H,09AH,0C1H,0E4H,003H,011H,02BH
         DB     042H,04DH,061H,072H,0C8H,006H

         END

⌨️ 快捷键说明

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