📄 test56.asm
字号:
caje #0100b @@scan6_back
jmp @@scan7_back
endif
;;******* trigger scan routine ok*****************
ifdef mrx_3
@@trig_scan_3:
page6
mov a p3state ;;clear P3
mov p3 a ;;
mov a p2state
page3
or a keyid
mov p2 a
mov a mrx_3
mov p2s a
mov a #1111b
mov p2s a
mov a keyid
caje #0001b @@scan8_back
caje #0010b @@scan9_back
caje #0100b @@scan10_back
jmp @@scan11_back
endif
;;***********************************************************
ifdef mrx_4
@@trig_scan_4:
page6
mov a p2state ;;clear P2
mov p2 a ;;
mov a p3state
page3
or a keyid
mov p3 a
mov a mrx_4
mov p3s a
mov a #1111b
mov p3s a
mov a keyid
caje #0001b @@scan12_back
caje #0010b @@scan13_back
caje #0100b @@scan14_back
jmp @@scan15_back
endif
;;**************************************************************
;;====================================================================
@@trig_chk:
caje #0000b @@clr_debounce
page1
mov scanP1 a ;m15:trigger change condition
page3
mov a #1000b
and a debocr
caje #1000b @@ScanKey_bk
mov a #1000b ;m14.3=1,debounce
or a debocr
and a #1110b ;clr power down scan key flag
mov debocr a
mov deboc_count #0 ;clear debounce counter
page2
mov a delay_flag
and a #0111b
mov delay_flag a
jmp @@ScanKey_bk
@@clr_debounce:
page3
mov a debocr ;clear key press
and a #0111b
mov debocr a
mov deboc_count #0
mov a mrx
caje #1111b @@chk_direct_key
ifdef mrx_2
page2
mov a skblock
caje #0001b @@change_Scan_block2
ifdef mrx_3
caje #0010b @@change_Scan_block3
ifdef mrx_4
caje #0011b @@change_Scan_block4
endif
endif
endif
ifdef @_key_type_@
page2
mov a skblock
caje #0100b @@change_Scan_Mixkey
endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; block1======================================
;;===============================================
page3
mov a keyid
caje #0001b @@change_scanP21
caje #0010b @@change_scanP22
caje #0100b @@change_scanP23
ifdef mrx_2
page2
mov skblock #0001b
page3
mov keyid #0001b
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
ifdef @_key_type_@
page3
mov keyid #0101b
page2
mov skblock #0100b
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
page2
mov a delay_flag
and a #0111b
mov delay_flag a
page3
mov keyid #0001b
jmp @@ScanKey_bk
@@change_scanP21:
;mov a #0010b
mov keyid #0010b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP22:
;mov a #0100b
mov keyid #0100b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP23:
;mov a #1000b
mov keyid #1000b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
;;=====================================================
;;; block2 ======================================
;;=====================================================
ifdef mrx_2
@@change_Scan_block2:
page3
mov a keyid
caje #0001b @@change_scanP31
caje #0010b @@change_scanP32
caje #0100b @@change_scanP33
ifdef mrx_3
page3
mov keyid #0001b
page2
mov skblock #0010b ;set scan block3
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
ifdef @_key_type_@
page3
mov keyid #0101b
page2
mov skblock #0100b
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
page3
mov keyid #0001b
page2
mov skblock #0000b
mov a delay_flag
and a #0111b
mov delay_flag a
jmp @@ScanKey_bk
@@change_scanP31:
mov keyid #0010b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP32:
mov keyid #0100b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP33:
mov keyid #1000b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
;;*************************************************
;;; block3 ======================================
;;=================================================
ifdef mrx_3
@@change_Scan_block3:
page3
mov a keyid
caje #0001b @@change_scanP21P6
caje #0010b @@change_scanP22P6
caje #0100b @@change_scanP23P6
ifdef mrx_4
page3
mov keyid #0001b
page2
mov skblock #0011b ;set scan block3
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
page2
mov skblock #0000b
mov a delay_flag
and a #0111b
mov delay_flag a
page3
mov keyid #0001b
jmp @@ScanKey_bk
@@change_scanP21P6:
mov keyid #0010b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP22P6:
mov keyid #0100b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP23P6:
mov keyid #1000b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
;;*************************************************
;;; block4 ======================================
;;=================================================
ifdef mrx_4
@@change_Scan_block4:
page3
mov a keyid
caje #0001b @@change_scanP31P6
caje #0010b @@change_scanP32P6
caje #0100b @@change_scanP33P6
page2
mov skblock #0000b
mov a delay_flag
and a #0111b
mov delay_flag a
page3
mov keyid #0001b
jmp @@ScanKey_bk
;endif
@@change_scanP31P6:
mov keyid #0010b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP32P6:
mov keyid #0100b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_scanP33P6:
mov keyid #1000b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
;;*****************************************************
ifdef @_key_type_@
@@change_Scan_Mixkey:
page3
mov a keyid
caje #0101b @@change_mixP3
caje #0011b @@change_mixP6
page2
mov skblock #0000b
mov a delay_flag
and a #0111b
mov delay_flag a
page3
mov keyid #0001b
jmp @@ScanKey_bk
@@change_mixP3:
mov keyid #0011b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@change_mixP6:
mov keyid #0110b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
endif
;;---------------------------------------------------------------
@@chk_direct_key:
page3
mov a keyid
caje #0001b @@changeP2
caje #0010b @@changeP3
caje #0100b @@changeP6
mov keyid #0001b
page2
mov a delay_flag
and a #0111b
mov delay_flag a
jmp @@ScanKey_bk
@@changeP2:
mov keyid #0010b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@changeP3:
mov keyid #0100b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
@@changeP6:
mov keyid #1000b
page2
mov a delay_flag
and a #1000b
caje #1000b scankey
jmp @@ScanKey_bk
;;*****************************************************************
@@Check_Debounce:
page3
mov a deboc_count
caje deboc @@tr_cg_ok
jmp @@Check_bounce_back
;;===============================================================
@@tr_cg_ok:
page3
mov a debocr ;; deboc.2 -> 8mS
and a #0111b ;;clr bounce flag
mov debocr a
mov deboc_count #0 ;clear debounce counter
page1
mov a #0001b
and a scanP1
caje #0001b @@p1ok
mov a #0010b
and a scanP1
caje #0010b @@p1ok
mov a #0100b
and a scanP1
caje #0100b @@p1ok
mov a #1000b
@@p1ok:
mov scanP1 a
ifdef mrx_2
page2
mov a skblock
caje #0001b @@tr_cg_ok_2
ifdef mrx_3
caje #0010b @@tr_cg_ok_3
ifdef mrx_4
caje #0011b @@tr_cg_ok_4
endif
endif
endif
ifdef @_key_type_@
page2
mov a skblock
caje #0100b @@tr_cg_ok_mixkey
endif
@@tr_cg_ok_1:
page3
mov a keyid
page1
caje #0001b @@update_mrx_0
caje #0010b @@update_mrx_1
caje #0100b @@update_mrx_2
@@update_mrx_3:
mov a tr13_16
xor a scanP1
mov tr13_16 a
jmp @@change
@@update_mrx_2:
mov a tr9_12
xor a scanP1
mov tr9_12 a
jmp @@change
@@update_mrx_1:
mov a tr5_8
xor a scanP1
mov tr5_8 a
jmp @@change
@@update_mrx_0:
mov a tr1_4
xor a scanP1
mov tr1_4 a
;;====================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -