?? 4x4 keyboard (2).asm
字號:
LINE EQU 30H
ROW EQU 31H
VAL EQU 32H
ORG 00H
START: MOV DPTR,#TABLE ;段碼表首地址
MOV P2,#00H ;數碼管顯示初始化
LSCAN: MOV P3,#0F0H ;列線置高電平,行線置高電平
L1: JNB P3.0,L2 ;逐行掃描
LCALL DELAY
JNB P3.0,L2
MOV LINE,#00H ;存行號
LJMP RSCAN
L2: JNB P3.1,L3
LCALL DELAY
JNB P3.1,L3
MOV LINE,#01H ;存行號
LJMP RSCAN
L3: JNB P3.2,L4
LCALL DELAY
JNB P3.2,L4
MOV LINE,#02H ;存行號
LJMP RSCAN
L4: JNB P3.3,L1
LCALL DELAY
JNB P3.3,L1
MOV LINE,#03H ;存行號
RSCAN: MOV P3,#0FH ;行線列線電平互換
C1: JNB P3.4,C2 ;逐列掃描
MOV ROW,#00H ;存列號
LJMP CALCU
C2: JNB P3.5,C3
MOV ROW,#01H ;存列號
LJMP CALCU
C3: JNB P3.6,C4
MOV ROW,#02H ;存列號
LJMP CALCU
C4: JNB P3.7,C1
MOV ROW,#03H ;存列號
CALCU: MOV A,LINE ;根據行號和列號計算鍵值
MOV B,#04H
MUL AB
ADD A,ROW
MOV VAL,A ;存鍵值
MOVC A,@A+DPTR ;要據鍵值查段碼
MOV P2,A ;輸出段碼顯示
LJMP LSCAN
DELAY: MOV R6,#20
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -