📄 key_work.asm
字号:
KEYWORD EQU 30H
ORG 0000H
AJMP MAIN
MAIN:
MOV P1,#00H
LOOP: LCALL KEYWORK
AJMP LOOP
KEYWORK:
MOV P0,#0FFH
CLR P0.0
MOV A,P0
ANL A,#0F0H
CJNE A,#0F0H,KEYCON
SETB P0.0
CLR P0.1
MOV A,P0
ANL A,#0F0H
CJNE A,#0F0H,KEYCON
SETB P0.1
CLR P0.2
MOV A,P0
ANL A,#0F0H
CJNE A,#0F0H,KEYCON
SETB P0.2
CLR P0.3
MOV A,P0
ANL A,#0F0H
CJNE A,#0F0H,KEYCON
SETB P0.3
RET
KEYCON:
LCALL DL10MS
MOV A,P0
ANL A,#0F0H
CJNE A,#0F0H,KEYCHE
KEYOUT: RET
KEYCHE:
MOV A,P0
MOV KEYWORD,A
CJLOOP:
;LCALL DISPLAY
MOV A,P0
ANL A,#0F0H
CJNE A,#0F0H,CJLOOP
MOV R7,#00H
MOV DPTR,#KEYTAB
CHEKEYLOOP:
MOV A,R7
MOVC A,@A+DPTR
XRL A,KEYWORD
JZ KEYOK
INC R7
CJNE R7,#10H,CHEKEYLOOP
RET
;;;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KEYOK:
MOV A,R7
MOV B,A
RL A
ADD A,B
MOV DPTR,#KEYFUNTAB
JMP @A+DPTR
KEYFUNTAB:
LJMP KEYFUN00
LJMP KEYFUN01
LJMP KEYFUN02
LJMP KEYFUN03
LJMP KEYFUN04
LJMP KEYFUN05
LJMP KEYFUN06
LJMP KEYFUN07
LJMP KEYFUN08
LJMP KEYFUN09
LJMP KEYFUN10
LJMP KEYFUN11
LJMP KEYFUN12
LJMP KEYFUN13
LJMP KEYFUN14
LJMP KEYFUN15
RET
;;;;
KEYTAB: DB 0EEH,0DEH,0BEH,07EH,0EDH,0DDH,0BDH,07DH
DB 0EBH,0DBH,0BBH,07BH,0E7H,0D7H,0B7H,077H,0FFH,0FFH
KEYFUN00:
MOV P1,#00
RET
KEYFUN01:
MOV P1,#01
RET
KEYFUN02:
MOV P1,#02
RET
KEYFUN03:
MOV P1,#03
RET
KEYFUN04:
MOV P1,#04
RET
KEYFUN05:
MOV P1,#05
RET
KEYFUN06:
MOV P1,#06
RET
KEYFUN07:
MOV P1,#07
RET
KEYFUN08:
MOV P1,#08
RET
KEYFUN09:
MOV P1,#09
RET
KEYFUN10:
MOV P1,#10
RET
KEYFUN11:
MOV P1,#11
RET
KEYFUN12:
MOV P1,#12
RET
KEYFUN13:
MOV P1,#13
RET
KEYFUN14:
MOV P1,#14
RET
KEYFUN15:
MOV P1,#15
RET
;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
DL10MS:
MOV R6,#020
DL10MS1:MOV R3,#0FFH
DJNZ R3,$
DJNZ R6,DL10MS1
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -