?? key_display_huang.asm
字號:
KEY1: ACALL KS1
JNZ LK1 ;不為0,有鍵盤按下,轉(zhuǎn)
ACALL DIS ;調(diào)用顯示子程序,延時6MS
AJMP KEY1
LK1: ACALL DIS ;調(diào)用顯示子程序,延時12Ms
ACALL DIS
ACALL KS1
JNZ LK2
ACALL DIS ;調(diào)用顯示子程序,延時6MS
AJMP KEY1
LK2: MOV R2,#11111011B
MOV R4,#00H ;從第0列開始,4*4鍵盤顯示
LK4: MOV DPTR,#8002H ;位選
MOV A,R2
MOVX @DPTR,A
MOV DPTR ,#8001H ;鍵盤輸入
MOVX A,@DPTR
JB ACC.0,LONE ;第0行
MOV A,#00H
AJMP LKP
LONE: JB acc.1,LTWO
MOV A,#04H ;第1行
AJMP LKP
LTWO: JB ACC.2,LTHR
MOV A,#08H ;第2行
AJMP LKP
LTHR:JB ACC.3,NEXT
MOV A,#0CH ;第3行
LKP: ADD A,R4
PUSH ACC
LK3: ACALL DIS
ACALL KS1
JNZ LK3
POP ACC
MOV 7BH,7AH
MOV 7AH,79H
MOV 79H,78H
MOV 78H,A
SJMP KEY1;RET
NEXT: INC R4 ;下一列
MOV A,R2
JNB ACC.5,KND
RL A
MOV R2,A
AJMP LK4
KND: AJMP KEY1
KS1: MOV DPTR ,#8002H ;判斷是否有鍵盤按下
MOV A,#00H
MOVX @DPTR,A
MOV DPTR, #8001H
MOVX A,@DPTR
CPL A
ANL A,#0FH
RET
DIS: MOV R0,#78H ;動態(tài)顯示子程序
MOV R3,#00000100B
MOV A,R3
LD0: MOV DPTR,#8002H ;位選
MOVX @DPTR,A
MOV DPTR,#8004H ;段選
MOV A,@R0
ADD A,#0DH
MOVC A,@A+PC
MOVX @DPTR,A
ACALL DL1
INC R0
MOV A,R3
JB ACC.5,LD1
RL A
MOV R3,A
AJMP LD0
LD1: RET
DSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;共陰表
DL1: MOV R7,#02H ;延時子程序
DL: MOV R6,#0FFH
DL6: DJNZ R6,DL6
DJNZ R7,DL
RET
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -