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

📄 keysend1.asm

📁 本系统以Atmel的AT89c52单片机为主控制器
💻 ASM
字号:
;-----------------------常数

        ORG     0000H
        LJMP    MAIN
        ORG     000BH
        LJMP    TT0
        ORG     0030H
MAIN:   MOV     SP,#60H
        MOV     A,#10H
        LCALL   DISP
        MOV     SCON,#40H
        MOV     TMOD,#21H
        SETB    TR1
        MOV     TH1,#0FDH
        MOV     TL1,#0FDH
        MOV     TH0,#3CH
        MOV     TL0,#0B0H
        SETB    EA
        SETB    ET0
        MOV     PCON,#00H
LOOP:   LCALL   KEYSCAN
        JZ      LOOP
        LCALL   DELAY
        LCALL   KEYSCAN
        JZ      LOOP
        LCALL   KEYGET
        CJNE    A,#0FFH,LOOP2
        LJMP    LOOP
LOOP2:  MOV     B,A
        LCALL   DISP
        MOV     A,B
        CJNE    A,#0CH,LOOP3          ;CLR
LOOP21: JNB      P2.2,$
        LCALL   DELAY
        JNB     P2.2,LOOP21
        LCALL   SEND

        LJMP    LOOP
LOOP3:  CJNE    A,#0DH,LOOP4            ;RPLAY
LOOP31: JNB     P2.3,$
        LCALL   DELAY
        JNB     P2.3,LOOP31
        LCALL   SEND
        LJMP    LOOP
LOOP4:  SETB    TR0
        MOV     30H,#00H
;        PUSH    B
        LCALL   SEND
LOOP1:  LCALL   KEYSCAN
        JNZ      LOOP1
        CLR      TR0
        MOV      A,#0FH
        LCALL    DISP
        MOV      A,30H
        MOV      B,#05H
        DIV      AB
        INC      A
        ANL      A,#0FH
        SWAP     A
        ORL      A,#0FH
        MOV     B,A
        LCALL   SEND
        LJMP    LOOP

TT0:    MOV     TH0,#3CH
        MOV     TL0,#0B0H
        INC     30H
        MOV     A,30H
        CJNE    A,#70,TT0_EXIT
        MOV     30H,A
TT0_EXIT:RETI

SEND:   CLR     TI
        MOV     A,#0EBH
        MOV     SBUF,A
        JNB     TI,$
        CLR     TI
        MOV     A,B
        MOV     SBUF,A
        JNB     TI,$
        CLR     TI
        RET

DISP:   ADD     A,#03H
        MOVC    A,@A+PC
        MOV     P0,A
        RET
;DISTAB: DB 0C0H,0DBH,61H,49H,5AH,4CH,44H,0D9H
;        DB 40H,48H,50H,46H,0E4H,43H,64H,74H,07FH
DISTAB: DB 09H,1AH,0CH,04H,99H,
        DB 0DBH,61H,49H,5AH,4CH,44H,0D9H,0E4H,43H,64H,74H,07FH
        

KEYSCAN:MOV     A,P1
        CPL     A
        MOV     B,A
        MOV     A,P3
        CPL     A
        ANL     A,#3CH
        ORL     B,A
        MOV     A,P2
        CPL     A
        ANL     A,#3FH
        ORL     A,B
        RET

KEYGET: MOV     A,P1
        MOV     B,#00H
        JNB      ACC.0,KG_EXIT
        INC      B
        JNB      ACC.1,KG_EXIT
        INC      B
         JNB      ACC.2,KG_EXIT
        INC      B
        JNB      ACC.3,KG_EXIT
        INC      B
        JNB      ACC.4,KG_EXIT
        INC      B
        JNB      ACC.5,KG_EXIT
        INC      B
        JNB      ACC.6,KG_EXIT
        INC      B
        JNB      ACC.7,KG_EXIT
        INC      B
        MOV      A,P2
        JNB       ACC.3,KG_EXIT
        INC      B
        JNB      ACC.2,KG_EXIT
        INC      B
        JNB      ACC.1,KG_EXIT
        INC      B
        JNB      ACC.0,KG_EXIT
        INC      B
        JNB       ACC.4,KG_EXIT
        INC      B
        JNB      ACC.5,KG_EXIT

        MOV      A,#0FFH
        SJMP     KG1
KG_EXIT:MOV      A,B
KG1:    RET







DELAY:  MOV     R7,#20
        MOV     R6,#0
DE1:    DJNZ    R6,$
        DJNZ    R7,DE1
        RET

;-------------------------------------------

⌨️ 快捷键说明

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