📄 02ok-鍵盤.txt
字号:
LED_PORT REG P2
KEY_PORT REG P1
ORG 0H
MOV LED_PORT,#01010101B
$2: ACALL KEY_PRESS
ACALL SCAN_KEY
ACALL DISP_LED
SJMP $2
KEY_PRESS:
$1: MOV KEY_PORT,#00001111B
MOV A,KEY_PORT
CJNE A,#00001111B,$1
RET
SCAN_KEY:
$3: MOV R5,#4
MOV A,#11101111B
$4: MOV KEY_PORT,A
NOP
CJNE A,KEY_PORT,KEY_POS
RL A
DJNZ R5,$4
SJMP $3
KEY_POS:
ACALL DELAY0.1S
MOV A,KEY_PORT
ACALL LO_POS
CJNE R2,#4,$5
$6: MOV R3,#0FFH
RET
$5: MOV A,R2
MOV R3,A
MOV A,KEY_PORT
SWAP A
ACALL LO_POS
CJNE R2,#04H,$9
SJMP $6
$9: MOV A,R2
RL A
RL A
ADD A,R3
MOV R3,A
RET
DELAY0.1S:
MOV R1,#200
$7:
MOV R0,#250
$8: DJNZ R0,$8
DJNZ R1,$7
RET
LO_POS:
MOV R2,#0
$10: RRC A
JC $11
RET
$11 INC R2
CJNE R2,#04H,$10
RET
DISP_LED:
CJNE R3,#0FFH,$12
RET
$12: MOV DPTR,#LED_TAB
MOV A,R3
MOVC A,@A+DPTR
MOV LED_PORT,A
RET
LED_TAB:
.DB 01111000B
.DB 01110111B
.DB 01110110B
.DB 01110011B
.DB 01111011B
.DB 01111010B
.DB 01111001B
.DB 01110010B
.DB 01111110B
.DB 01111101B
.DB 01111100B
.DB 01110001B
.DB 01111111B
.DB 01110101B
.DB 01110100B
.DB 01110000B
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -