📄 double_key.txt
字号:
;***********************************按键扫描************************************
key_scan:
mov wr8,#0000b
mov rb,wr8
mova wr9,rc
sub wr9,#1110b
jz key_scan_run
sub wr9,#1101b
jz key_scan_run
sub wr9,#1011b
jz key_scan_run
sub wr9,#0111b
jz key_scan_run
jmp double_key
key_scan_run:
MOV wr8,#1110B
mov wr0,#0
key_scan1:
mov wr2,#1
MOV RB,wr8
MOVA WR9,RC
sub wr9,#1110b
jz key_code_sys
key_scan5:
mov wr2,#5
sub wr9,#1101b
jz key_code_sys
key_scan9:
mov wr2,#9
sub wr9,#1011b
jz key_code_sys
key_scan13:
mov wr2,#13
sub wr9,#0111b
jz key_code_sys
key_exit_sys:
sub wr0,#3
jz no_press
inc wr0
set cf
rlc wr8
jmp key_scan1
double_key:
mov wr8,#1011b
mov rb,wr8
mova wr9,rc
sub wr9,#0111b
jz double_key1
jmp double_key2
double_key1:
mov wr8,#0111b
mov rb,wr8
mova wr9,rc
sub wr9,#1101b
jnz double_key2
mov key_code,#9
jmp key_press
double_key2:
mov wr8,#1011b
mov rb,wr8
mova wr9,rc
sub wr9,#0101b
jnz no_press
mov key_code,#5
jmp key_press
no_press:
;无键的处理,一般是清标志
rtn
key_code_sys:
mov acc,wr0
mov key_code,wr2
addr key_code,acc
;**********************按键去抖判断***********************************************
key_press:
clr wdt
skb2 key_flag
jmp key_press_1
jmp key_press_adjust1
key_press_1:
mov acc,key_counter ;新键
jz code_to_oldcode
mov acc,key_old_code
sub key_code,acc ;防抖
jz key_press_adjust
mov key_counter,#0
rtn
key_press_adjust:
mov wr3,key_counter ;延时
sub wr3,#3
jz key_press_adjust1
inc key_counter
rtn
code_to_oldcode:
mov wr2,key_code
mov key_old_code,wr2
inc key_counter
jmp key_scan
key_press_adjust1: ;连键
skb1 key_flag
jmp key_press_sys
ls_wait_sys:
skb2 key_flag
jmp ls_wait_first
ls_wait:
mov acc,count1
sub count2,acc
jz ls_wait_exit
mov wr0,count1
mov count2,wr0
jmp KEY_NOMAL_PRESS
ls_wait_exit:
rtn
ls_wait_first:
mov wr0,count1
sub wr0,#4
jz set_wait_flag
rtn
set_wait_flag:
mov wr0,key_flag
orlr wr0,#0100b
mov key_flag,wr0
rtn
key_press_sys:
skb0 key_flag
jmp KEY_NOMAL_PRESS
rtn ;按键未释放
KEY_NOMAL_PRESS :
;按键处理
rtn
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -