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

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

?? cy7c68001.asm

?? SEED_DEC5416的USB的程序源碼
?? ASM
字號:
*********************************************************************************
*  CY7C68001.ASM	v1.00							                            *
*  描述:完成對USB的數據與命令的讀寫操作										*
*  版權(c) 	2003-		北京合眾達電子技術有限責任公司			                *
*  設計者:	段立鋒								                                *
*********************************************************************************
		.file	"cy7c68001.asm"
		.c_mode
		.mmregs
		

		.copy	"vc54x.inc"	  ; VC5402 Memory-Mapped	Register Declaration
		.copy   "dec5416.inc" ; SEED DEC5416 Memory-Mapped Register Declaration

		.def _USB_Command_Write
		.def _USB_Command_Read
		.def _SX2_FifoWrite
		.def _SX2_FifoReadSingle
		.def _datastart
**常量的定義**		
timeout 	.set   0400H
usbcommand  .set   0cH
usbfifo2    .set   08H
usbfifo4	.set   09H
usbfifo6    .set   0aH
usbfifo8    .set   0bH
USB_CLK     .set   04007H
;USB_FCLK    .set   0f007H
USB_FCLK    .set   02007H
		.data
**數據緩沖區的定義**
_datastart     .word   00
_comwebuf      .word   00
_comrdbuf      .word   00
_fifowebuf     .word   00
_fifordbuf	   .word   00
_fifolong      .word   00
_fifochannel   .word   00		

		.text
*********************************************************************************
*																				*
* 函數定義:uint _USB_Command_Write(uint regdata)								*
* 功    能:寫USB的命令寄存器與節點0   											*
*																				*
* 入口參數:	A---- port:USB命令寄存器要寫入的數據							*
* 出口參數:		無																*
* 資源使用:AR0,B	       														*
*																				*
*********************************************************************************
**USB命令接口寫的過程**
****1、命令接口的地址為0x4,僅用來寫寄存器與Endpoint0
****2、數據線的Bit7:為1時為地址操作
****				 為0時為數據操作
****3、數據線的Bit6:為1時為讀操作
****				 為0時為寫操作
****4、數據線的Bit[5:0]:為寄存器的地址與數據鎖存,其中數據只占低四位
****5、寫操作:
****	1)寫操作時必需保證在FIFOADR[2:0]上為0x4,并且Ready線為高電平
****	2)向0x4寫入要操作寄存器的地址
****	3)等待Ready線為高電平,寫入要操作寄存器數據的高4位
****	4)等待Ready線為高電平,寫入要操作寄存器數據的低4位

_USB_Command_Write:
						PSHM CLKMD						;保存當前的頻率設定
						STM #0B,CLKMD                     ;switch to DIV mode
TstSatuc:    			LDM CLKMD,B              
            			AND #01B,B                        ;poll STATUS bit
            			BC TstSatuc,BNEQ
            			STM #USB_CLK,CLKMD                 ;switch to PLL X 10 mode
PllSatuc:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatuc,BEQ 
            			
            			PSHM BSCR
						STM #0D000H,BSCR
						PSHM SWWSR          			;保存當前的系統等待時間
						LDM SWWSR,B
						AND #01fffH,B          			;設置系統為5個等待
						STLM B,SWWSR
						
						STM #0,AH
						STM #_comwebuf,AR0 			;獲取緩沖區的首地址
						
					;	PSHM SWWSR          			;保存當前的系統等待時間
					;	LDM SWWSR,B
					;	AND #06fffH,B          			;設置系統為14個等待
					;	STLM B,SWWSR
						
						STL A,*AR0			 			;緩存當前的操作數據
						PORTW *AR0,usbcommand	        ;將數據寫入到命令寄存器
						NOP
						NOP
						NOP
						POPM SWWSR 						;恢復當前的系統軟件等待時間
						POPM BSCR
						STM #0B,CLKMD                     ;switch to DIV mode
TstSatuc1:    			LDM CLKMD,B              
            			AND #01B,B                        ;poll STATUS bit
            			BC TstSatuc1,BNEQ
            			POPM CLKMD                 		  ;switch to PLL X 10 mode
PllSatuc1:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatuc1,BEQ 
						.if	__far_mode
							FRET
						.else
							RET
						.endif
*********************************************************************************
*																				*
* 函數定義:uint _USB_Command_Read()											*
* 功    能:寫USB的命令寄存器與節點0   											*
*																				*
* 入口參數:	A---- port:USB命令寄存器要寫入的數據							*
* 出口參數:		無																*
* 資源使用:AR0,B	       														*
*																				*
*********************************************************************************						
_USB_Command_Read:
						STM #0,AH
						STM #_comrdbuf,AR0 			;獲取緩沖區的首地址
						
						PSHM SWWSR          			;保存當前的系統等待時間
						LDM SWWSR,B
						AND #06fffH,B          			;設置系統為4個等待
						STLM B,SWWSR
						
						PORTR usbcommand,*AR0			;將數據讀入緩存區	
						LD *AR0,A						;返回讀取的值
						
						POPM SWWSR 						;恢復當前的系統軟件等待時間
						
						.if	__far_mode
							FRET
						.else
							RET
						.endif
*********************************************************************************
*																				*
* 函數定義:void SX2_FifoWriteSingle(int channel,uint * address,uint longth )	*
* 功    能:寫USB的FIFO數據緩沖區   											*
*																				*
* 入口參數:	A---- port:USB's FIFO在IO空間寄存器的地址channel				*
* 出口參數:		無																*
* 資源使用:AR0,B	       														*
*																				*
*********************************************************************************
*關于USBFIFO寫時序的產生:
****依據USB器件CY7C68001的FIFO的寫時序(見其 data sheet 的30頁),
****片選與WR#信號的低有效期應在50~70ns之間;
****為了滿足數據保持的有效期最小10ns的要求,清空當前流水線(加三個空操作);
****這個USB的寫程序是基于DSP的主頻為160MHz時的設置:
********設置寄存器BSCR為0x9000,將CLKOUT設為三分頻。
********IO系統的等待周期為2個,寄存器SWWSR設為0x1fff,寄存器SWCR設為0x1。
********在每次寫之后加三個空操作,清空流水線,保持外部的數據狀態。
_SX2_FifoWrite:
						STM #0,AH			;A中是要寫入FIFO的通路
						STM #_fifowebuf,AR0 ;獲取寫緩沖區的地址
						PSHM AR1         	;AR1壓棧
						PSHM AR2            ;AR2壓棧
						.if	__far_mode
						LDU	3H,B
						.else
						LDU	2H,B
						.endif
						STLM B,AR1			;獲取FIFO緩沖區的首地址
						STM #_fifolong,AR2
						.if	__far_mode
						LDU	5H,B
						.else
						LDU	4H,B
						.endif
						STL B,*AR2			;保存要寫FIFO的長度
						
						STM #_fifochannel,AR0
						STL A,*AR0			;保存當前的通路值
						CMPM *AR0,#0        ;是不是FIFO2
						BC fifo4,NTC
						;是FIFO2,寫入數據
fifo2:					PSHM BSCR
						STM #0F000H,BSCR	;設置CLOCK為4分頻
						PSHM CLKMD			;保存當前的頻率設定
						STM #0B,CLKMD       ;switch to DIV mode
TstSatu2:    			LDM CLKMD,B              
            			AND #01B,B          ;poll STATUS bit
            			BC TstSatu2,BNEQ
            			STM #USB_FCLK,CLKMD ;switch to PLL X 5 mode
PllSatu2:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu2,BEQ 
            			
						PSHM SWWSR            ;保存當前的系統等待時間
						ANDM #01fffH,*(SWWSR) ;設置一個等待
						NOP
fifo2w:					PORTW *AR1+,usbfifo2 ;寫入數據
						ADDM #-1,*AR2
						CMPM *AR2,#0
						BC	fifo2w,NTC
						;寫入結束
						POPM SWWSR   ;恢復等待時間
						STM #0B,CLKMD          ;switch to DIV mode
TstSatu21:    			LDM CLKMD,B              
            			AND #01B,B             ;poll STATUS bit
            			BC TstSatu21,BNEQ
            			POPM CLKMD             ;switch to PLL X 10 mode
PllSatu21:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu21,BEQ
            			POPM BSCR      ;恢復CLOCK分頻	
						B fifoWriteExit
						;寫入FIFO4								
fifo4:					CMPM *AR0,#1
						BC fifo6,NTC
						PSHM BSCR
						STM #0F000H,BSCR	;設置CLOCK為4分頻
						PSHM CLKMD			;保存當前的頻率設定
						STM #0B,CLKMD       ;switch to DIV mode
TstSatu4:    			LDM CLKMD,B              
            			AND #01B,B          ;poll STATUS bit
            			BC TstSatu2,BNEQ
            			STM #USB_FCLK,CLKMD ;switch to PLL X 5 mode
PllSatu4:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu2,BEQ 
						PSHM SWWSR            ;保存當前的系統等待時間
						ANDM #01fffH,*(SWWSR) ;設置一個等待
						NOP
fifo4w:					PORTW *AR1+,usbfifo4 ;寫入數據
						ADDM #-1,*AR2
						CMPM *AR2,#0
						BC	fifo4w,NTC
						;寫入結束
						POPM SWWSR   ;恢復等待時間
						STM #0B,CLKMD          ;switch to DIV mode
TstSatu41:    			LDM CLKMD,B              
            			AND #01B,B             ;poll STATUS bit
            			BC TstSatu41,BNEQ
            			POPM CLKMD             ;switch to PLL X 10 mode
PllSatu41:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu41,BEQ
            			POPM BSCR      ;恢復CLOCK分頻	
						B fifoWriteExit

fifo6:					CMPM *AR0,#2
						BC fifo8,NTC					
						;是FIFO6,寫入數據
						PSHM BSCR
						STM #0f000H,BSCR	;設置CLOCK為4分頻
						PSHM CLKMD			;保存當前的頻率設定
						STM #0B,CLKMD       ;switch to DIV mode
TstSatu6:    			LDM CLKMD,B              
            			AND #01B,B          ;poll STATUS bit
            			BC TstSatu6,BNEQ
            			STM #USB_FCLK,CLKMD ;switch to PLL X 5 mode
PllSatu6:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu6,BEQ 
            			
						PSHM SWWSR            ;保存當前的系統等待時間
						ANDM #00fffH,*(SWWSR) ;設置一個等待
						NOP
fifo6w:					PORTW *AR1+,usbfifo6 ;寫入數據
						ADDM #-1,*AR2
						CMPM *AR2,#0
						BC	fifo6w,NTC
						;寫入結束
						POPM SWWSR   ;恢復等待時間
						STM #0B,CLKMD          ;switch to DIV mode
TstSatu61:    			LDM CLKMD,B              
            			AND #01B,B             ;poll STATUS bit
            			BC TstSatu61,BNEQ
            			POPM CLKMD             ;switch to PLL X 10 mode
PllSatu61:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu61,BEQ
            			POPM BSCR      ;恢復CLOCK分頻	
						B fifoWriteExit
						
fifo8:					CMPM *AR0,#3
						BC fifoWriteError,NTC					
						;是FIFO8,寫入數據
						PSHM BSCR
						STM #0f000H,BSCR	;設置CLOCK為4分頻
						PSHM CLKMD			;保存當前的頻率設定
						STM #0B,CLKMD       ;switch to DIV mode
TstSatu8:    			LDM CLKMD,B              
            			AND #01B,B          ;poll STATUS bit
            			BC TstSatu8,BNEQ
            			STM #USB_FCLK,CLKMD ;switch to PLL X 5 mode
PllSatu8:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu8,BEQ 
            			
						PSHM SWWSR            ;保存當前的系統等待時間
						ANDM #01fffH,*(SWWSR) ;設置一個等待
						NOP
fifo8w:					PORTW *AR1+,usbfifo8 ;寫入數據
						ADDM #-1,*AR2
						CMPM *AR2,#0
						BC	fifo8w,NTC
						;寫入結束
						POPM SWWSR   ;恢復等待時間
						STM #0B,CLKMD          ;switch to DIV mode
TstSatu81:    			LDM CLKMD,B              
            			AND #01B,B             ;poll STATUS bit
            			BC TstSatu81,BNEQ
            			POPM CLKMD             ;switch to PLL X 10 mode
PllSatu81:    			LDM CLKMD,B              
            			AND #01B,B
            			BC PllSatu81,BEQ
            			POPM BSCR      ;恢復CLOCK分頻	
						B fifoWriteExit
												
fifoWriteExit:			OR #1,A
						B fifoWriteEnd
fifoWriteError:			AND #0,A
						
fifoWriteEnd:			POPM AR2
						POPM AR1
						.if	__far_mode
							FRET
						.else
							RET
						.endif			   																																																																																																																																																						
																																																																														
*********************************************************************************
*																				*
* 函數定義:unsigned int SX2_FifoReadSingle(int channel)						*
* 功    能:寫USB的FIFO數據緩沖區   											*
*																				*
* 入口參數:	A---- port:USB's FIFO在IO空間寄存器的地址channel				*
* 出口參數:		無																*
* 資源使用:AR0,B	       														*
*																				*
*********************************************************************************
_SX2_FifoReadSingle:
						
						STM #0,AH
						STM #_fifordbuf,AR0 			;獲取緩沖區的地址
												
						PSHM SWWSR          			;保存當前的系統等待時間
						LDM SWWSR,B
						AND #06fffH,B          			;設置系統為5個等待
						STLM B,SWWSR
						
fifo_r1st:				PSHM AL
						PSHM AH
						SUB #0,A
						BC fifo_r2sec,ANEQ	
						PORTR usbfifo2,*AR0		;寫endpoint 2 one byte
						POPM AH
						POPM AL
						B fifoReadExit
						
fifo_r2sec:				POPM AH
						POPM AL
						PSHM AL
						PSHM AH
						SUB #1,A
						BC fifo_r3rd,ANEQ
						PORTR usbfifo4,*AR0			;寫endpoint 4 one byte
						POPM AH
						POPM AL
						B fifoReadExit
						
fifo_r3rd:				POPM AH
						POPM AL
						PSHM AL
						PSHM AH
						SUB #2,A
						BC fifo_r4fou,ANEQ
						PORTR usbfifo6,*AR0			;寫endpoint 6 one byte
						POPM AH
						POPM AL
						B fifoReadExit						

fifo_r4fou:				POPM AH
						POPM AL
						PSHM AL
						PSHM AH
						SUB #3,A
						BC fifoWriteExit,ANEQ
						PORTR usbfifo8,*AR0			;寫endpoint 8 one byte
						POPM AH
						POPM AL	
												
fifoReadExit:			POPM SWWSR 						;恢復當前的系統軟件等待時間
						LD *AR0,A						;返回讀取的值
						.if	__far_mode
							FRET
						.else
							RET
						.endif										
		.end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色欧美片视频在线观看在线视频| 日韩av一级片| 亚洲天天做日日做天天谢日日欢| 精品福利在线导航| 久久影院午夜论| 国产日韩av一区| 亚洲啪啪综合av一区二区三区| 亚洲日韩欧美一区二区在线| 亚洲精品福利视频网站| 亚洲国产日韩一级| 狠狠色丁香婷综合久久| 国产成人亚洲综合a∨婷婷| k8久久久一区二区三区| 91网站在线观看视频| 日韩欧美精品在线| 欧美国产乱子伦| 婷婷国产在线综合| 丁香婷婷综合五月| 欧美精品自拍偷拍| 国产精品三级av| 久久成人免费网| 99精品在线观看视频| 日韩欧美成人一区二区| 久久老女人爱爱| 天堂一区二区在线| 97se亚洲国产综合自在线观| 欧美一区二区视频在线观看| 欧美国产激情二区三区 | 亚洲高清一区二区三区| 国产又粗又猛又爽又黄91精品| 色婷婷国产精品| 亚洲欧洲国产日韩| 国产成人在线网站| 精品国产精品一区二区夜夜嗨| 一区二区三区在线影院| 国产精品自在在线| 精品久久久久久久一区二区蜜臀| 亚洲一区二区三区四区五区中文| 成人妖精视频yjsp地址| 久久久av毛片精品| 国产中文字幕精品| 欧美成人福利视频| 日韩电影在线观看网站| 91精品国产综合久久精品麻豆| 亚洲精品国产精华液| 一区二区三区免费网站| 亚洲午夜视频在线观看| 大胆欧美人体老妇| 久久久www免费人成精品| 国产精品一二三四区| 国产精品视频麻豆| 色综合久久综合网97色综合 | 亚洲人成网站在线| 欧美综合色免费| 久久99精品一区二区三区| 精品国产91乱码一区二区三区| 国产成人精品免费| 日韩理论在线观看| 在线综合亚洲欧美在线视频| 国产一区二区三区最好精华液 | 国内精品伊人久久久久av影院 | 国产乱码精品1区2区3区| 中文字幕日韩av资源站| 色先锋aa成人| 国产精一品亚洲二区在线视频| 亚洲精选在线视频| 精品成人私密视频| 在线电影一区二区三区| 成人动漫一区二区在线| 国产精品乱子久久久久| 成人永久aaa| 久久精品国产亚洲aⅴ| 亚洲女同一区二区| 国产精品的网站| 久久精品亚洲精品国产欧美kt∨| 欧美日韩免费观看一区二区三区| 国产一区二区91| 极品瑜伽女神91| 蜜臀国产一区二区三区在线播放 | 日韩成人精品在线观看| 国产精品久久影院| 国产午夜精品一区二区三区视频| 欧美色偷偷大香| 欧美自拍偷拍一区| 91福利在线免费观看| 在线免费观看视频一区| 91成人国产精品| 欧美亚洲精品一区| 欧美日韩免费视频| 69av一区二区三区| 7777精品伊人久久久大香线蕉最新版| 欧美亚洲国产一区二区三区| 国产一区二区主播在线| 国产一区二区三区免费播放| 麻豆精品精品国产自在97香蕉| 美国三级日本三级久久99| 久久精品国产99国产| 国产成人亚洲综合色影视| 99精品视频中文字幕| 91丨porny丨在线| 欧美乱妇15p| 亚洲国产精品v| 亚洲国产日韩精品| 国产一区在线观看视频| www.99精品| 欧美电视剧免费全集观看| 中文字幕永久在线不卡| 偷拍日韩校园综合在线| 丁香亚洲综合激情啪啪综合| 欧洲在线/亚洲| 欧美国产一区二区| 亚洲第一久久影院| proumb性欧美在线观看| 欧美一区二区三区免费视频| 国产欧美一区二区精品婷婷| 伊人一区二区三区| 成人h动漫精品一区二| 精品国产麻豆免费人成网站| 中文字幕在线视频一区| 久久99精品国产.久久久久久| av激情综合网| 欧美国产成人精品| 国产福利不卡视频| 亚洲精品在线网站| 狠狠狠色丁香婷婷综合激情| 欧美色爱综合网| 午夜影视日本亚洲欧洲精品| 在线看日韩精品电影| 亚洲精品成人a在线观看| 99久久99久久综合| 国产精品传媒入口麻豆| 91在线视频免费91| 无吗不卡中文字幕| 日韩极品在线观看| 国产精品一区不卡| 日韩免费性生活视频播放| 亚洲激情自拍偷拍| 欧美图区在线视频| 视频一区二区三区中文字幕| 欧美日韩一本到| 免费人成网站在线观看欧美高清| 99精品国产99久久久久久白柏 | 久久er99精品| 日本一区二区免费在线观看视频| 成人精品视频一区二区三区| 国产欧美日韩精品一区| 色播五月激情综合网| 麻豆精品在线观看| 最新国产の精品合集bt伙计| 色哟哟一区二区三区| 午夜精品福利久久久| 久久综合九色综合欧美就去吻 | 日韩一区中文字幕| 欧美福利视频一区| 成人av在线网| 捆绑变态av一区二区三区| 国产亚洲欧洲997久久综合| 欧美视频你懂的| 99久久综合99久久综合网站| 免费在线观看成人| 亚洲一区二区三区在线看| 国产日本欧洲亚洲| 日韩午夜三级在线| 欧美性xxxxxxxx| 91美女片黄在线观看91美女| 国产在线不卡一卡二卡三卡四卡| 亚洲精品乱码久久久久久日本蜜臀| 精品久久国产字幕高潮| 欧美日韩卡一卡二| 欧美日韩综合在线| 91国偷自产一区二区三区观看| 久久99精品久久久久久国产越南 | 精品久久久久久久久久久久久久久 | 天堂va蜜桃一区二区三区漫画版| 国产精品无码永久免费888| 久久久三级国产网站| 国产欧美视频一区二区| 国产日韩视频一区二区三区| 2017欧美狠狠色| 国产精品久久久久aaaa| 亚洲欧美在线高清| 亚洲婷婷综合久久一本伊一区| 亚洲三级免费观看| 亚洲电影中文字幕在线观看| 人妖欧美一区二区| 国产一区二区伦理| 国产成+人+日韩+欧美+亚洲| 成人黄色免费短视频| 色综合色狠狠天天综合色| 欧美日韩一区 二区 三区 久久精品| 99在线精品免费| 制服丝袜中文字幕一区| 日韩欧美国产综合| 亚洲男帅同性gay1069| 青草av.久久免费一区| av网站免费线看精品| 制服.丝袜.亚洲.中文.综合| 久久久久久久久久久久久女国产乱| 亚洲欧美自拍偷拍色图| 蜜臀av性久久久久蜜臀av麻豆|