📄 tesk500.asm
字号:
jmp @@trig_chk
@@pd_scankey_ok:
;;;; For Drive & Sink function ;;;;;;;;;;;
page7
ifndef mrx_3
MOV A,P2S_STATE
MOV P2S,A
endif
MOV A,P3S_STATE
MOV P3S,A
PAGE0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; page0
; mov a #1111b
; mov p2s a
; mov p3s a
;;;; Scankey P2-->P1 ;;;;;;;;;;
mov a mrxb
or a p2state
;ifdef @_key_type_@ ;remove 2004/12/14
; mov p2state a
; mov a keyp2b
; and a p2state
;endif
; mov p2state a
mov p2 a
mov m15 #0000b
ifdef mrx_2
page7
mov a mrxb_2
or a p4state
; mov p4state a
mov p4 a
endif
end
;******* trigger scan routine ok*****************
@@trig_scan:
;;;; Scankey P2-->P1 ;;;;;;;;;
ifdef mrx_2
page7
mov a p4state
mov p4 a
endif
page0
mov a p2state
or a scanid
mov p2 a
mov a mrx
mov p2s a
mov a #1111b
mov p2s a
mov a scanid
caje #0001b @@scan0_back
caje #0010b @@scan1_back
caje #0100b @@scan2_back
jmp @@scan3_back
ifdef mrx_2
@@trig_scan_2:
;;;; Scankey P4-->P1 ;;;;;;;;;
page0
mov a p2state
mov p2 a
page7
mov a p4state
page0
or a scanid
mov p4 a
mov a mrx_2
mov p4s a
mov a #1111b
mov p4s a
mov a scanid
caje #0001b @@scan4_back
caje #0010b @@scan5_back
caje #0100b @@scan6_back
jmp @@scan7_back
endif
ifdef mrx_3
@@trig_scan_3:
;;;; Scankey P2-->P6 ;;;;;;;;;
page7
mov a p4state
mov p4 a
page0
mov a p2state
or a scanid
mov p2 a
mov a mrx_3
mov p2s a
mov a #1111b
mov p2s a
mov a scanid
caje #0001b @@scan8_back
caje #0010b @@scan9_back
caje #0100b @@scan10_back
jmp @@scan11_back
endif
ifdef mrx_4
@@trig_scan_4:
;;;; Scankey P4-->P6 ;;;;;;;;;
page0
mov a p2state
mov p2 a
page7
mov a p4state
page0
or a scanid
mov p4 a
mov a mrx_4
mov p4s a
mov a #1111b
mov p4s a
mov a scanid
caje #0001b @@scan12_back
caje #0010b @@scan13_back
caje #0100b @@scan14_back
jmp @@scan15_back
endif
@@pd_trig_scan: ;add at 03/17'04
;;;; Scankey P2-->P1 ;;;;;;;;;
page0
mov a p2state
or a scanid
mov p2 a
mov a mrx
mov p2s a
mov a #1111b
mov p2s a
mov a scanid
caje #0001b @@pd_scan0_back
caje #0010b @@pd_scan1_back
caje #0100b @@pd_scan2_back
jmp @@pd_scan3_back
; ******* debounce routine ok********************
@@trig_chk:
page0
caje #0000b @@mrx
mov m15 a ;m15:trigger change condition
mov a #1000b
and a m14
caje #1000b @@timer_ok
mov a #1000b ;m14.3=1,debounce
or a m14
mov m14 a
page7
mov deboc_count #0 ;clear debounce counter
@@loop: jmp @@timer_ok
@@loop1:
page7
mov a deboc_count ;check debounce
caje deboc @@tr_cg_ok
page0
mov a mrx
caje #1111b @@trig_key_ret
ifdef mrx_2
page6
mov a skblock
caje #0001b @@scan_kb1
ifdef mrx_3
caje #0010b @@scan_kb2
ifdef mrx_4
caje #0011b @@scan_kb3
endif
endif
endif
page0
mov a scanid
caje #0001b @@scan0
caje #0010b @@scan1
caje #0100b @@scan2
ifdef @_key_type_@
caje #0011b @@Mkeyp2_
caje #0111b @@Mkeyp3_
caje #1111b @@Mkeyp6_
endif
jmp @@scan3
ifdef mrx_2
@@scan_kb1:
page0
mov a scanid
caje #0001b @@scan4
caje #0010b @@scan5
caje #0100b @@scan6
ifdef @_key_type_@
caje #0011b @@Mkeyp2_
caje #0111b @@Mkeyp3_
caje #1111b @@Mkeyp6_
endif
jmp @@scan7
endif
ifdef mrx_3
@@scan_kb2:
page0
mov a scanid
caje #0001b @@scan8
caje #0010b @@scan9
caje #0100b @@scan10
ifdef @_key_type_@
caje #0011b @@Mkeyp2_
caje #0111b @@Mkeyp3_
caje #1111b @@Mkeyp6_
endif
jmp @@scan11
endif
ifdef mrx_4
@@scan_kb3:
page0
mov a scanid
caje #0001b @@scan12
caje #0010b @@scan13
caje #0100b @@scan14
ifdef @_key_type_@
caje #0011b @@Mkeyp2_
caje #0111b @@Mkeyp3_
caje #1111b @@Mkeyp6_
endif
jmp @@scan15
endif
@@trig_key_ret:
mov a scanid
caje #0001b @@key0_ ; p1
caje #0010b @@key1_ ; p2
caje #0100b @@key2_ ; p3
jmp @@key3_ ; p6
;******* scankey routine ok ********************
@@scankey:
page7
mov deboc_count #0
page0
mov a #0111b
and a m14
mov m14 a
page1
mov delay8m #0000b
mov s_delay1 #0
page2
mov p_delay1 #0000b
@@scankey1:
page2
mov a #0001b
and a enter_b
caje #0000b @@not_begin_back2
mov a #1110b
and a enter_b
mov enter_b a
page3
ret1
@@not_begin_back2:
;;;;;;;; For IR transmit function ;;;;;;;;;;;;;;;;;;;;;
ifdef IR_TRANSMIT
JMP @IR_TRANSMIT
@IR_TRANSMIT_OK:
endif
ifdef IR_Receive
;;;;;;;; For IR receive function ;;;;;;;;;;;;;;;;;;;;;
JMP @IR_RECEIVE
@IR_RECEIVE_OK:
endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
page0
mov a mrx
caje #1111b @@key0_
@@scan0:
mov scanid #0001b ;scanid: scan loop
jmp @@trig_scan
@@scan0_back:
mov a p1
xor a tr1_4
jmp @@trig_chk
@@scan1:
mov scanid #0010b ;scanid: scan loop
jmp @@trig_scan
@@scan1_back:
mov a p1
xor a tr5_8
jmp @@trig_chk
@@scan2:
mov scanid #1000b
mov a mrx
caje #1100b @@mrx
mov scanid #0100b ;scanid: scan loop
jmp @@trig_scan
@@scan2_back:
mov a p1
xor a tr9_12
jmp @@trig_chk
@@scan3:
mov scanid #1000b
mov a mrx
caje #1000b @@mrx
jmp @@trig_scan
@@scan3_back:
mov a p1
xor a tr13_16
jmp @@trig_chk
;;*************************************************
ifdef mrx_2
@@scan4:
mov scanid #0001b ;keyid: scan loop
jmp @@trig_scan_2
@@scan4_back:
page6
mov a p1
xor a tr17_20
jmp @@trig_chk
@@scan5:
mov scanid #1000b ;;if (key#<21)
mov a mrx_2 ;;then skip the rest key
caje #1110b @@mrx ;;
mov scanid #0010b ;keyid: scan loop
jmp @@trig_scan_2
@@scan5_back:
page6
mov a p1
xor a tr21_24
jmp @@trig_chk
@@scan6:
mov scanid #1000b ;;if (key#<25)
mov a mrx_2 ;;then skip the rest key
caje #1100b @@mrx ;;
mov scanid #0100b ;keyid: scan loop
jmp @@trig_scan_2
@@scan6_back:
page6
mov a p1
xor a tr25_28
jmp @@trig_chk
@@scan7:
mov scanid #1000b ;;if (key#<29)
mov a mrx_2 ;;then skip the rest key
caje #1000b @@mrx ;;
jmp @@trig_scan_2
@@scan7_back:
page6
mov a p1
xor a tr29_32
jmp @@trig_chk
endif
;;***************************************************************
;;*************************************************
ifdef mrx_3
@@scan8:
mov scanid #0001b ;keyid: scan loop
jmp @@trig_scan_3
@@scan8_back:
page7
mov a p6
xor a tr33_36
jmp @@trig_chk
@@scan9:
mov scanid #1000b ;;if (key#<21)
mov a mrx_3 ;;then skip the rest key
caje #1110b @@mrx ;;
mov scanid #0010b ;keyid: scan loop
jmp @@trig_scan_3
@@scan9_back:
page7
mov a p6
xor a tr37_40
jmp @@trig_chk
@@scan10:
mov scanid #1000b ;;if (key#<25)
mov a mrx_3 ;;then skip the rest key
caje #1100b @@mrx ;;
mov scanid #0100b ;keyid: scan loop
jmp @@trig_scan_3
@@scan10_back:
page7
mov a p6
xor a tr41_44
jmp @@trig_chk
@@scan11:
mov scanid #1000b ;;if (key#<29)
mov a mrx_3 ;;then skip the rest key
caje #1000b @@mrx ;;
jmp @@trig_scan_3
@@scan11_back:
page7
mov a p6
xor a tr45_48
jmp @@trig_chk
endif
;;***************************************************************
;;*************************************************
ifdef mrx_4
@@scan12:
mov scanid #0001b ;keyid: scan loop
jmp @@trig_scan_4
@@scan12_back:
page7
mov a p6
xor a tr49_52
jmp @@trig_chk
@@scan13:
mov scanid #1000b ;;if (key#<21)
mov a mrx_4 ;;then skip the rest key
caje #1110b @@mrx ;;
mov scanid #0010b ;keyid: scan loop
jmp @@trig_scan_4
@@scan13_back:
page7
mov a p6
xor a tr53_56
jmp @@trig_chk
@@scan14:
mov scanid #1000b ;;if (key#<25)
mov a mrx_4 ;;then skip the rest key
caje #1100b @@mrx ;;
mov scanid #0100b ;keyid: scan loop
jmp @@trig_scan_4
@@scan14_back:
page7
mov a p6
xor a tr57_60
jmp @@trig_chk
@@scan15:
mov scanid #1000b ;;if (key#<29)
mov a mrx_4 ;;then skip the rest key
caje #1000b @@mrx ;;
jmp @@trig_scan_4
@@scan15_back:
page7
mov a p6
xor a tr61_64
jmp @@trig_chk
endif
;;***************************************************************
@@key0_:
mov a p1
mov scanid a
mov a keyp1
and a scanid
mov scanid #0001b
xor a tr1_4
jmp @@trig_chk
@@key1_:
mov a p2
mov scanid a
mov a keyp2
and a scanid
mov scanid #0010b
xor a tr5_8
jmp @@trig_chk
@@key2_:
mov a p3
mov scanid a
;;;; If IR occur ....disable p33 , p32
PAGE1
MOV TEMP0,#1111B
ifdef IR_Transmit
ifdef IR_Receive
;;; IR_Bidirection
PAGE1
MOV TEMP0,#0011B
else
;;;; IR_TRANSMIT
PAGE1
MOV TEMP0,#0111B
endif
elseifdef IR_Receive
;;;;; IR_RECEIVE
PAGE1
MOV TEMP0,#0111B
endif
mov a keyp3
AND A TEMP0
page0
and a scanid
mov scanid #0100b
xor a tr9_12
jmp @@trig_chk
@@key3_:
mov a p6
mov scanid a
mov a keyp6
and a scanid
mov scanid #1000b
xor a tr13_16
jmp @@trig_chk
ifdef @_key_type_@ ;add at 05-26'04 for mix key
@@Mkeyp2_:
page0
mov a p2
mov scanid a
mov a keyp2
and a scanid
mov scanid #0011b
page6
xor a Mtr2
jmp @@trig_chk
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -