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

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

?? main.asm

?? Holtek ht82a832r USB-PHONE DEMO 源碼 ht82a832r 是Holtek開發的USB-PHONE 的OTP SOC芯片,信價比很高
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;*******************************************************************************
;*
;*  (c) Copyright 2005, Holtek Semiconductor Inc.
;* 
;******************************************************************************/
;*******************************************************************************
;MODULE:	main.asm

;INITIAL:	04/10/2005

;AUTHOR:	C351  Ansonku.

;NOTE:	 	HT82A832R Main Function

;VERSION:	0.01
;Function:
;key debounced	N
;oled		N
;volume adjust	Y
;2005/05/13     Update Key Debounce
;2005/05/25	Modify Pop noise
;2005/06/06     Modify Send_Hand_Shake
;2005/06/10	判斷 token 時,假設遇到setup scmd,要在讀取8 bytes清除scmd與len0
;*******************************************************************************

;***************************************************************
;Include File
;const.inc		user defined
;macro.asm		macro function
;***************************************************************
#include		ht82a832r.inc
#include		const.inc
#include		macro.asm
#define			WaitBias	0

;====================================================================
;Variable Defined , DATA 從 40H 開始放
;====================================================================
DATA		.SECTION		AT	40H		'DATA'
;***************************************************************
;		USB ISR Var (中斷時備份用)
;***************************************************************
isr_usb_acc		DB		?
isr_usb_status		DB		?
isr_usb_mp1		DB		?
isr_usb_mp0		DB		?
isr_usb_tblp		DB		?
;***************************************************************
;		Timer0 ISR Var (中斷時備份用)
;***************************************************************
isr_tmr0_acc		DB		?
isr_tmr0_status		DB		?
isr_tmr0_mp1		DB		?
isr_tmr0_mp0		DB		?
isr_tmr0_tblp		DB		?
;***************************************************************
;		Timer1 ISR Var (中斷時備份用)
;***************************************************************
isr_tmr1_acc		DB		?
isr_tmr1_status		DB		?
isr_tmr1_mp1		DB		?
isr_tmr1_mp0		DB		?
isr_tmr1_tblp		DB		?

;***************************************************************
;		Delay 變數
;***************************************************************
Delay_1			DB		?
Delay_2			DB		?
Delay_3			DB		?

;***************************************************************
;USB FIFO Variable
;USB_Interface : to save usb current interface number
;USB_Interface_Alt : to save usb current alternate of interface number
;USB_Configuration : to save USB configuration number
;FIFO_ADDR     : to save USB ADDRESS
;Loop_Counter , Data_Count , Data_Start : control_read variable
;***************************************************************
;For FIFO Access
;modify 2006-09-22
FIFO_SIZE                       db              ?
;------------------------------------------------
FIFO_SendLen			db		?
FIFO_out1			label	byte
FIFO_Type			db		?
FIFO_out2			label	byte
FIFO_Request			db		?
FIFO_out3			label	byte
FIFO_wValueL			db		?
FIFO_out4			label	byte
FIFO_wValueH			db		?
FIFO_out5			label	byte
FIFO_wIndexL			db		?
FIFO_out6			label	byte
FIFO_wIndexH			db		?
FIFO_out7			label	byte
FIFO_wLengthL			db		?
FIFO_out8			label	byte
FIFO_wLengthH			db		?

FIFO_9_16			db	8 DUP(?)
;
;存儲EP0 IN OUT Token的數據階段的數據
;
CMD_Request			label	byte
DATA_Buf			db	32 DUP(?)
;接收緩沖區的接收指針和接收字節數
Data_Length			db		?	;EP0在Setup Token中指定的長度
Data_RCount			db		?
Data_RStart			db		?


USB_Interface			db		?
USB_Interface_Alt		db		?
USB_Configuration		db		?

FIFO_ADDR			db		?


Loop_Counter			db		?
Data_Count			db		?
Data_Start			db		?


;voice control
INC_Counter			db		?
DEC_Counter			db		?


;FIFO
FIFO_TEMP			db		?
bFlag_SetConfiguration_Ready	dbit		
bFlag_SetInterface_Ready	dbit		
bFlag_Real_Cmd			dbit		
bFlag_FIFO_Ready		dbit
bFlag_FIFO_LEN0			dbit
bFlag_RD_HTable			dbit
bFlag_wait_control_out		dbit
bFlag_SET_ADDRESS		dbit
bFlag_SCMD			dbit
bFlag_Enum_Ready		dbit

;
;EP0 中OUT Token 的數據剩余中斷,在Setup Token 中將bFlag_OutTokenRemainInt置0
;在Out Token中若檢查該Bit=0則從接收緩沖區首1字節開始存儲,1則從當前位置開始存儲
bFlag_OutTokenRemainInt		dbit	


;Audio
PortC_data			db	?
bFlag_Audio_Mute		dbit
bFlag_Mic_Mute			dbit
Volume1				db	?
Volume2				db	?
bFlag_Mute_Detect		dbit		
bFlag_INC_Detect		dbit		
bFlag_DEC_Detect		dbit	
Flag_Audio_Control		db	?	; 0 0 muteH muteL incH incL decH decL

VolumeH_Save			db	?
VolumeL_Save			db	?

nCmdIndex1			db	?
nCmdIndex2			db	?
nCmdIndex3			db	?


Key_Process			db	?
Key_CheckIn			db	?
Key_Counter			db	?
Key_Temp			db	?
Key_IncCounter			db	?
Key_DecCounter			db	?
MODE_CTRL_TEMP  		db    	?	
TMR1_KEY_FG			dbit

;---------------
ADC_POR_FG			dbit
;---------------

;
;數據緩沖區
;
;
CMD_Buf				db	16 DUP(?)	;待處理指令
;CMD_RCount			db	?		;接收的待處理指令的字節數
CMD_SCount			db	?		;待發送處理指令的字節數
CMD_SPtr			db	?
Key_Buf				db	32 DUP(?)	;鍵碼緩沖區
Key_ptr				db	?
Key_Count			db	?		;檢測到新的按鍵
;
;按鍵IO讀取的狀態	Key_State00 ,Key_State01  第一列按鍵
Key_State00 			db	?		;當前狀態
Key_State01 			db	?		;前一狀態
;			Key_State10 ,Key_State11  第二列按鍵
Key_State10 			db	?
Key_State11 			db	?
;			Key_State20 ,Key_State21  第三列按鍵
Key_State20 			db	?
Key_State21 			db	?
;			Key_State30 ,Key_State31  第四列按鍵
Key_State30 			db	?
Key_State31 			db	?
;			Media Key 的狀態
Key_MState0			db	?
Key_MState1			db	?


#define 	AUDIO_8K 		1


DA_R_ENB	EQU	MODE_CTRL.1
DA_L_ENB	EQU	MODE_CTRL.0
AD_ENB		EQU	MODE_CTRL.2

extern			control_read_table:NEAR        
extern			device_desc_table:NEAR         
extern			config_desc_table:NEAR         

extern			end_config_desc_table:NEAR  
extern			hid_report_desc_table:NEAR
extern			end_hid_report_desc_table:NEAR

extern			USBStringLanguageDescription:NEAR
extern			USBStringDescription1:NEAR
extern			USBStringDescription2:NEAR

extern			config_desc_length:NEAR
extern			report_desc_length:NEAR
;function
extern			Control_Read:NEAR
extern			FIFO0_RD_CHECK:NEAR
extern			FIFO1_RD_CHECK:NEAR
extern			FIFO2_RD_CHECK:NEAR
extern			FIFO3_RD_CHECK:NEAR
extern			FIFO4_RD_CHECK:NEAR
extern			FIFO5_RD_CHECK:NEAR
extern			FIFO0_WR_CHECK:NEAR
extern			FIFO1_WR_CHECK:NEAR
extern			FIFO2_WR_CHECK:NEAR
extern			FIFO3_WR_CHECK:NEAR
extern			FIFO4_WR_CHECK:NEAR
extern			FIFO5_WR_CHECK:NEAR
extern			Read_FIFO0:NEAR
extern			Read_FIFO1:NEAR
extern			Read_FIFO2:NEAR
extern			Read_FIFO3:NEAR
extern			Read_FIFO4:NEAR
extern			Read_FIFO5:NEAR


extern			Read_FIFO0_EX:NEAR
extern			Read_FIFO1_EX:NEAR
extern			Read_FIFO2_EX:NEAR
extern			Read_FIFO3_EX:NEAR
extern			Read_FIFO4_EX:NEAR
extern			Read_FIFO5_EX:NEAR

extern			Write_FIFO0:NEAR
extern			Write_FIFO1:NEAR
extern			Write_FIFO2:NEAR
extern			Write_FIFO3:NEAR
extern			Write_FIFO4:NEAR
extern			Write_FIFO5:NEAR
extern			Send_Hand_Shake:NEAR
extern			get_descriptor_length:NEAR

extern			SetAddress:NEAR
extern			SetConfiguration:NEAR
extern			SetInterface:NEAR
extern			GetInterface:NEAR
extern			GetDescriptor:NEAR
extern			SetIdle:NEAR
extern			GetDeviceDescriptor:NEAR
extern			GetConfigurationDescriptor:NEAR
extern			GetStringDescriptor:NEAR
extern			GetStatus:NEAR
extern			SetFeature:NEAR
extern			ClearFeature:NEAR
extern			SetReport:NEAR
extern			Execute:NEAR
extern			SendStall0:NEAR
extern			Delay_3us:NEAR

extern			Delay_28us:NEAR


extern			SetFeature_Endpoint:NEAR
extern			ClearFeature_Endpoint:NEAR
extern			GetStatus_Endpoint:NEAR

extern			Check_Real_Cmd:NEAR
extern			GetConfiguration:NEAR


;audio
extern		SetCur:NEAR
extern		GetMin:NEAR
extern		GetMax:NEAR
extern		GetRes:NEAR
extern		GetCur:NEAR

extern		GetPipeBit:NEAR


;***************************************************************
;		MCU Interrupt Table
;***************************************************************


CODE            .section        AT 00H 'code'
		ORG		00H
		jmp		Start
		ORG		04H
		jmp		USB_ISR
		ORG		08H
		jmp		Timer_0_ISR
		ORG		0CH
		jmp		Timer_1_ISR


	;-----------------------------------------------------------
	; Start : ORG 20H 避開前面 interrupt
	;-----------------------------------------------------------
ORG	20H
Start:
;---------------------------------------
;modify 2006-07-27
ADC_Power_On_Reset:
		set	AD_ENB 		;AD_ENB=1 =>ADC Power Down
		call  	Delay_20ms
		clr	AD_ENB 		;AD_ENB=0 =>ADC Power On
;---------------------------------------
		call	System_Initial
	;-----------------------------------------------------------
	; Main LOOP Function  : 
	;-----------------------------------------------------------
Main:
	;-----------------------------------------------------------
	; Check Suspend Function  :
	; 第一次檢查到 suspend 應要再 delay 1 S 後再檢查一次 , 如果此時 suspend 訊號還在才進入 halt
	; 請檢查 timer 此時是否有開啟 , 若有應暫時關閉 , 待 resume 後再開啟 
	;-----------------------------------------------------------
		SNZ		USC.@USC_SUSP		;check SUSPEND ?
		JMP		Main_My_Function

		call		wait_about_1s
		SNZ		USC.@USC_SUSP
		JMP		Main_My_Function
		
	
		clr 		wdt	
		clr		TMR1C.4
		clr		USB_LED_ON
		clr		UCC.@UCC_USBCKEN
	;-----------------------------------------------------------
	; Resume  Function  : 
	; 在此 function 要把 halt 之前的 timer 狀態恢復 , 並且開啟 USBCKEN
	;-----------------------------------------------------------
		HALT
		set		TMR1C.4		
		set		USB_LED_ON
		set		UCC.@UCC_USBCKEN

Main_My_Function:
	;-----------------------------------------------------------
	; Here to add your another code !!
	;-----------------------------------------------------------
		clr wdt	
		NOP
;---------------------------------------------------	
		;modify 2006-07-27	
		SZ 	ADC_POR_FG
		JMP 	Main_End			
		SNZ	bFlag_SetConfiguration_Ready
		JMP 	Main_End 
		set	AD_ENB 		;AD_ENB=1 =>ADC Power Down
		call  	Delay_20ms
		clr	AD_ENB 		;AD_ENB=0 =>ADC Power On
		SET	ADC_POR_FG
;---------------------------------------------------
Main_End:
		JMP		Main

;***************************************************************
;		System Initial
;		1.ram_initial
;		1.Timer Initial
;		2.USB Config
;***************************************************************
System_Initial:
	;-----------------------------------------------------------
	; Debug
	;-----------------------------------------------------------
		clr wdt

	;-----------------------------------------------------------
	; Modify Pop Noise
	;-----------------------------------------------------------
		kmov WDTS,07h
		mov		a,WDTS
		mov		FIFO_TEMP,a

		mov		a,01010111b
		mov		WDTS,a

		clr		[02DH]

		
		mov		a,80H
		mov		[02EH],a
		nop
		nop
		set		[02FH].3
		nop
		nop
		clr		[02FH].3
		nop
		nop

		mov		a,FIFO_TEMP
		mov		WDTS,a
	;-----------------------------------------------------------
	; Wait Bais and ROUT LOUT Capacity rise about 1.98ms
	; delay time = 255*255*30*3(sdz,jmp) cycle * 0.3333us/cycle = 1.98 ms
	;-----------------------------------------------------------
	IF	WaitBias
		clr		pac

		clr		FIFO_OUT1
		clr		FIFO_OUT2
		clr		FIFO_OUT3
		clr		FIFO_OUT4
		mov		a,9		
		mov		FIFO_OUT3,a
		clr		pa



	System_Initial_Loop:
		clr wdt	
		sdz		FIFO_OUT1
		jmp		System_Initial_Loop
		sdz		FIFO_OUT2
		jmp		System_Initial_Loop		
		sdz		FIFO_OUT3
		jmp		System_Initial_Loop		
		nop
		clr wdt	
		set		pa
	ENDIF
	;-----------------------------------------------------------
	; Codec Limit
	;-----------------------------------------------------------
		clr		[02DH]
		set		[02EH]
	;-----------------------------------------------------------
	; ram_initial : clear the ram of bank 0
	;-----------------------------------------------------------
	ram_initial:	;clear RAM (040H--0FFH)
		MOV		A,040H
		MOV		MP0,A
		MOV		A,192
	ram_initial_next_addr:
		clr wdt
		CLR		R0
		INC		MP0
		SDZ		acc
		JMP		ram_initial_next_addr
		
		CLR		bFlag_RD_HTable
	;-----------------------------------------------------------
	; timer_initial : do timer initial
	;-----------------------------------------------------------
	timer_initial:
		MOV 		A,82H		;  設定 low 到 high 觸發並設為內部計時模式
		MOV		TMR0C,A		;
		MOV		A,00H		; 1ms
		MOV		TMR0L,A		
		MOV		A,000H		
		MOV		TMR0H,A		

		mov		a,80H
		mov		TMR1C,a
		mov		a,00H
		mov		TMR1L,a
		mov		TMR1H,a

	;-----------------------------------------------------------
	; config_io_port :
	;-----------------------------------------------------------
		clr		pa
		;kmov		pac,0FEH
		
		;IF 		UseMediaKey
		;	kmov		pac,Key_Defined
		;ENDIF
		;IFE		UseMediaKey
		;	kmov		pac,00000000b
		;ENDIF
		kmov		pac,Key_Defined
		clr		pb
		set		pbc
		clr		pc		;for volume control
		set		pcc

		;按鍵狀態掃描寄存器
		MOV		A,0
		MOV		Key_State00,A
		MOV		Key_State10,A
		MOV		Key_State20,A
		MOV		Key_State30,A
		MOV		Key_State01,A
		MOV		Key_State11,A
		MOV		Key_State21,A
		MOV		Key_State31,A

		MOV		Key_MState0,A
		MOV		Key_MState1,A

		mov		Key_Count,A

	;-----------------------------------------------------------
	; config_usb_speaker_register :
	;-----------------------------------------------------------
		clr		USVC		;mute & 0db
	
	;for test
		;set		DA_R_ENB	;Right Channel Disable	
		

	;-----------------------------------------------------------
	; reset variable :
	;-----------------------------------------------------------
		clr		bFlag_Audio_Mute
		clr		bFlag_Mute_Detect
		clr		bFlag_INC_Detect
		clr		bFlag_DEC_Detect
	;-----------------------------------------------------------
	; config_usb : do usb config
	;-----------------------------------------------------------
	config_usb:
		CLR		INTC0
		SET		INTC0.@INTC0_EEI		;enable USB
		SET		INTC0.@INTC0_EMI		;Global interrupt

		set		MISC.@MISC_ISOEN	;ISO Output Interrupt Enable
		set		MISC.@MISC_ISIEN	;ISO Input Interrupt Enable
		clr		STALL
		clr		UCC.@UCC_SUSP2
		
		;SYSCLK
		;set			UCC.6	//set to 6 MHz

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91久久综合桃花| 欧美色综合久久| 欧美日韩国产美| 国产精品久久久久久户外露出| 香蕉成人伊视频在线观看| 成人午夜精品一区二区三区| 日韩欧美精品在线视频| 亚洲高清视频的网址| 99久久免费视频.com| 久久久久久久久久久久电影| 青青草原综合久久大伊人精品| 色综合激情久久| 国产精品网站一区| 国产传媒久久文化传媒| 精品国产精品网麻豆系列| 日韩成人精品在线观看| 欧美色成人综合| 一级精品视频在线观看宜春院| 成人蜜臀av电影| 国产三级欧美三级| 亚洲欧洲日韩综合一区二区| 国产成人av电影在线| 精品国产91久久久久久久妲己| 三级久久三级久久久| 欧美日韩国产bt| 午夜精品福利视频网站| 欧美亚洲免费在线一区| 一区二区三区四区在线| 91免费在线视频观看| 中文字幕欧美一| 成+人+亚洲+综合天堂| 中文字幕不卡在线观看| 粉嫩久久99精品久久久久久夜| 久久久久88色偷偷免费| 国产一区二区在线观看视频| 精品久久国产97色综合| 国产在线视频精品一区| 久久先锋影音av| 国产精品1024| 国产肉丝袜一区二区| 国产69精品久久777的优势| 欧美高清在线精品一区| 成人午夜看片网址| 日韩一区日韩二区| 色94色欧美sute亚洲线路一久| 亚洲精品国产一区二区三区四区在线| 色天天综合久久久久综合片| 一区二区三区精品| 欧美日韩三级视频| 美女精品一区二区| 精品国产乱码久久| 国产91精品入口| 亚洲欧美在线视频| 在线观看亚洲一区| 亚洲一区二区视频在线观看| 欧美日韩国产小视频| 免费美女久久99| 久久久久久久久伊人| 99精品偷自拍| 亚洲一区在线观看视频| 欧美一区二区三区人| 精品一区二区三区影院在线午夜 | 精品在线播放免费| 久久久99久久精品欧美| 波多野结衣欧美| 亚洲综合999| 欧美一区二区三区四区久久| 欧美一级精品大片| 狠狠v欧美v日韩v亚洲ⅴ| 国产亚洲综合av| 色哟哟在线观看一区二区三区| 亚洲成av人片观看| 精品国产区一区| 99re这里只有精品首页| 香蕉av福利精品导航| 精品国产免费人成在线观看| 波多野结衣亚洲一区| 午夜精品福利一区二区三区av | 日韩一区二区三区在线观看| 国产麻豆精品久久一二三| 中文字幕亚洲综合久久菠萝蜜| 欧美三日本三级三级在线播放| 美国十次了思思久久精品导航| 欧美激情一区二区三区在线| 欧美色爱综合网| 国产麻豆一精品一av一免费| 亚洲人成网站影音先锋播放| 欧美一级爆毛片| 成人av网址在线| 蜜臀av一区二区| 亚洲天堂网中文字| 欧美一级夜夜爽| 91小视频在线观看| 蜜臀国产一区二区三区在线播放| 中文字幕在线观看不卡| 91麻豆精品国产无毒不卡在线观看| 高清视频一区二区| 日韩成人伦理电影在线观看| 日韩一区在线免费观看| 精品黑人一区二区三区久久 | 韩国av一区二区三区四区| 一区二区在线观看免费| 欧美不卡一区二区三区| 日本韩国欧美三级| 国产福利一区在线| 亚洲va欧美va人人爽午夜| 国产精品色眯眯| 日韩美女视频在线| 欧美午夜一区二区| 成人午夜电影小说| 蜜桃视频免费观看一区| 一区二区三区四区不卡视频 | 欧美日韩在线播放一区| 国产高清精品久久久久| 蜜臀av国产精品久久久久| 一区二区三区免费网站| 国产欧美精品日韩区二区麻豆天美| 欧美日韩国产高清一区二区三区| 99精品视频一区二区| 国内精品伊人久久久久av影院 | 国产精品美女视频| 日韩精品一区二区三区三区免费 | 91小视频免费看| 国产女人aaa级久久久级| 欧美一级精品大片| 欧美性大战久久| 91猫先生在线| 成人激情校园春色| 久久精品72免费观看| 五月天激情小说综合| 亚洲一区二区三区自拍| 亚洲色图欧美偷拍| 国产精品久久久久婷婷二区次| 精品久久五月天| 日韩视频在线永久播放| 欧美日本在线一区| 精品1区2区3区| 日本精品视频一区二区| eeuss影院一区二区三区| 国产美女娇喘av呻吟久久| 精品一区二区三区在线播放视频 | 亚洲手机成人高清视频| 国产精品沙发午睡系列990531| 久久一区二区三区国产精品| 日韩视频免费观看高清完整版| 欧美精品乱码久久久久久| 欧美亚男人的天堂| 在线观看91精品国产入口| 91搞黄在线观看| 91福利在线免费观看| 一本久久a久久精品亚洲| 97久久精品人人爽人人爽蜜臀| 成人成人成人在线视频| 成人久久久精品乱码一区二区三区| 国产盗摄一区二区三区| 国产mv日韩mv欧美| 粗大黑人巨茎大战欧美成人| 成人深夜在线观看| 97久久超碰国产精品电影| 91免费小视频| 在线视频一区二区三| 欧美日韩一区二区三区不卡| 欧美日韩精品一区二区三区蜜桃| 欧美日韩国产免费| 日韩欧美亚洲国产另类| 欧美xxxx老人做受| 久久噜噜亚洲综合| 日本一二三四高清不卡| 亚洲欧洲国产日本综合| 亚洲精品国产品国语在线app| 夜夜爽夜夜爽精品视频| 天天免费综合色| 激情文学综合网| 国产成人综合在线播放| www.成人网.com| 91久久国产综合久久| 欧美亚洲综合在线| 欧美精品国产精品| 欧美精品一区二区在线播放| 国产欧美日本一区视频| 一区二区三区蜜桃网| 偷拍日韩校园综合在线| 国产一区二区三区四| 99久久精品情趣| 欧美熟乱第一页| 精品少妇一区二区三区视频免付费| 精品久久国产老人久久综合| 国产精品午夜久久| 亚洲一区影音先锋| 精品一区中文字幕| av电影天堂一区二区在线 | 国产乱人伦精品一区二区在线观看| 丰满亚洲少妇av| 在线视频你懂得一区| 欧美一区二区三区思思人| 国产拍揄自揄精品视频麻豆 | 精品国产一区二区三区久久久蜜月| 国产午夜精品久久| 亚洲国产视频直播| 国内精品伊人久久久久av影院|