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

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

?? main.asm

?? Holtek ht82a832r USB-PHONE DEMO 源碼 ht82a832r 是Holtek開發的USB-PHONE 的OTP SOC芯片,信價比很高
?? ASM
?? 第 1 頁 / 共 2 頁
字號:

		set 		UCC.@UCC_USBCKEN
		nop
		set		USC.@USC_V33C		;//pc 開始送 command 過來

			
		if	AUDIO_8K
			set		MODE_CTRL.3
		endif
		
	
	;-----------------------------------------------------------
	;初始化按鍵處理指令
	;-----------------------------------------------------------
		clr		CMD_SCount
		mov		A,OFFSET CMD_Buf
		mov		CMD_SPtr,A

		clr		Key_Count
		mov		A,OFFSET Key_Buf
		mov		Key_ptr,A
		
		clr 		wdt		
		RET
		
;***************************************************************
;		Timer_0_ISR
;		1.Timer time = 21.2 ms
;		2.Do this procedure is 3.6ms
;***************************************************************
Timer_0_ISR:	
		clr		TMR0C.4
		MOV		isr_tmr0_acc,A		;save ACC
		MOV		A,STATUS
		MOV		isr_tmr0_status,A	;save status
		MOV		A,MP1
		MOV		isr_tmr0_mp1,A		;save mp1
		MOV		A,MP0
		MOV		isr_tmr0_mp0,A		;save mp0
		MOV		A,TBLP
		MOV		isr_tmr0_tblp,A		;save TBLP
		
Timer_0_My_Function:
	;-----------------------------------------------------------
	; Here to add your another code !!
	;-----------------------------------------------------------
		NOP		
		clr wdt
		
Timer_0_ISR_END:		
		MOV		A,isr_tmr0_tblp		;restore TBLP
		MOV		TBLP,A
		MOV		A,isr_tmr0_mp0		;restore MP0
		MOV		MP0,A
		MOV		A,isr_tmr0_mp1		;restore MP1
		MOV		MP1,A
		MOV		A,isr_tmr0_status	;restore STATUS
		MOV		STATUS,A
		MOV		A,isr_tmr0_acc		;restore ACC
		SET		TMR0C.4			;start timer0

		RETI

;***************************************************************
;		Timer_1_ISR
;		1.Timer time = 21.2 ms
;		2.Do this procedure is 3.6ms
;***************************************************************
Timer_1_ISR:
		CLR		TMR1C.4


		MOV		isr_tmr1_acc,A		;save ACC
		MOV		A,STATUS
		MOV		isr_tmr1_status,A	;save status
		MOV		A,MP1
		MOV		isr_tmr1_mp1,A		;save mp1
		MOV		A,MP0
		MOV		isr_tmr1_mp0,A		;save mp0
		MOV		A,TBLP
		MOV		isr_tmr1_tblp,A		;save TBLP
		
		clr wdt	
		SET		TMR1_KEY_FG
		;IF	UseMediaKey
		;call		Key_Debounced
		;ENDIF
		call		Run_Volume_Step

		call		KeyScanProcess		;鍵盤按鍵掃描
		

		MOV		A,isr_tmr1_tblp		;restore TBLP
		MOV		TBLP,A
		MOV		A,isr_tmr1_mp0		;restore MP0
		MOV		MP0,A
		MOV		A,isr_tmr1_mp1		;restore MP1
		MOV		MP1,A
		MOV		A,isr_tmr1_status	;restore STATUS
		MOV		STATUS,A
		MOV		A,isr_tmr1_acc		;restore ACC

Timer_1_ISR_End:
		SET		TMR1C.4
		RETI

;***************************************************************
;		USB_ISR : USB Interrupt Routine
;		1.Back up every status register
;		2.check which endpoint is interrupt
;***************************************************************
USB_ISR:
		CLR		INTC0.@INTC0_EEI	;disable USB interrupt
		;modify 2006-09-11
		;SET		INTC0.@INTC0_EMI

		MOV		isr_usb_acc,A		;save ACC
		MOV		A,STATUS
		MOV		isr_usb_status,A	;save status
		MOV		A,MP1
		MOV		isr_usb_mp1,A		;save mp1
		MOV		A,MP0
		MOV		isr_usb_mp0,A		;save mp0
		MOV		A,TBLP
		MOV		isr_usb_tblp,A		;save TBLP

		
		clr wdt
		;;Check Which FIFO is interrupt
		JMP		Check_Access_FIFO		



USB_ISR_END:
		MOV		A,isr_usb_tblp		;restore TBLP
		MOV		TBLP,A
		MOV		A,isr_usb_mp0		;restore MP0
		MOV		MP0,A
		MOV		A,isr_usb_mp1		;restore MP1
		MOV		MP1,A
		MOV		A,isr_usb_status	;restore STATUS
		MOV		STATUS,A
		MOV		A,isr_usb_acc		;restore ACC

		;modify 2006-08-18
		;CLR		INTC0.@INTC0_EMI
		SET		INTC0.@INTC0_EEI


		RETI


;***************************************************************
;		USB_EPX_ISR
;		之前使用 USR@EP0IF EQU	[01BH].0 判別會偵測不到
;		更改成   USB_STATUS_CONTROL.@EP0IF
;***************************************************************
Check_Access_FIFO:
		clr wdt	
		SZ		USR.@USR_EP0F
		JMP		USB_EP0_ISR
		SZ		USR.@USR_EP1F
		JMP		USB_EP1_ISR
		SZ		USR.@USR_EP2F
		JMP		USB_EP2_ISR
		SZ		USR.@USR_EP3F
		JMP		USB_EP3_ISR
		SZ		USR.@USR_EP4F
		JMP		USB_EP4_ISR

		JMP		USB_ISR_END

;-----------------------------------------------------
;EPNPOINT 0
;-----------------------------------------------------
USB_EP0_ISR:
		;modify 2006-07-27
		;CLR		USR.@USR_EP0F	;Fix Bus Enumeration Stress

;;case1
		SZ		MISC.@MISC_SCMD			;check setup token      
		JMP		USB_EP0_SETUP_TOKEN                                     
                
		SZ		MISC.@MISC_LEN0			;check out ack token    
		JMP		USB_EP0_OUT_ACK_TOKEN                                   

		CALL		FIFO0_RD_CHECK                                          
		SZ		bFlag_FIFO_Ready                                        
		JMP		USB_EP0_OUT_TOKEN 
		;clr		MISC.@MISC_REQ

		CALL		FIFO0_WR_CHECK                                          
		SZ		bFlag_FIFO_Ready                                        
		JMP		USB_EP0_IN_TOKEN		;else is in token       
		;clr		MISC.@MISC_REQ

		;modify 2006-08-28
		CLR		USR.@USR_EP0F	;Fix OHCI Volume

  		JMP		USB_EP0_ISR_END   


;;case2
;;		SZ		MISC.@MISC_SCMD			;check setup token      
;;		JMP		USB_EP0_SETUP_TOKEN                                     
;;                
;;		SZ		MISC.@MISC_LEN0			;check out ack token    
;;		JMP		USB_EP0_OUT_ACK_TOKEN                                   
;;
;;		CALL		FIFO0_RD_CHECK                                          
;;		SZ		bFlag_FIFO_Ready                                        
;;		JMP		USB_EP0_OUT_TOKEN 
;;		;clr		MISC.@MISC_REQ
;;
;;		CALL		FIFO0_WR_CHECK                                          
;;		SZ		bFlag_FIFO_Ready                                        
;;		JMP		USB_EP0_IN_TOKEN		;else is in token       
;;		;clr		MISC.@MISC_REQ
;;
;;
;;  		JMP		USB_EP0_ISR_END   


;;case3
;;		call		FIFO0_RD_CHECK
;;		sz		bFlag_FIFO_Ready
;;		jmp		Have_Data_Out
;;		
;;		call		FIFO0_WR_CHECK
;;		sz		bFlag_FIFO_Ready
;;		jmp		USB_EP0_IN_TOKEN
;;		
;;		jmp		USB_EP0_ISR_END
;;
;;Have_Data_Out:
;;		sz		MISC.@MISC_SCMD
;;		jmp		USB_EP0_SETUP_TOKEN
;;		sz		MISC.@MISC_LEN0
;;		jmp		USB_EP0_OUT_ACK_TOKEN
;;		
;;		jmp		USB_EP0_OUT_TOKEN





USB_EP0_SETUP_TOKEN:					;PARSE SETUP TOKEN
		clr wdt
		CALL		StageOne
		;Clear OutToken 的剩余中斷
		CLR		bFlag_OutTokenRemainInt
		;保存指定的大小
		kmov		Data_Length,FIFO_wLengthL
		JMP		USB_EP0_ISR_END

USB_EP0_IN_TOKEN:
		clr wdt
		;modify 2006-08-28
		CLR		USR.@USR_EP0F	;Fix OHCI Volume
		CALL		control_read
		JMP		USB_EP0_ISR_END

USB_EP0_OUT_ACK_TOKEN:
		;modify 2006-08-28
		CLR		USR.@USR_EP0F	;Fix OHCI Volume
		clr wdt
		clr		MISC.@MISC_LEN0
;;		call		Delay_3us
		JMP		USB_EP0_ISR_END
		


USB_EP0_OUT_TOKEN:
		;modify 2006-08-28
		CLR		USR.@USR_EP0F	;Fix OHCI Volume
		clr wdt
		clr		acc
		xor		a,nCmdIndex1
		sz		z
		jmp		USB_EP0_ISR_END

USB_EP0_OUT_TOKEN_Loop:
		clr wdt
		CALL		Check_Real_Cmd
		sz		bFlag_Real_Cmd
		jmp		USB_EP0_OUT_TOKEN_End

		clr wdt	
		CALL		FIFO0_RD_CHECK
		SNZ		bFlag_FIFO_Ready
		JMP		USB_EP0_OUT_TOKEN_Loop

		SZ		bFlag_OutTokenRemainInt
		JMP		USB_EP0_OUT_TOKEN_ReadRemain

		MOV		A,OFFSET FIFO_TYPE
		MOV		Data_RStart,A
		CLR		DATA_RCount
		SET		bFlag_OutTokenRemainInt		;首次終端中,設定標記下次為剩余數據的中斷
		
		
		CALL		READ_FIFO0_EX

		CALL		Send_Hand_Shake
		
		JMP		USB_EP0_OUT_TOKEN_ReadDoneCheck
USB_EP0_OUT_TOKEN_ReadRemain:
		CALL		READ_FIFO0_EX

		CALL		Send_Hand_Shake

USB_EP0_OUT_TOKEN_ReadDoneCheck:
								;根據Setup階段的數據包確定Data階段的數據大小檢查是否已經完成
		MOV		A,Data_Length
		XOR		A,Data_RCount
		SNZ		Z
		JMP		USB_EP0_OUT_TOKEN_End
		
USB_EP0_OUT_TOKEN_ReadDone:	;數據接收完畢
		NOP
		;為了與原先的處理流程兼容將Data_Buf的數據保存到FIFO中,

		MOV		A,OFFSET Data_Buf
		MOV		MP0,A
		MOV		A,OFFSET FIFO_Type
		MOV		MP1,A

		MOV		A,8
		MOV		Loop_Counter,A

USB_EP0_OUT_TOKEN_COPYFIFO:
		MOV		A,R0
		MOV		R1,A

		INC		MP0
		INC		MP1

		DEC		Loop_Counter
		SNZ		Z
		JMP	USB_EP0_OUT_TOKEN_COPYFIFO
		

		;decode command
		;//parse Cmd , 21H = SetReport Out Data
		mov		a,21H
		xor		a,nCmdIndex1
		sz		z
		jmp		ProcessOutData

		;//parse Cmd , 18H = Speaker Mute Control
		mov		a,18H
		xor		a,nCmdIndex1
		sz		z
		jmp		Implement_Speaker_Mute

		;//parse Cmd , 19H = Mic Mute Control
		mov		a,19H
		xor		a,nCmdIndex1
		sz		z
		jmp		Implement_Mic_Mute


		;//parse Cmd , 28H = Speaker Volume Control
		mov		a,28H
		xor		a,nCmdIndex1
		sz		z
		jmp		Implement_Speaker_Volume

		;//parse Cmd , 29H = Mic Volume Control
		mov		a,29H
		xor		a,nCmdIndex1
		sz		z
		jmp		Implement_Mic_Volume



		;//unknow command
		jmp		USB_EP0_OUT_TOKEN_End
		
USB_EP0_OUT_TOKEN_End:
		clr		nCmdIndex1
		JMP		USB_EP0_ISR_END


Implement_Speaker_Mute:
		clr wdt
		sz		FIFO_out1.0
		clr		USVC.7			;mute
		snz		FIFO_out1.0
		set		USVC.7			;unmute

		sz		FIFO_out1.0
		set		bFlag_Audio_Mute	;mute
		snz		FIFO_out1.0
		clr		bFlag_Audio_Mute	;unmute

		snz		bFlag_Audio_Mute
		jmp		Implement_Speaker_Mute_1
		
		mov		a,Min_Volume
		mov		USVC,a
		
		clr		USVC.7
		
		
Implement_Speaker_Mute_1:
		jmp		USB_EP0_OUT_TOKEN_End


Implement_Mic_Mute:
		clr wdt
		sz		FIFO_OUT1.0
		clr		PGA_CTRL.7	;mute
		snz		FIFO_OUT1.0
		set		PGA_CTRL.7	;unmute
		
		sz		FIFO_out1.0
		set		bFlag_Mic_Mute	;mute
		snz		FIFO_out1.0
		clr		bFlag_Mic_Mute	;unmute
		
		
		jmp		USB_EP0_OUT_TOKEN_End
		

		

Implement_Speaker_Volume:
		clr wdt
		kmov		VolumeH_Save,FIFO_out1
		kmov		VolumeL_Save,FIFO_out2
Implement_Speaker_Volume_End:
		jmp		USB_EP0_OUT_TOKEN_End		

Implement_Mic_Volume:
		clr wdt
		mov		a,7FH
		xor		a,FIFO_OUT2
		sz		z
		jmp		Implement_Mic_Volume_Set_Max
				
		mov		a,80H
		xor		a,FIFO_OUT2
		sz		z
		jmp		Implement_Mic_Volume_Set_Min
	
		kmov		FIFO_TEMP,FIFO_OUT2
		jmp		Implement_Mic_Volume_1
		
Implement_Mic_Volume_Set_Max:		
		clr wdt
		kmov		FIFO_TEMP,MIC_Max_Volume
		jmp		Implement_Mic_Volume_1
Implement_Mic_Volume_Set_Min:		
		clr wdt
		kmov		FIFO_TEMP,MIC_Min_Volume
		jmp		Implement_Mic_Volume_1
Implement_Mic_Volume_1:
		clr wdt
		mov		a,80H
		and		a,PGA_CTRL
		
		or		a,FIFO_TEMP
		mov		PGA_CTRL,a
Implement_Mic_Volume_End:
		jmp		USB_EP0_OUT_TOKEN_END

USB_EP0_ISR_END:
		;modify 2006-07-27
		;CLR		USR.@USR_EP0F		;Fix Bus Enumeration Stress
		JMP		USB_ISR_END
;-----------------------------------------------------
;EPNPOINT 1 Interrupt
;-----------------------------------------------------
USB_EP1_ISR:
		;check the data is in fifo ?
		;CALL		FIFO1_RD_CHECK
		;SNZ		bFlag_FIFO_Ready
		;JMP		USB_EP1_ISR_END
		;CALL		Read_FIFO1

		;;CALL		FIFO1_WR_CHECK
		;;SNZ		bFlag_FIFO_Ready
		;;JMP		USB_EP1_ISR_END
		;;MOV		A,00H
		;;MOV		FIFO_OUT1,A
		;;MOV		A,01H
		;;MOV		FIFO_SendLen,A
		;;CALL		WRITE_FIFO1	

		;JMP		USB_EP1_ISR_END
	
		;準備寫入數據
		;檢查是否需要被寫入的數據
		SZ		CMD_SCount
		JMP		USB_EP1_ISR_Write
		JMP		USB_EP1_ISR_END
USB_EP1_ISR_Write:
		CALL		FIFO1_WR_CHECK
		SNZ		bFlag_FIFO_Ready
		JMP		USB_EP1_ISR_END

		;將CMD_Buf的數據發送出去
;----------------------------------------------------------------------
; EP1_InData:
;  EP1在收到IN Token后調用該函數,返回CMD_SPtr, CMD_SCount 指定的數據
;  若數據
;
;----------------------------------------------------------------------		
EP1_InData:
		clr wdt	
EP1_InData_stage:
		clr wdt	
		MOV		A,0H
		MOV		Loop_Counter,A			;本次發送的字節數
		MOV		FIFO_SendLen,A

		;
		;1)將數據保存到FIFO_OUT
		;2)再將數據寫入到FIFO
		;
		

		MOV		A,CMD_SCount			;檢查是否仍有待處理數據
		XOR		A,00H
		SZ		Z
		JMP		USB_EP1_ISR_END			;A=00H

		MOV		A,CMD_SPtr
		MOV		MP0,A
								;準備裝載數據到內存
EP1_InData_dma_load_loop:
		SET		MISC.@MISC_REQ
EP1_Write_FIFO_Loop:
		
		clr wdt	
		MOV		A,CMD_SCount
		XOR		A,00H
		SZ		Z
		JMP		EP1_Write_FIFO_End

		MOV		A,USB_FIFO1
		MOV		MP1,A 

		MOV		A,R0
		MOV		R1,A
		DEC		CMD_SCount
		
		INC		CMD_SPtr

		MOV		A,CMD_SCount
		XOR		A,00H
		SZ		Z
		JMP		EP1_Write_FIFO_End		;FIFO_SendLen=0 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影天堂一区二区在线| 亚洲国产日日夜夜| 欧美日韩一区二区欧美激情| 成人精品视频网站| 91丨九色丨蝌蚪丨老版| 99久久777色| 成人免费视频免费观看| k8久久久一区二区三区| 9久草视频在线视频精品| 99国产精品国产精品久久| 不卡欧美aaaaa| 色综合久久久久综合体| 欧美日韩国产在线观看| 日韩午夜三级在线| 久久在线观看免费| 亚洲欧美一区二区在线观看| 亚洲一区二区综合| 狠狠色综合日日| 欧美天天综合网| 久久亚洲一区二区三区四区| 国产精品色呦呦| 精品中文av资源站在线观看| 99久久婷婷国产综合精品 | 久久一区二区视频| 亚洲免费av高清| 成人精品在线视频观看| 欧美日本在线观看| 亚洲桃色在线一区| 成熟亚洲日本毛茸茸凸凹| 欧美性一区二区| 国产日韩精品一区二区三区在线| 五月综合激情网| 欧美亚洲另类激情小说| 一区在线观看免费| 高清国产午夜精品久久久久久| 91 com成人网| 免费高清视频精品| 精品精品国产高清a毛片牛牛| 日韩激情一区二区| 欧美日高清视频| 天堂资源在线中文精品| 欧美高清精品3d| 日本亚洲最大的色成网站www| 色婷婷久久99综合精品jk白丝| 国产亲近乱来精品视频| 成人av网站免费观看| 欧美激情一区二区三区| 国产成人福利片| 国产免费成人在线视频| 成人av先锋影音| 亚洲国产人成综合网站| 日韩欧美视频一区| 国产一区二区三区免费| 国产三级精品视频| 91国偷自产一区二区三区观看 | 久久99精品国产麻豆婷婷洗澡| 在线播放/欧美激情| 国产呦精品一区二区三区网站| 国产清纯白嫩初高生在线观看91| 99久久伊人精品| 日韩高清电影一区| 国产精品麻豆久久久| 欧美性猛片aaaaaaa做受| 极品美女销魂一区二区三区| 国产精品久久久久久久久免费相片 | 久久综合色婷婷| 99久久99久久久精品齐齐| 久色婷婷小香蕉久久| 亚洲最大成人网4388xx| 久久免费视频色| 欧美电影在线免费观看| 97超碰欧美中文字幕| 国产综合一区二区| 五月婷婷综合在线| 国产精品视频线看| 久久这里只有精品首页| 欧美大黄免费观看| 欧美日韩电影在线| 97久久超碰国产精品电影| 韩国在线一区二区| 激情欧美一区二区三区在线观看| 天天综合网天天综合色| 一区二区三区日韩精品视频| 亚洲免费在线电影| 亚洲国产综合在线| 午夜精品免费在线观看| 亚洲高清免费视频| 婷婷亚洲久悠悠色悠在线播放| 亚洲色图制服诱惑 | 制服丝袜av成人在线看| 欧美三级视频在线观看| 欧美日韩在线一区二区| 日韩一区二区三区四区| 精品国产99国产精品| 欧美国产日韩在线观看| 国产精品高潮呻吟久久| 亚洲一二三区在线观看| 免费日韩伦理电影| 91在线视频官网| 欧美日韩中文精品| 欧美xxxxxxxx| 国产精品色哟哟| 午夜精品久久久久久久久| 理论电影国产精品| 色综合久久久久久久| 色美美综合视频| 久久亚洲精精品中文字幕早川悠里| 国产亚洲精品福利| 日韩中文字幕区一区有砖一区| 精品一区二区免费视频| 色婷婷av一区二区三区软件| 精品福利一区二区三区免费视频| 一区二区三区在线免费| 国产福利一区二区三区| 91精品国产综合久久久久久久| 国产精品不卡在线| 国产91精品在线观看| 91精品国产综合久久精品麻豆 | 欧美日韩综合在线| 国产精品国产a| 国产成人免费视频网站 | 强制捆绑调教一区二区| 欧美优质美女网站| **欧美大码日韩| av高清不卡在线| 国产精品麻豆一区二区| 国产激情一区二区三区四区 | 精品国产乱码久久久久久图片 | 欧美不卡在线视频| 天堂成人国产精品一区| 91精品国产手机| 日产国产欧美视频一区精品| 欧美一区二区福利视频| 美女久久久精品| 久久免费的精品国产v∧| 国产一区二区免费在线| 国产精品免费av| 欧美日韩精品电影| 美女视频网站久久| 欧美激情一区在线| 91看片淫黄大片一级在线观看| 亚洲综合色区另类av| 91精品国产丝袜白色高跟鞋| 国产精品一区二区果冻传媒| 国产精品美女久久久久aⅴ国产馆| 成人免费毛片app| 亚洲国产一区二区视频| 久久看人人爽人人| 欧美日韩免费视频| 国产麻豆精品95视频| 亚洲免费观看在线观看| 欧美tk丨vk视频| 91精品福利视频| 国产精品自在在线| 日韩高清国产一区在线| 亚洲三级电影网站| 日韩一卡二卡三卡四卡| 一本到不卡免费一区二区| 国产精品一区免费视频| 肉色丝袜一区二区| 亚洲第一福利视频在线| 国产精品国产成人国产三级| 久久免费午夜影院| 26uuu久久天堂性欧美| 欧美日韩一级片在线观看| 在线观看一区不卡| 91小视频在线| 91精品办公室少妇高潮对白| 成人高清免费观看| 国产高清不卡二三区| 国产成人精品网址| 国产成人精品在线看| 成人永久免费视频| www.色综合.com| yourporn久久国产精品| 99久久精品国产观看| 91网站在线播放| 欧美三区在线视频| 91精品免费观看| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩欧美另类在线| 国产精品午夜在线观看| 中文字幕亚洲不卡| 亚洲成人av一区二区| 老司机精品视频线观看86| 国产精品一二一区| 99久久精品免费看国产免费软件| 色欧美日韩亚洲| 亚洲精品在线电影| 亚洲精品国产无套在线观| 日本女优在线视频一区二区| 成人综合婷婷国产精品久久| 色偷偷一区二区三区| 欧美mv日韩mv国产网站app| 国产精品美女久久久久久久网站| 亚洲乱码国产乱码精品精的特点 | 欧美日本一区二区在线观看| 日韩一区二区三| 亚洲综合一二区| 91热门视频在线观看|