📄 key.asm
字号:
ORG 0H
BEGIN:
KEYBOARD:
CALL GET_KEY
CALL DISPLAY
SJMP KEYBOARD
DISPLAY:
CALL SEGCODE
MOV P3,A
RET
SEGCODE:
INC A
MOVC A,@A+PC
RET
;7_SEG_TABLE
DB 00111111B,00000110B,01011011B
DB 01001111B,01100110B,01101101B
DB 01111101B,00100111B,01111111B
DB 01101111B,01110111B,01111100B
DB 00111001B,01011110B,01111001B
DB 01110001B
GET_KEY:
AGAIN:
MOV R1,#4
MOV A,#00010000B
GET:
MOV P1,A
MOV A,P1
PUSH ACC
ANL A,#00001111B
CJNE A,#0,KEY_IN
POP ACC
RL A
DJNZ R1,GET
SJMP AGAIN
KEY_IN:
POP ACC
KEY_0:
CJNE A,#10001000B,KEY_1
MOV A,#0
RET
KEY_1:
CJNE A,#10000100B,KEY_2
MOV A,#1
RET
KEY_2:
CJNE A,#10000010B,KEY_3
MOV A,#2
RET
KEY_3:
CJNE A,#10000001B,KEY_4
MOV A,#3
RET
KEY_4:
CJNE A,#01001000B,KEY_5
MOV A,#4
RET
KEY_5:
CJNE A,#01000100B,KEY_6
MOV A,#5
RET
KEY_6:
CJNE A,#01000010B,KEY_7
MOV A,#6
RET
KEY_7:
CJNE A,#01000001B,KEY_8
MOV A,#7
RET
KEY_8:
CJNE A,#00101000B,KEY_9
MOV A,#8
RET
KEY_9:
CJNE A,#00100100B,KEY_A
MOV A,#9
RET
KEY_A:
CJNE A,#00100010B,KEY_B
MOV A,#10
RET
KEY_B:
CJNE A,#00100001B,KEY_C
MOV A,#11
RET
KEY_C:
CJNE A,#00011000B,KEY_D
MOV A,#12
RET
KEY_D:
CJNE A,#00010100B,KEY_E
MOV A,#13
RET
KEY_E:
CJNE A,#00010010B,KEY_F
MOV A,#14
RET
KEY_F:
MOV A,#15
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -