?? text1.asm
字號:
ORG 30H
START: MOV R0,#00H
MOV R1,#04H
MOV R2,#0EFH ;掃描碼初值 低電平掃描
GO: MOV A,R2
MOV P1,A
;==================查第一行=============================
JNB P1.0,KEYIN ;若被按下就跳轉
INC R0 ;下一鍵
;==================查第二行==============================
JNB P1.1,KEYIN
INC R0
;==================查第三行=============================
JNB P1.2,KEYIN
INC R0
;==================查第四行===============================
JNB P1.3,KEYIN
INC R0
;==================下一列==============================
MOV A,R2
RL A
MOV R2,A
DJNZ R1,GO
JMP START
;==================鍵被按的處理程序========================
KEYIN: CALL WAIT ;調用防抖動延時
MOV A,R0 ;取按鍵值
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,#0FFH ;清理數碼管
MOV P2,A
MOV P0,#0FEH
JMP START ;重新掃描
;================防抖動延時程序===========================
WAIT: MOV R7,#40
W1:MOV R6,#200
DJNZ R6,$
DJNZ R7,W1
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0 TO 7
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH ;8 TO F
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -