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

📄 ex5108.asm

📁 DVCC-jh+ c51单片机试验操作程序源代码(键盘实验 二极管等)
💻 ASM
字号:
DISBUF  EQU  30H
P_CON   EQU  0FF20H
PORT_A  EQU  0FF21H
PORT_B  EQU  0FF22H
PORT_C  EQU  0FF23H
        ;
        ORG 0000H
        LJMP START
        ;
        ORG 0030H
START:  MOV SP,#50H
        MOV DPTR,#P_CON
        MOV A,#03H
        MOVX @DPTR,A
        MOV R0,#DISBUF
        MOV R1,#06H
        MOV A,#10H
LP1:    MOV @R0,A
        INC R0
        DJNZ R1,LP1
        ;
LP2:    ACALL DISPLAY
        ;
        ACALL INKEY
        CJNE A,#0FFH,FLASH
        SJMP LP2
        ;
FLASH:  MOV DISBUF+5,DISBUF+4
        MOV DISBUF+4,DISBUF+3
        MOV DISBUF+3,DISBUF+2
        MOV DISBUF+2,DISBUF+1
        MOV DISBUF+1,DISBUF
        MOV DISBUF,A
        SJMP LP2
        ;
INKEY:  ACALL IS_KEY
        CJNE A,#0FFH,SK1
        SJMP KEY_DONE
        ;
SK1:    ACALL DISPLAY
        ACALL DISPLAY
        ACALL IS_KEY
        CJNE A,#0FFH,SK2
        SJMP KEY_DONE
        ;
SK2:    MOV R3,#0FEH
        MOV R4,#00H
LP3:    MOV DPTR,#PORT_A
        MOV A,R3
        MOVX @DPTR,A
        MOV DPTR,#PORT_C
        MOVX A,@DPTR
        JB ACC.0,LONE
        MOV A,#00H
        SJMP LKP
        ;
LONE:   JB ACC.1,NEXT
        CLR A
        ADD A,#02H
        SJMP LKP
NEXT:   MOV A,R4
        MOV B,#04H
        DIV AB
        MOV A,B
        CJNE A,#01H,NEXT1
        MOV A,#02H
        ADD A,R4
        MOV R4,A
NEXT1:  INC R4
        MOV A,R3
        SETB C
        RLC A
        DEC A
        MOV R3,A
        JC LP3
        MOV A,#0FFH
        SJMP KEY_DONE
        ;
LKP:    ADD A,R4
	MOV DPTR,#KEYDATA
	MOVC A,@A+DPTR
        PUSH ACC
LP4:    ACALL DISPLAY
        ACALL IS_KEY
        CJNE A,#0FFH,LP4
        POP ACC
KEY_DONE: RET
KEYDATA:DB 07H,04H,01H,00H,08H,05H,02H,0FH
	DB 09H,06H,03H,0EH,0AH,0BH,0CH,0DH

IS_KEY: MOV DPTR,#PORT_A
        CLR A
        MOVX @DPTR,A
        MOV DPTR,#PORT_C
        MOVX A,@DPTR
        ORL A,#0FCH
        RET
        ;
DISPLAY:MOV R0,#DISBUF+5
        MOV R2,#20H
DIS_LP: MOV DPTR,#SEG_TAB
        MOV A,@R0
        MOVC A,@A+DPTR
        MOV DPTR,#PORT_B
        MOVX @DPTR,A
        ;
        MOV DPTR,#PORT_A
        MOV A,R2
        MOVX @DPTR,A
        ;
        MOV R3,#00H
        DJNZ R3,$
        ;
        DEC R0
        MOV A,R2
        RR A
        MOV R2,A
        JNB ACC.7,DIS_LP
        ;
        RET
        ;
SEG_TAB:DB 0C0H
        DB 0F9H
        DB 0A4H
        DB 0B0H
        DB 99H
        DB 92H
        DB 82H
        DB 0F8H
        DB 80H
        DB 90H
        DB 88H
        DB 83H
        DB 0C6H
        DB 0A1H
        DB 86H
        DB 8EH
        DB 0FFH
        ;
        END

⌨️ 快捷键说明

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