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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usbex.asm

?? CH372的單片機編程,VC編程,VB編程,dephi編程
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;CH372/CH375 USB device mode & external firmware
;by wch       2004.10,  2005.03
;$INCLUDE                 	 (reg52.h)
$INCLUDE                 	 (CH375INC.ASM)

STACK           EQU    50H             ;堆棧區(qū)棧頂(向上延伸)
;
; 需要主程序定義的參數(shù)
CH375_CMD_PORT		EQU    0BDF1H         ;CH375命令口的地址,地址譯碼后自動片選
CH375_DAT_PORT		EQU    0BCF0H         ;CH375命令口的地址,地址譯碼后自動片選
;

CH375_CON_ACT		BIT    P1.4

CMD_BUFFER			DATA  38H				;命令包緩沖區(qū),本程序約定命令包長度為CONST_CMD_LEN

VAR_SETUP_REQUEST	EQU   72H							;USB請求碼
VAR_SETUP_LENGTH	EQU   73H							;后續(xù)數(shù)據(jù)長度
VAR_SETUP_DESCR		EQU   74H							;描述符偏移地址
VAR_SN_STRING		EQU   75H							;產(chǎn)品序列號字符串緩沖區(qū),ANSI字符串
VAR_USB_ADDRESS		EQU   76H
	
; 定義位標志
CH375_CON_FLAG  BIT    2FH.0	      ;375芯片配置完成標志
;
;****************************************************************************
;主程序
				ORG   0000H            ;復位后單片機入口
				LJMP  START
				ORG   0003H            ;CH375中斷
				LJMP  CH375_INTER

START:
; 以下初始化指令不是必要的,將單片機恢復為默認狀態(tài)
				CLR   EA               ;關(guān)中斷
				MOV   SP,#STACK        ;置堆棧初值
				MOV   A,#0FFH
				MOV   P0,A
				MOV   P1,A             ;清端口狀態(tài)
				MOV   P2,A
				MOV   P3,A
				CLR   A
				MOV   IE,A             ;清中斷允許控制寄存器
				MOV   IP,A             ;清中斷優(yōu)先級控制寄存器
				MOV   PSW,A            ;清程序狀態(tài)字
				MOV   TCON,A           ;清定時器/計數(shù)器控制寄存器
				MOV   TMOD,A           ;清定時器/計數(shù)器工作方式寄存器
				MOV   PCON,A           ;清電源控制寄存器
				MOV   R7,#0FFH
				CALL  DELAY_MS			;延時等待CH375初始化完成
; 初始化
				CALL  CH375_INIT       ;初始化
				setb  EA
				ljmp  $	;主程序
;
; 輸出命令碼給CH375
; 輸入: ACC 為命令碼
; 輸出: DPTR 為數(shù)據(jù)口
; USE: ACC, DPTR
WR_CMD_TO_375:	MOV   DPTR,#CH375_CMD_PORT	;命令口地址
				MOVX  @DPTR,A				;設置USB工作模式
				NOP							;如果時鐘頻率低于20MHz則無需該指令延時,高于30MHz要多加2條指令
				MOV   DPTR,#CH375_DAT_PORT	;數(shù)據(jù)口地址
				RET
;
; 初始化子程序
; USE:   ACC, R7, DPTR
CH375_INIT:		MOV   A,#CMD_SET_USB_MODE	;設置USB工作模式
				CALL  WR_CMD_TO_375			;輸出命令碼
;				MOV   A,#02H				;設置為內(nèi)置固件模式
				MOV   A,#01H				;設置為外置固件模式
				MOVX  @DPTR,A				;設置為使用內(nèi)置固件的USB設備方式
				NOP							;如果時鐘頻率低于16MHz則無需該指令延時
				NOP
CH375_INIT_WT:	MOVX  A,@DPTR				;返回操作狀態(tài),也可以等待20uS
				XRL   A,#CMD_RET_SUCCESS
				JNZ   CH375_INIT_WT			;等待操作成功,通常需要等待10uS-20uS
; 下述三條指令用于啟用中斷
				CLR   IT0					;置外部信號為低電平觸發(fā)
				SETB  PX0					;置高優(yōu)先級
				CLR   IE0					;清中斷標志
				SETB  EX0					;允許CH375中斷
				RET
;**************************************************************************************
CH375_EP2_DOWN:	MOV A,#CMD_RD_USB_DATA		;將下傳的數(shù)據(jù)讀出,釋放端點
				CALL  WR_CMD_TO_375			;讀命令發(fā)向CH375
				MOVX A,@DPTR				;取出后續(xù)數(shù)據(jù)長度
				MOV R4,A				;保存長度
				JZ   CH375_EP2_UP			;長度為0返回
				MOV R5,A
				MOV  R0,#CMD_BUFFER			;緩沖區(qū)首地址送R0
CH375_EP2_LOOP:			MOVX A,@DPTR
				MOV @R0,A
				INC R0	
				DJNZ R5,CH375_EP2_LOOP
; 演示回傳
CH375_EP2_UP:	MOV  A,#CMD_WR_USB_DATA7	;演示回傳數(shù)據(jù)
				CALL  WR_CMD_TO_375
				MOV  A,R4
				MOVX @DPTR,A
				JZ   CH375_EP2_UP_RET		;長度為0
				MOV  R0,#CMD_BUFFER			;緩沖區(qū)首地址送R0
CH375_EP2_UP_LOOP:	MOV  A,@R0
				MOVX @DPTR,A
				INC  R0
				DJNZ  R4,CH375_EP2_UP_LOOP
CH375_EP2_UP_RET:	RET
;***************************************************************************************							
				
; 中斷服務子程序
; USE:   堆棧6字節(jié), 工作寄存器組1的R0,R5,R6,R7
CH375_INTER:	PUSH  PSW					;現(xiàn)場保護
				PUSH  ACC
				PUSH  DPL
				PUSH  	DPH
				SETB  	RS0                   		;PSW.3,切換至工作寄存器組1
				MOV   A,#CMD_GET_STATUS
				CALL  WR_CMD_TO_375			;獲取中斷狀態(tài)并取消中斷請求
				MOVX 	 A,@DPTR				;返回操作狀態(tài)
				ANL 	 A,#0FH				;屏蔽高4位
				CLR   	IE0					;清中斷標志,對應于INT0中斷
;根據(jù)中斷狀態(tài)進行分析處理
				CJNE  A,#USB_INT_EP2_OUT,CH375_INT_06	;批量端點下傳成功
				LCALL CH375_EP2_DOWN		;接收下傳的數(shù)據(jù)
				LJMP  CH375_INT_RET			; USB批量數(shù)據(jù)接收成功
CH375_INT_06:	CJNE  A,#USB_INT_EP2_IN,CH375_INT_07	;批量端點上傳成功
				;USB批量數(shù)據(jù)發(fā)送成功
				LJMP CH375_INT_ULOCK			;解鎖后中斷返回
CH375_INT_07:
				CJNE  	A,#USB_INT_EP0_SETUP,CH375_INT_01
				LJMP  	CH375_SETUP_OK			;USB控制傳輸建立事務
CH375_INT_01:	CJNE  	A,#USB_INT_EP0_OUT,CH375_INT_02
				LJMP 	CH375_INT_ULOCK		;端點0下傳,解鎖后中斷返回
CH375_INT_02:	CJNE  	A,#USB_INT_EP0_IN,CH375_INT_03
									;端點0數(shù)據(jù)上傳
				MOV 	A,VAR_SETUP_REQUEST
				CJNE 	A,#DEF_USB_GET_DESCR,CH375_EP0_IN_01
									;描述符上傳
				LCALL 	 CH375_DES_UPLOAD		;調(diào)用描述符上傳
				LJMP     CH375_INT_ULOCK	;解鎖后中斷返回

CH375_EP0_IN_01:	CJNE 	A,#DEF_USB_SET_ADDRESS,CH375_EP0_IN_02
				MOV	    A,#CMD_SET_USB_ADDR		;設置地址,以便下一次事務用新的地址
				CALL  WR_CMD_TO_375
				MOV    A,VAR_USB_ADDRESS		;取出地址
				MOVX	@DPTR,A
				LJMP    CH375_INT_ULOCK
CH375_EP0_IN_02:	LJMP    CH375_INT_ULOCK	;解鎖后中斷返回
CH375_INT_03:	CJNE 	 A,#USB_INT_EP1_IN,CH375_INT_04
									;端點1數(shù)據(jù)上傳,請在此加上處理代碼
				LJMP 	CH375_INT_ULOCK		;解鎖后中斷返回

CH375_INT_04:	CJNE  A,#USB_INT_EP1_OUT,CH375_INT_05
				 					;端點1數(shù)據(jù)下傳
				MOV A,#CMD_RD_USB_DATA		;將下傳的數(shù)據(jù)讀出,釋放端點
				CALL  WR_CMD_TO_375			;讀命令發(fā)向CH375
				MOVX A,@DPTR				;
				JZ   CH375_INT_RET			;長度為0返回
				MOV  R5,A
CH375_USB_OUT1_LOOP:		MOVX A,@DPTR				;讀出數(shù)據(jù)釋放緩沖區(qū)
				NOP							;保存到緩沖區(qū)中
				DJNZ  R5,CH375_USB_OUT1_LOOP		;數(shù)據(jù)未讀完繼續(xù)
				LJMP 	CH375_INT_RET		;中斷返回
CH375_INT_05:	ANL  A,#03H
				CJNE A,#03H,CH375_INT_09
				LJMP  CH375_USB_REST			;跳轉(zhuǎn)到USB復位
CH375_INT_09:	SJMP  CH375_INT_ULOCK		;命令不支持錯誤返回

CH375_INT_ULOCK:	;解鎖后中斷返回
				MOV 	A,#CMD_UNLOCK_USB			;解鎖端點
				CALL  WR_CMD_TO_375
CH375_INT_RET:	POP   DPH
				POP   DPL
				POP   ACC
				POP   PSW					;恢復寄存器
				RETI

CH375_USB_REST:	;USB總線復位
				SETB CH375_CON_ACT				;清配置值等,CH372 會自動清USB 地址和同步觸發(fā)標志
				CLR CH375_CON_FLAG				;清單片機中各種標志	
				MOV VAR_SETUP_REQUEST,#0FFH
				LJMP CH375_INT_ULOCK
;*****************************************************************************************
;***********************************USB SETUP***********************************************
CH375_SETUP_RET_ERR:
				MOV A,#CMD_SET_ENDP3			;設置端點1
				CALL  WR_CMD_TO_375
				MOV A,#0FH			;設置狀態(tài)為STALL
				MOVX @DPTR,A
				LJMP CH375_INT_RET			;錯誤的控制傳輸

CH375_SETUP_RET:
				LJMP CH375_INT_RET			;跳轉(zhuǎn)到中斷返回
CH375_SETUP_OK:	MOV  A,#CMD_RD_USB_DATA			;
				CALL  WR_CMD_TO_375			;發(fā)出讀數(shù)據(jù)命令
				MOVX A,@DPTR				;讀出長度
				MOV  R6,A
				MOV  R7,A				;長度放入R7
				MOV  R0,#CMD_BUFFER			;命令緩沖區(qū)首地址放入間接尋址
CH375_SETUP_REC_CMD:		MOVX A,@DPTR				;讀出數(shù)據(jù)
				MOV @R0,A				;數(shù)據(jù)放入命令緩沖區(qū)
				INC R0
				DJNZ  R7,CH375_SETUP_REC_CMD  		;長度不為0繼續(xù)
				CJNE R6,#8H,CH375_INT_RET		;長度不為8跳出不與理睬
				MOV  R0,#CMD_BUFFER
				MOV  A,CMD_BUFFER+6			;取出控制傳輸?shù)拈L度
				ANL  A,#7FH				;長度不超過128個
				MOV VAR_SETUP_LENGTH,A			;存儲長度
				MOV A,CMD_BUFFER			;判斷USB請求
				JB  ACC.6,CH375_USB_REQ_FACT		;USB廠商請求
				JB  ACC.5,CH375_USB_REQ_CLASS		;跳轉(zhuǎn)到USB類請求
				ANL  A,#0E0H
				CJNE A,#80H,CH375_REQUEST_OTHER1
				LJMP  CH375_REQUEST_STANDTRAD		;USB標準請求
CH375_REQUEST_OTHER1:		CJNE A,#00H,CH375_REQUEST_OTHER
				LJMP  CH375_REQUEST_STANDTRAD		;USB標準請求
CH375_REQUEST_OTHER:		LJMP  CH375_SETUP_RET_ERR		;其余命令不支持
CH375_USB_REQ_FACT:		LJMP 	CH375_SETUP_RET			;廠商請求
CH375_USB_REQ_CLASS:	LJMP 	CH375_SETUP_RET			;
;***************************************************************************************
;******************************USB STANDTRAD  REQUEST   STAR  **************************

;*************************************************************************************
;SELECT REQUEST
CH375_REQUEST_STANDTRAD:	MOV A,CMD_BUFFER+1			;USB標準請求
				MOV VAR_SETUP_REQUEST,A			;保存請求
				CJNE A,#DEF_USB_GET_STATUS,CH375_REQ_SEL_01				
				LJMP  CH375_USB_GET_STATUS
CH375_REQ_SEL_01:
				CJNE A,#DEF_USB_CLR_FEATURE,CH375_REQ_SEL_02				
				LJMP CH375_USB_CLR_FEATURE
CH375_REQ_SEL_02:
				CJNE A,#DEF_USB_SET_ADDRESS,CH375_REQ_SEL_03				
				LJMP CH375_USB_SET_ADDRES
CH375_REQ_SEL_03:
				CJNE A,#DEF_USB_GET_DESCR,CH375_REQ_SEL_04					;
				LJMP CH375_USB_GET_DESCR
CH375_REQ_SEL_04:
				CJNE A,#DEF_USB_GET_CONFIG,CH375_REQ_SEL_05				
				LJMP CH375_USB_GET_CONFIG

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久99| 国产精品888| 欧美剧情电影在线观看完整版免费励志电影 | 国产在线精品一区二区三区不卡 | 精品午夜久久福利影院| 精品国产麻豆免费人成网站| 精品一二三四在线| 日本一区免费视频| 91色在线porny| 午夜伊人狠狠久久| 日韩精品在线网站| 成人永久免费视频| 一区二区三区高清| 欧美一级久久久久久久大片| 国产精品亚洲综合一区在线观看| 中文字幕在线不卡视频| 欧美另类一区二区三区| 国产乱人伦偷精品视频不卡| 亚洲日穴在线视频| 日韩一区二区在线看| 成人免费毛片aaaaa**| 亚洲制服丝袜一区| 久久人人超碰精品| 色综合久久久网| 免费看黄色91| 国产三级精品三级在线专区| 欧美亚洲愉拍一区二区| 久久电影网站中文字幕| 亚洲色图.com| 欧美一激情一区二区三区| 成人激情开心网| 麻豆精品国产91久久久久久| 成人欧美一区二区三区在线播放| 在线成人av影院| 处破女av一区二区| 日本在线不卡视频| 日韩二区在线观看| 国产精品无圣光一区二区| 欧美一区二区三区在线电影 | 一区二区国产视频| 2020日本不卡一区二区视频| 色婷婷精品大在线视频| 国内精品久久久久影院一蜜桃| 一区二区三区四区不卡视频| 久久九九全国免费| 日韩欧美三级在线| 欧美日韩一区不卡| 99re热这里只有精品视频| 久久国产免费看| 爽好多水快深点欧美视频| 亚洲三级久久久| 中文字幕乱码亚洲精品一区| 精品久久久久久最新网址| 欧美性一二三区| 一本久久a久久精品亚洲| 国产麻豆精品在线| 久久99精品久久只有精品| 午夜精品123| 亚洲一区二区三区自拍| 国产精品伦理在线| 国产女人18毛片水真多成人如厕 | 99久久99久久综合| 丁香啪啪综合成人亚洲小说| 蜜臂av日日欢夜夜爽一区| 五月激情综合网| 午夜不卡av在线| 午夜精品123| 亚洲一级二级三级在线免费观看| 中文字幕一区二区三区色视频 | 亚洲天堂av一区| 自拍偷拍国产精品| 国产精品久久三区| 国产精品久久久久久久久免费相片| 久久久美女毛片| 久久亚洲免费视频| 国产日韩欧美激情| 亚洲丝袜自拍清纯另类| 国产精品毛片久久久久久久| 国产精品久久久久久久久免费樱桃 | 欧美三级乱人伦电影| 精品视频资源站| 在线播放中文一区| 91精品久久久久久久久99蜜臂| 欧美久久久久久蜜桃| 8v天堂国产在线一区二区| 69堂精品视频| 2023国产精华国产精品| 国产女同互慰高潮91漫画| 国产精品久久久爽爽爽麻豆色哟哟| 中文字幕亚洲精品在线观看| 亚洲色图丝袜美腿| 亚洲成在人线免费| 日本一不卡视频| 国产精品一区三区| 91网站最新网址| 欧美日韩免费电影| 久久婷婷综合激情| 中文字幕亚洲不卡| 午夜影视日本亚洲欧洲精品| 狠狠色丁香久久婷婷综合丁香| 国产成人综合在线播放| 91网站在线观看视频| 欧美高清精品3d| 久久久国产精品午夜一区ai换脸| 中文字幕永久在线不卡| 丝袜美腿亚洲一区二区图片| 国产毛片精品一区| 色噜噜偷拍精品综合在线| 欧美一区二区黄| 亚洲国产精品激情在线观看| 一区二区三区色| 精品一区在线看| 91日韩一区二区三区| 国产精品欧美综合在线| 亚洲一区在线观看网站| 奇米精品一区二区三区四区| 成人免费毛片嘿嘿连载视频| 欧美群妇大交群中文字幕| 国产女人aaa级久久久级| 亚洲成a人片在线不卡一二三区| 国产美女主播视频一区| 日本韩国欧美在线| 久久蜜桃av一区二区天堂 | 国产女人水真多18毛片18精品视频| 亚洲最大成人综合| 国产乱子轮精品视频| 欧美日韩和欧美的一区二区| 国产日韩欧美高清| 麻豆国产一区二区| 在线观看免费亚洲| 中文字幕欧美区| 久久精品噜噜噜成人av农村| 色综合网站在线| 国产香蕉久久精品综合网| 日本不卡的三区四区五区| 色播五月激情综合网| 欧美激情综合五月色丁香小说| 日韩黄色片在线观看| 91极品视觉盛宴| 国产精品国产三级国产普通话三级| 美脚の诱脚舐め脚责91 | 欧美丰满美乳xxx高潮www| 亚洲色图在线看| 国产aⅴ综合色| 欧美电影免费观看完整版| 亚洲6080在线| 在线视频一区二区三| 国产农村妇女毛片精品久久麻豆 | 日本aⅴ亚洲精品中文乱码| 色婷婷国产精品综合在线观看| 国产欧美一二三区| 极品美女销魂一区二区三区免费| 欧美一区二区三区免费| 亚洲图片欧美色图| 色妞www精品视频| 亚洲人亚洲人成电影网站色| 风间由美一区二区av101| 亚洲国产综合在线| 99久久精品免费看国产免费软件| 久久美女艺术照精彩视频福利播放 | 色婷婷综合视频在线观看| 国产精品乱码久久久久久| 国产成人在线看| 国产视频一区不卡| 韩国v欧美v日本v亚洲v| 日韩欧美国产系列| 日本vs亚洲vs韩国一区三区二区| 欧美日韩在线综合| 亚洲一级片在线观看| 欧美日韩国产一级二级| 日韩高清一级片| 日韩三级高清在线| 激情丁香综合五月| 国产亚洲综合色| 成人看片黄a免费看在线| 国产精品每日更新在线播放网址| 99精品热视频| 亚洲午夜一区二区| 欧美色精品在线视频| 天堂蜜桃91精品| 欧美成人一区二区三区在线观看| 精品一区二区三区在线播放| 国产亚洲一区字幕| 99精品热视频| 婷婷开心久久网| 精品国产百合女同互慰| 国产成人精品亚洲日本在线桃色| 国产精品人人做人人爽人人添| 97aⅴ精品视频一二三区| 夜夜爽夜夜爽精品视频| 欧美一区二区三区在线观看视频| 韩国理伦片一区二区三区在线播放| 国产三级三级三级精品8ⅰ区| 成人a免费在线看| 日韩精品每日更新| 日本一区二区成人在线| 欧美丝袜丝nylons| 韩国理伦片一区二区三区在线播放 | 欧美视频日韩视频在线观看| 毛片av中文字幕一区二区|