亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sp200.asm

?? 合泰MCU寫的電話機源程序
?? ASM
?? 第 1 頁 / 共 5 頁
字號:

	mov		R_TempA,a        ;save acc 
	mov		a,status         ;save status flag 
	mov		R_status,a

	set		flag_set_exit
	clr		flag_store

	clr		flag_endring_T   ;clear end ring flag
	clr		flag_endringadd_T ; add 255
	clr		R_endring_T       ;clear end ring count 
    clr		PFDC.4           ;disable PFD output
	clr		dtmfc            ; stop dial
	set		D_PWDN

	clr		Flag_first_ring	 ;clear finish active first ring flag


	sz		dialerio.1          ;test HFO
	jmp		L_phone_is_using_notclear  ;hand free ,hfo=1

;	clr		dialerio.1	

	sz		dialerio.4          ;test hook switch
	jmp		L_phone_not_use

	jmp		L_phone_is_using_notclear  ;po=1
L_phone_not_use:                ;on hook status
	clr		flag_first_memory

	sz		flag_dial_pause
	set		R_Redial_count
	clr		flag_dial_pause      ;11/4 debug add
	clr		flag_dial_pause1
	clr		flag_pause_between

	sz		flag_save_over32
	clr		R_dial_code_buffer


	clr		flag_first_pause    ;10/17

	sz	    flag_pause_between
	jmp		L_clear_dadfadfasfa	
	mov		a,R_dial_code_buffer    
	mov		R_dial_count_p,a       ;debug add 10/9      
L_clear_dadfadfasfa:
	sz	    flag_pause_between
	set		flag_pause_hook_on       ;11/4
	clr		flag_pause_between

	sz		headset_countral    ;9/11 debug add
	jmp		L_exit_test_phone   ;headset use

	set		flag_onhook_T      ;set on hook flag !
	clr		R_onhook_T

	set		[16h].6            ;disable mute 
	clr		R_flag
	clr		R_flash_time
	snz		flag_store
	clr		pd.0
	jmp		L_exit_test_phone
L_phone_is_using_notclear:      ;off hook status 
	;//// wake up from here,than enter green mode             
	set		[16h].6  ;11/10 add    ;disable mute 

	clr		flag_save_over32     ;9/11

		set		[16h].7           ;off mute XMute pin =0 
	snz		flag_store
	clr		pd.0

	set		flag_hook_status_change
	
    clr             [22h].7          ;linec
	set		[16h].5             ;turn on po 
	clr		flag_onhook_T      ;clear onhook flag
	clr		R_onhook_T         ;clear onhook counting          
	clr		pd.1               ;disable earphone function

	clr		flag_headset

	clr		R_key_hold
	set		Flag_phone_use
	clr		flag_line_hold
L_exit_test_phone:
;		nop				 
		mov		a,R_status
		mov		status,a         ;back up status flag
		mov		a,R_TempA        ;back up acc

		reti
;----------------------------------------------------------------
;----------------------------------------------------------------
;          Function:  scan routine
;          output  : R_key_value
;----------------------------------------------------------------

            org 500h ;Key code table

;//  the next is  SP400 key configure   ///
            dc 0    ;not key press value is '0'
			dc  33,34,35,16      ;c0
			dc	1, 2, 3, 14      ;c1
			dc	4, 5, 6, 32      ;c2
			dc	7, 8, 9, 38 ;13      ;c3
			dc	10,11,12,13      ;c4
			dc	17,18,19,20      ;c5
			dc	21,22,23,24      ;c6
			dc	25,26,15, 0      ;c7
			dc	0, 0, 36, 28      ;c8
			dc	0, 27, 37, 0      ;c9
;			dc	0, 27, 28, 37      ;c9
;----------- key panel -----------------------------------------
;	 R0	     R1       R2       R3	     	
;C0      Mute        Vup      Vdown    M0		 	
;C1	 1	     2	      3        Flash     	
;C2	 4	     5	      6        Store  	   
;C3	 7	     8	      9        Redial    	       
;C4	 *	     0	      #        Pause   
;C5	 M1	     M2       M3       M4     
;C6	 M5          M6       M7       M8    
;C7	 M9          M10      DISC     NOT    
;C8	 not         Not      HeadSET  M12       ;Not    
;C9      not         VoiceMailHold     not
;----------------------------------------------------------------
;		Function: portA0 ~ portA4  pull High input
;				  portE0 ~ portE3  CMOS output ,output Low scan
;----------------------------------------------------------------
F_key_Scan:
F_key_Scan_in_setting:

	mov		a,0
	mov		pE,a	     ;port D low 4 bit output '0'

	CALL	NOP4T        ;Wait I/O stable
	CALL	NOP4T        ;Wait I/O stable
	mov		a,pa
	nop
	and		a,01fh

	mov		R_Temp1,a

	xor		a,01fh
	sz		acc		     ;have key press?
	jmp		L_Have_Key_press         

	clr		R_Key_Hold   ;not key press clear the key hold 
	clr		R_key_value
	clr		R_hold_time_setR
	clr		flag_on_ring
	ret				     ;not key press exit key scan

L_Have_Key_press:
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce
	call	F_delay     ;debounce

	mov		a,pa
	nop
	and		a,01fh
	xor		a,R_Temp1
	sz		acc		     ;have key press?
	jmp		L_new_old_value_not_equal
	jmp		L_debounce_ok         
L_new_old_value_not_equal:
;	clr		R_Key_Hold   ;not key press clear the key hold 
	clr		R_key_value
	ret				     ;not key press exit key scan
L_debounce_ok:

	mov		a,00001110b	
	mov		pe,a	    ;portD bit0 scan 1line output '0'
	
	call	nop4t       ;wait I/O stable
	call	nop4t       ;wait I/O stable
	mov		a,pa
;	nop
	and		a,1fh
	mov		R_Temp1,a
	xor		a,1fH
	sz		acc
	jmp		L_1Line_Key_Press
;//////////////////////

	mov		a,00001101b
	mov		pe,a	      ;portD bit1 scan 2line output '0'
	call	nop4t       ;wait I/O stable
	call	nop4t       ;wait I/O stable
	mov		a,pa
;	nop
	and		a,1fh
	mov		R_Temp1,a
	xor		a,1fH
	sz		acc
	jmp		L_2Line_Key_Press
;//////////////////////
	mov		a,00001011b
	mov		pe,a	     ;portD bit2 scan 3line output '0'
	call	nop4t       ;wait I/O stable
	call	nop4t       ;wait I/O stable
	mov		a,pa
;	nop
	nop
	and		a,1fH
	mov		R_Temp1,a
	xor		a,1fH
	sz		acc
	jmp		L_3Line_Key_Press
;//////////////////////
	mov		a,00000111b
	mov		pe,a	     ;portD bit3 scan 4line output '0'
	call	nop4t       ;wait I/O stable
	call	nop4t       ;wait I/O stable

	mov		a,pa
;	nop
	and		a,1fh
	mov		R_Temp1,a
	xor		a,1fH
	sz		acc
	jmp		L_4Line_Key_Press

	ret                ;complete scan 4line not key press exit

;////////////////////////
L_1Line_Key_Press:

	call	F_test_bit_com

	jmp	L_code0
;_________________________________________________________
L_2Line_Key_Press:

	call	F_test_bit_com

	jmp	L_code1
;_________________________________________________________
L_3Line_Key_Press:

	call	F_test_bit_com

	jmp	L_code2
;_________________________________________________________
L_4Line_Key_Press:

	call	F_test_bit_com

	jmp	L_code3
;_________________________________________________________

;;//////////////////
L_code0:
	mov	a,1
	add	a,R_H
	jmp	L_Read_Table
L_code1:
	mov	a,2
	add	a,R_H
	jmp	L_Read_Table
L_code2:
	mov	a,3
	add	a,R_H
	jmp	L_Read_Table
L_code3:
	mov	a,4
	add	a,R_H
;	jmp	L_Read_Table
;///////////
L_Read_Table:
	mov		tblp,a
	tabrdc	R_Key_Value
	sz		R_Key_Hold
	jmp		L_key_Hold_invalid
	mov		a,R_Key_Value
	mov		R_Key_Hold,a
	;///  debug add   12/14 
	mov	a,37
	xor	a,R_key_value
	sz	acc
	ret

	sz	pa.6
	jmp	L_is_hold_fuck
	;// is Memory
	mov	a,28
	mov	R_key_value,a	
	ret	
L_is_hold_fuck:	
	mov	a,37
	mov	R_key_value,a	
	;///  debug add   12/14 
	
	ret
L_key_Hold_invalid:
	clr		R_Key_Value

	mov		a,3
	sub		a,R_hold_time_setR  ;R_dial_code_buffer
	snz		c
	jmp		L_hold_large4               		
	;///  dial count <= 4	
	ret
L_hold_large4:
	clr	R_hold_time_setR
	
	mov		a,R_key_hold
	xor		a,D_Vup
	sz		acc
	jmp		L_test_Vdown
	clr		flag_off_ring

	sz		flag_phone_use
	ret
	sz		flag_on_ring
	ret
	MOV		A,D_Vup
	MOV		R_key_value,A
	CLR		R_KEY_hold
	set		flag_on_ring
	ret
L_test_Vdown:	
	mov		a,R_key_hold
	xor		a,D_Vdown
	sz		acc
	ret
	set		flag_off_ring
    clr		PFDC.4        ;disable PFD output
	ret
;----------------------------------------------------------------
F_delay:                           ;delay 
              mov   a,0ffh         
              mov   R_Debounce,a    
d1:
              sdz     R_Debounce
              jmp     d1

			  inc	  R_Debounce      ;0ffh --> R_Debounce
d2:
              sdz     R_Debounce
              jmp     d2
	          ret
;----------------------------------------------------------------
;		Function:  dial code 1,2,3,4,5,6,7,8,9,*,0,# 
;		parameter: dial code in --> R_key_value 
;----------------------------------------------------------------
F_Dial_code:
	mov		a,12
	sub		a,R_key_value
	snz		c
	ret                  ;not dial code number exit
	;/// <=12

	mov		a,R_Key_Value
	sz		acc
	jmp		L_dial_dial     ;Aug/7 debug add
	ret
L_dial_dial:
 	mov		R_Dial_Code,a
	dec		R_Dial_Code		
	call	F_Start_Dial_up
	ret
;;;-------------------------------------------------------
F_dial_pause:  

	set		flag_dial_pause
	set		flag_dial_pause1        ;use real time count
	clr		flag_dial_pause2        ;use 5ms count unit
	snz		flag_first_dial    ;;;;
	set		flag_first_pause        ;10/17 night
	set		flag_pause_between      ;pause between dial code
	mov		a,R_dial_code_buffer
	mov		R_dial_count_p,a         ;back up the code number
	clr			[16h].7	        ;10/12

	call	F_turn_on_real_time

	mov		a,R_pause_time
	swap	acc
	and		a,0fh
	mov		R_Hold_time,a
	                 	      ;use real time count !!!
;	clr		R_key_value      ;24/24
	ret	
;-----------------------------------------------------------
F_delay_500ms:       ;wait stable 
;                  mov             a,100                    ;0.1s
;                  mov             R_Time_count_L,a
;                  clr             R_Time_count_h
;       	          set		  Flag_counting	
;	          call	          F_turn_on_time1
;F_wait_time_500_1:
;	          sz 		  Flag_counting	
;	          jmp		  F_wait_time_500_1
;	          ret
;
;-----------------------------------------------------------
F_delay_200ms:       ;wait stable 
                  mov             a,100                    ;0.1s
                  mov             R_Time_count_L,a
                  clr             R_Time_count_h
       	          set		  Flag_counting	
	          call	          F_turn_on_time1
F_wait_time_200_1:
	          sz 		  Flag_counting	
	          jmp		  F_wait_time_200_1
	          ret

;------------------------------------------------------------------
F_Real_time_INT:
		mov		R_TempA,a        ;save acc
		mov		a,status 
		mov		R_status,a       ;save status falg

		sz		R_ring_ajust
		dec		R_ring_ajust     ;12/5 debug add
		  
		sz		R_ring_timea
		dec		R_ring_timea

		sz		R_Hold_time_set
		dec		R_Hold_time_set

		inc	    R_Hold_time_setR

		sz		R_Hold_time      ;count hold time
		dec		R_Hold_time

		sz		flag_onhook_T
		inc		R_onhook_T

		
		snz		flag_endring_T
		jmp		L_not_inc_endringcount
		inc		R_endring_T
		sz		R_endring_T
		jmp		L_not_set_255flag
		set		flag_endringadd_T
L_not_set_255flag:
L_not_inc_endringcount:
		mov		a,R_status
		mov		status,a         ;back up status flag
		mov		a,R_TempA        ;back up acc
		reti
;------------------------------------------------------------------

;;------------------------------------------------
		org		600h            ;DTMF code

		dc		00010001b       ; '1'
		dc		00010010b       ; '2'		
		dc		00010100b       ; '3'		
		dc		00100001b       ; '4'		
		dc		00100010b       ; '5'		
		dc		00100100b       ; '6'		
		dc		01000001b       ; '7'		
		dc		01000010b       ; '8'		
		dc		01000100b       ; '9'		
		dc		10000001b       ; '*'		
		dc		10000010b       ; '0'		
		dc		10000100b       ; '#'		
;----------------------------------------------------------------
;       Function :  Start Dial up
;       input    :  Dial code --> R_Dial_Code
;       output   :  DTMF pin output corresponding DTMF tone
;----------------------------------------------------------------
F_Start_Dial_up:

		clr		[16h].7           ;XMute pin =0 
		mov		a,R_Dial_Code
		mov		tblp,a
		tabrdc	DTMFD	
		mov		a,00000100b
		mov		DTMFC,a			
		
	mov		a,14  ;25     ;19                ;dial 100ms
	mov		R_Time_count_L,a
	clr		R_Time_count_H
	set		Flag_counting	
	call	F_turn_on_time1
	ret

;----------------------------------------------------------------
F_Start_Dial_up_R:

		clr		[16h].7           ;XMute pin =0 
		mov		a,R_Dial_Code
		mov		tblp,a
		tabrdc	DTMFD	
		mov		a,00000100b
		mov		DTMFC,a			
		
    	ret


;----------------------------------------------------------------
;       Function :  stop Dial code
;----------------------------------------------------------------
F_Stop_Dial:
		sz		R_Key_Hold        ;test key
		ret                       ;key hold not stop dial 
	sz		Flag_counting
	ret
	clr		flag_dialing          

	snz		flag_pause_between    ;10/12
	
		set		[16h].7           ;xmute pin floating !!!

		set		D_PWDN            ;count end stop dial
		ret	

;----------------------------------------------------------------
F_turn_on_time1:               ;5ms     /1ms interrupt
	mov		a,5bh ;5ch              ;0deh     
	mov		tmr1L,a    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久日韩粉嫩一区二区三区| 亚洲日本护士毛茸茸| 久久精品人人做人人爽97| 亚洲色图一区二区三区| 国内成人免费视频| 欧美日韩免费不卡视频一区二区三区| 久久久久久久久99精品| 日日骚欧美日韩| 91蝌蚪国产九色| 欧美韩日一区二区三区| 免费高清视频精品| 欧美日韩精品三区| 亚洲夂夂婷婷色拍ww47| av午夜精品一区二区三区| 久久久久久久久久久黄色| 秋霞av亚洲一区二区三| 欧美日韩午夜在线视频| 亚洲一级二级在线| 91电影在线观看| 综合av第一页| av在线不卡免费看| 国产日韩v精品一区二区| 精品中文字幕一区二区小辣椒| 欧美性videosxxxxx| 亚洲一区免费观看| 色哟哟国产精品| 亚洲欧洲综合另类| 91蝌蚪国产九色| 亚洲综合在线电影| 欧美性猛交一区二区三区精品| 一区二区三区在线免费观看| 91麻豆国产福利在线观看| 亚洲猫色日本管| 色婷婷狠狠综合| 亚洲香肠在线观看| 欧美日韩亚洲不卡| 青青草伊人久久| 亚洲精品在线电影| 国产精品亚洲一区二区三区在线| 久久综合久久久久88| 国产乱人伦偷精品视频免下载| 久久久一区二区| 成人免费视频一区| 亚洲桃色在线一区| 精品婷婷伊人一区三区三| 三级欧美韩日大片在线看| 51精品国自产在线| 韩国av一区二区| 国产精品国产三级国产aⅴ原创| 波波电影院一区二区三区| 一区二区欧美国产| 日韩午夜中文字幕| 丰满少妇久久久久久久| 亚洲精品视频在线看| 91精品国产综合久久福利软件| 久久99日本精品| 国产精品美女久久久久高潮| 91在线观看下载| 免费人成在线不卡| 中文字幕精品一区| 欧美日韩国产精选| 国产一区在线观看视频| 国产精品高潮久久久久无| 欧美视频一区在线| 国产精品一线二线三线| 亚洲免费观看在线观看| 日韩三级精品电影久久久| 国产999精品久久久久久| 夜夜爽夜夜爽精品视频| 久久众筹精品私拍模特| 91亚洲男人天堂| 久久不见久久见免费视频1| 成人免费在线播放视频| 日韩欧美在线123| 99久久精品99国产精品 | 国产视频亚洲色图| 91国偷自产一区二区开放时间 | 国产亚洲一本大道中文在线| 91麻豆精品在线观看| 蜜桃免费网站一区二区三区| 亚洲欧洲一区二区三区| 精品嫩草影院久久| 欧美亚洲一区二区三区四区| 国产伦理精品不卡| 日韩av电影免费观看高清完整版| 国产精品国产自产拍高清av| 日韩欧美国产1| 欧美日韩色一区| 91小视频免费观看| 国产91精品欧美| 麻豆freexxxx性91精品| 亚洲成人免费观看| 亚洲精品国产a久久久久久| 久久久久久免费毛片精品| 欧美一级高清片| 欧美日韩激情一区| 在线精品亚洲一区二区不卡| 波多野结衣精品在线| 国产成人综合网站| 精品在线你懂的| 免费成人结看片| 日本vs亚洲vs韩国一区三区二区| 亚洲在线视频一区| 亚洲欧美日韩小说| 亚洲理论在线观看| 国产精品不卡视频| 中文字幕亚洲电影| 国产精品国产三级国产专播品爱网| 精品福利在线导航| 欧美精品一区二区三区很污很色的 | 男女激情视频一区| 天堂蜜桃一区二区三区| 亚洲va国产va欧美va观看| 亚洲国产一区二区a毛片| 一区二区视频在线看| 日韩毛片视频在线看| 综合久久国产九一剧情麻豆| 国产精品国产a| 亚洲男人的天堂网| 亚洲一区在线观看网站| 亚洲成av人片一区二区梦乃| 午夜精品123| 久久精品99国产精品| 激情综合色综合久久| 国产激情视频一区二区三区欧美 | 久久一区二区视频| 国产女同性恋一区二区| 国产精品毛片无遮挡高清| 亚洲少妇最新在线视频| 亚洲第一会所有码转帖| 日本午夜一区二区| 国产精品正在播放| 成人av免费在线观看| 色婷婷久久久亚洲一区二区三区| 在线观看不卡一区| 欧美不卡视频一区| 欧美激情一区二区三区不卡 | 色欧美日韩亚洲| 69精品人人人人| 久久你懂得1024| 亚洲精品写真福利| 免费人成在线不卡| 成人黄动漫网站免费app| 91成人免费电影| 精品免费日韩av| 亚洲同性gay激情无套| 日韩电影网1区2区| 高清在线不卡av| 欧美精品1区2区3区| 久久精品日产第一区二区三区高清版 | 亚洲男人的天堂在线aⅴ视频| 亚洲成人免费av| 岛国av在线一区| 4438成人网| 亚洲人成精品久久久久| 美女一区二区三区| 日本韩国欧美在线| 久久亚洲一级片| 亚洲h精品动漫在线观看| 国产99久久久国产精品潘金| 欧美三级韩国三级日本一级| 久久精品一区二区三区av| 一二三四社区欧美黄| 欧美日韩视频在线一区二区| 久久久久久日产精品| 亚洲成精国产精品女| 国产二区国产一区在线观看| 欧美日韩性生活| 亚洲欧美综合色| 国产在线视频精品一区| 欧美日高清视频| 亚洲色欲色欲www| 国产98色在线|日韩| 日韩免费性生活视频播放| 亚洲国产精品久久久男人的天堂| 正在播放亚洲一区| 一区二区高清视频在线观看| 国产99精品视频| 欧美精品一区二区在线观看| 青青国产91久久久久久| 欧美午夜一区二区三区免费大片| 国产精品色呦呦| 国产中文字幕一区| 日韩美女视频在线| 日韩在线a电影| 5月丁香婷婷综合| 天天色 色综合| 在线电影欧美成精品| 亚洲永久精品大片| 欧美在线综合视频| 亚洲精品日韩一| 日本韩国欧美国产| 亚洲男人的天堂一区二区| av在线不卡电影| 亚洲蜜臀av乱码久久精品蜜桃| 粉嫩av一区二区三区在线播放| 久久精品一区蜜桃臀影院| 国产大片一区二区| 国产精品青草综合久久久久99| 成人一区二区三区|