📄 key_oper.asm
字号:
INCLUDE REG_DEF.INC
PUBLIC SCAN_KEY
KEY_CODE .SECTION 'CODE'
SCAN_KEY:
MOV A, M_LEFT_STEP_COUNT
ADDM A, PCL
JMP NORMAL_SCAN ;STEP0
JMP STEP4
JMP STEP3
JMP STEP2
JMP STEP1
STEP1:
SET KEY_STATUS.0
DEC M_LEFT_STEP_COUNT
JMP SCAN_END
STEP2:
CLR KEY_STATUS
DEC M_LEFT_STEP_COUNT
JMP SCAN_END
STEP3:
SET KEY_STATUS.0
DEC M_LEFT_STEP_COUNT
JMP SCAN_END
STEP4:
CLR KEY_STATUS
CLR M_LEFT_STEP_COUNT
JMP SCAN_END
NORMAL_SCAN:
CLR KEY_STATUS
SNZ L_BUT ;PA.3
SET KEY_STATUS.0
SNZ R_BUT ;PA.2
SET KEY_STATUS.1
SNZ M_BUT ;PA.4
SET KEY_STATUS.2
; =====================================================
SZ OFFICE_BUT ;PB.7
JMP NOT_PRESS_OB
JMP PRESS_OB
NOT_PRESS_OB:
CLR OFFICE_BUT_PRESSED
JMP KEEP_BUTTON_CHECK_1
PRESS_OB:
SZ OFFICE_BUT_PRESSED
JMP KEEP_BUTTON_CHECK_1
SET KEY_STATUS.3
SET OFFICE_BUT_PRESSED
JMP SCAN_END
KEEP_BUTTON_CHECK_1:
SZ LEFT_F_BUT ;PA.1
JMP NOT_PRESS_LF
JMP PRESS_LF
NOT_PRESS_LF:
CLR LF_BUT_PRESSED
JMP KEEP_BUTTON_CHECK_2
PRESS_LF:
SZ LF_BUT_PRESSED
JMP KEEP_BUTTON_CHECK_2
SET KEY_STATUS.4
SET LF_BUT_PRESSED
;=================================
MOV A, 1;6
MOV Z_WHEEL, A
;=================================
JMP SCAN_END
KEEP_BUTTON_CHECK_2:
SZ LEFT_B_BUT ;PA.0
JMP NOT_PRESS_LB
JMP PRESS_LB
NOT_PRESS_LB:
CLR LB_BUT_PRESSED
JMP KEEP_BUTTON_CHECK_3
PRESS_LB:
SZ LB_BUT_PRESSED
JMP KEEP_BUTTON_CHECK_3
SET KEY_STATUS.5
SET LB_BUT_PRESSED
;==================================
MOV A, 0FFH;0FAH
MOV Z_WHEEL, A
;==================================
JMP SCAN_END
KEEP_BUTTON_CHECK_3:
SZ MIDDLE_L_BUT ;PA.7
JMP NOT_PRESS_ML
JMP PRESS_ML
NOT_PRESS_ML:
CLR M_LEFT_PRESSED
JMP SCAN_END
PRESS_ML:
SZ M_LEFT_PRESSED
JMP SCAN_END
SET KEY_STATUS.6
;==================================
SET M_LEFT_PRESSED
MOV A, 4
MOV M_LEFT_STEP_COUNT, A
;==================================
; ======================================================
SCAN_END:
SZ KEY_STATUS
SET MOVEMENT.2
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -