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

📄 tesk500.asm

📁 SNC539 两channel 语音播放
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        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 + -