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

📄 键盘程序a.asm

📁 使用汇编语言的89C2051键盘输入程序源码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        MOV     R6,A
        CLR     54H
        AJMP    DVL3
RLN:    MOV     C,54H
        MOV     R0,#04H
        MOV     R1,#50H
RLNO:   MOV     A,@R1
        RLC     A
        MOV     @R1,A
        INC     R1
        DJNZ    R0,RLNO
        MOV     A,R4
        RLC     A
        MOV     R4,A
        MOV     A,R5
        RLC     A
        MOV     R5,A
        MOV     A,R6
        RLC     A
        MOV     R6,A
        RET
;=================================================
;               转换16进制到10进制
;=================================================
H_D:

LOOP:           MOV     R0,#54H
                MOV     A,26H
                MOV     @R0,A
                INC     R0
                MOV     A,27H
                MOV     @R0,A
                ACALL   BIN_BCD
LOOP0:
                RET
BIN_BCD:
                MOV     R1,#51H
                MOV     R5,#03H
                CLR     A

LOOP1:
                MOV     @R1,A
                INC     R1
                DJNZ    R5,LOOP1
                MOV     R7,#10H

LOOP4:
                MOV     R0,#54H
                MOV     R6,#02H
                CLR     C
LOOP2:
                MOV     A,@R0
                RLC     A
                MOV     @R0,A
                INC     R0
                DJNZ    R6,LOOP2
                MOV     R1,#51H
                MOV     R5,#03H
                NOP
LOOP3:
                MOV     A,@R1
                ADDC    A,@R1
                DA      A
                MOV     @R1,A
                INC     R1
                DJNZ    R5,LOOP3
                DJNZ    R7,LOOP4

                RET
;===================================================
;
WORD3_6:
                acall   CLR_P4
                MOV     A,27H
                ANL     A,#0FH
                MOV     83H,A
                MOV     A,27H
                ANL     A,#0F0H
                SWAP    A
                MOV     82H,A
                MOV     A,26H
                ANL     A,#0FH
                MOV     81H,A
                MOV     A,26H
                ANL     A,#0F0H
                SWAP    A
                MOV     80H,A
                MOV     A,7FH
                ANL     A,#0FH
                MOV     85H,A
                MOV     A,7FH
                ANL     A,#0F0H
                SWAP    A
                MOV     84H,A
                RET
WORD_3_6:
                ACALL   CLR_P4
                MOV     R0,#0F5H
                MOV     A,7EH
                ANL     A,#0FH
                MOV     @R0,A
                DEC     R0
                MOV     A,7EH
                ANL     A,#0F0H
                SWAP    A
                MOV     @R0,A
                DEC     R0
                MOV     A,7FH
                ANL     A,#0FH
                MOV     @R0,A
                DEC     R0
                MOV     A,7FH
                ANL     A,#0F0H
                SWAP    A
                MOV     @R0,A
                DEC     R0
                MOV     A,26H
                ANL     A,#0FH
                MOV     @R0,A
                DEC     R0
                MOV     A,26H
                ANL     A,#0F0H
                SWAP    A
                MOV     @R0,A
                RET
;=============================================
;             键盘接收——处理
;=============================================
KEY_INT:
                PUSH    ACC
                PUSH    PSW
                PUSH    DPH
                PUSH    DPL
                CALL    DS_KEY
                mov     p1,#0ffh
                MOV     A,P1
                JNB     ACC.7,KEY_4
                JNB     ACC.6,KEY_3
                JNB     ACC.5,KEY_2
                JNB     ACC.4,KEY_1
                POP     DPL
                POP     DPH
                POP     PSW
                POP     ACC
                RETI
KEY_4:
                MOV     A,P1
                JNB     ACC.7,$
                CALL    DS_KEY
                CLR     IE1
                CLR     28H.7
                POP     DPL
                POP     DPH
                POP     PSW
                POP     ACC
                AJMP    START1
                RETI
KEY_3:
                MOV     A,P1
                JNB     ACC.6,$
                CALL    DS_KEY
                CLR     IE1
                CLR     28H.6
                POP     DPL
                POP     DPH
                POP     PSW
                POP     ACC
                RETI
KEY_2:
                MOV     A,P1
                JNB     ACC.5,$
                CALL    DS_KEY
                CLR     IE1
                CLR     28H.5
                POP     DPL
                POP     DPH
                POP     PSW
                POP     ACC
                RETI
KEY_1:
                MOV     A,P1
                JNB     ACC.4,$
                CALL    DS_KEY
                CLR     IE1
                CLR     28H.4
                POP     DPL
                POP     DPH
                POP     PSW
                POP     ACC
                RETI

DS_KEY:
                MOV     R7,#0FFH
                DJNZ    R7,$
                RET
DS_1S:          MOV     R7,#0FFH
DS_255us:       MOV     R6,#0FFH
                DJNZ    R6,$
                DJNZ    R6,$
                DJNZ    R7,DS_255us
                RET
;
;==================================================
PLAY:
            MOV         P1,#0F0H
            MOV         DPTR,#3F00H
            MOV         R1,#0F0H
            MOV         A,@R1
            INC         R1
            MOVC        A,@A+DPTR
            MOV         P4,A
            MOV         P1,#0F1H
            MOV         A,@R1
            MOVC        A,@A+DPTR
            MOV         P4,A
            INC         R1
            mov         P1,#0F2H
            MOV         A,@R1
            MOVC        A,@A+DPTR
            MOV         P4,A
            INC         R1
            mov         P1,#0F3H
            MOV         A,@R1
            MOVC        A,@A+DPTR
            ORL         A,#80H
            MOV         P4,A
            INC         R1
            mov         P1,#0F4H
            MOV         A,@R1
            MOVC        A,@A+DPTR
            MOV         P4,A
            INC         R1
            mov         P1,#0F5H
            MOV         A,@R1
            MOVC        A,@A+DPTR
            MOV         P4,A
           ;ACALL       WAIT_CLR
            RET
WAIT_CLR:
            MOV         R7,#0FFH
            DJNZ        R7,WAIT_CLR
            RET
CLR_P4:
                MOV     P4,#00H
                MOV     P1,#0F0H
                MOV     P1,#0F1H
                MOV     P1,#0F2H
                MOV     P1,#0F3H
                MOV     P1,#0F4H
                MOV     P1,#0F5H
                RET
P4_P:
                MOV     P4,#0F6H
                MOV     P1,#0F7H
                CALL    DS_1S
                RET

                  ORG      3F00H
TAB:
DB   3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB   7FH,6FH,77H,7CH,39H,5EH,79H,71H

⌨️ 快捷键说明

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