📄 9_阵列式键盘.asm
字号:
;阵列式键盘BU
;P2口--键盘
;======================
ORG 0000H
LJMP START
ORG 0030H
DBUF EQU 30H
TEMP EQU 40H
DIN BIT P3.6
CLK BIT P3.7
START: MOV A,#16H
MAIN: ACALL DISP
MOV 30H, A
ACALL KEY1
AJMP MAIN
KEY1: MOV P2, #0FH
MOV A, P2
CJNE A, #0FH, K11
K10: AJMP KEY1
K11: ACALL DELAY
MOV P2, #0FH
MOV A, P2
CJNE A, #0FH, K12
SJMP K10
K12: MOV B, A
MOV P2, #0EFH ;
MOV A, P2
CJNE A, #0EFH,K13 ;
MOV P2, #0DFH
MOV A, P2
CJNE A, #0DFH,K13 ;
MOV P2, #0BFH
MOV A, P2
CJNE A, #0BFH,K13;
MOV P2, #7FH
MOV A, P2
CJNE A, #7FH, K13;
AJMP K10
K13: ANL A, #0F0H;
ORL A, B
MOV B, A
MOV R1, #16
MOV R2, #0
MOV DPTR,#K1TAB;
K14: MOV A, R2
MOVC A, @A+DPTR
CJNE A, B, K16
MOV P2, #0FH
K15: MOV A, P2
CJNE A, #0FH, K15
ACALL DELAY
MOV A, R2
RET
K16: INC R2
DJNZ R1, K14
AJMP K10
K1TAB: DB 0EEH,0DEH,0BEH,07EH
DB 0EDH,0DDH,0BDH,07DH
DB 0EBH,0DBH,0BBH,07BH
DB 0E7H,0D7H,0B7H,077H
DISP: MOV DBUF,A
MOV DBUF+1,#16
MOV DBUF+2,#16
MOV DBUF+3,#16
MOV DBUF+4,#16
MOV R0, #DBUF
MOV R1, #TEMP
MOV R2, #5
DP10:MOV DPTR,#SEGTAB
MOV A, @R0
MOVC A, @A+DPTR
MOV @R1, A
INC R0
INC R1
DJNZ R2, DP10
MOV R0, #TEMP
MOV R1, #5
DP12:MOV R2, #8
MOV A, @R0
DP13:RLC A
MOV DIN,C;DIN, C
CLR CLK
SETB CLK ;
DJNZ R2, DP13
INC R0
DJNZ R1, DP12
RET
SEGTAB:DB 3FH,06H,5BH,4FH,66H,6DH
DB 7DH,07H,7FH,6FH,77H,7CH
DB 58H,5EH,79H,71H,00H,40H
DELAY: MOV R4, #02H
AA1: MOV R5, #0F8H
AA:
NOP
NOP
DJNZ R5, AA
DJNZ R4, AA1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -