⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 double_key.txt

📁 经典,能用的单键,双键扫描程序,非常明了,思路清楚,不占用资源,
💻 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 + -