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

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

?? ch375hf4.inc

?? USB驅動芯片簡介及驅動源程序
?? INC
?? 第 1 頁 / 共 3 頁
字號:
#ifdef CH375HF_NO_CODE

	EXTRN	IDATA (mCmdParam)			; 命令參數 */
	EXTRN	XDATA (CH375_CMD_PORT)		; CH375命令端口的I/O地址 */
	EXTRN	XDATA (CH375_DAT_PORT)		; CH375數據端口的I/O地址 */
	EXTRN	XDATA (DISK_BASE_BUF)		; 外部RAM的磁盤數據緩沖區,緩沖區長度為一個扇區的長度 */
#ifdef FILE_DATA_BUF_LEN
	EXTRN	XDATA (FILE_DATA_BUF)		; 外部RAM的文件數據緩沖區,緩沖區長度不小于一次讀寫的數據長度 */
	EXTRN	CODE (CH375FileRead)		; 從當前文件讀取數據 */
#ifdef EN_DISK_WRITE
	EXTRN	CODE (CH375FileWrite)		; 向當前文件寫入數據 */
#endif
#endif
	EXTRN	CODE (xQueryInterrupt)		; 外部定義的被CH375程序庫調用的子程序,查詢CH375中斷并更新中斷狀態 */
	EXTRN	CODE (CH375LibInit)			; 初始化CH375程序庫和CH375芯片

#else

; ********************************************************************************************************************* */
; 外部定義的被CH375程序庫調用的變量
	PUBLIC	mCmdParam					; 命令參數 */
	PUBLIC	CH375_CMD_PORT				; CH375命令端口的I/O地址 */
	PUBLIC	CH375_DAT_PORT				; CH375數據端口的I/O地址 */
	PUBLIC	DISK_BASE_BUF				; 外部RAM的磁盤數據緩沖區,緩沖區長度為一個扇區的長度 */
#ifdef FILE_DATA_BUF_LEN
	PUBLIC	FILE_DATA_BUF				; 外部RAM的文件數據緩沖區,緩沖區長度不小于一次讀寫的數據長度 */
	PUBLIC	CH375FileRead				; 從當前文件讀取數據 */
#ifdef EN_DISK_WRITE
	PUBLIC	CH375FileWrite				; 向當前文件寫入數據 */
#endif
#endif

; ********************************************************************************************************************* */
; 變量定義
	RSEG  CH375LIB_IDATA
 mCmdParam:   DS   MAX_PATH_LEN			; 命令參數 */

	XSEG  AT  CH375_CMD_PORT_ADDR
 CH375_CMD_PORT:   DS   1				; CH375命令端口的I/O地址 */

	XSEG  AT  CH375_DAT_PORT_ADDR
 CH375_DAT_PORT:   DS   1				; CH375數據端口的I/O地址 */

	XSEG  AT  DISK_BASE_BUF_ADDR
  DISK_BASE_BUF:   DS   512				; 外部RAM的磁盤數據緩沖區,緩沖區長度為一個扇區的長度 */

#ifdef FILE_DATA_BUF_LEN
	XSEG  AT  FILE_DATA_BUF_ADDR
  FILE_DATA_BUF:   DS   FILE_DATA_BUF_LEN	; 外部RAM的文件數據緩沖區,緩沖區長度不小于一次讀寫的數據長度 */
#endif

; ********************************************************************************************************************* */
; 外部定義的被CH375程序庫調用的子程序
	PUBLIC	xQueryInterrupt				; 外部定義的被CH375程序庫調用的子程序,查詢CH375中斷并更新中斷狀態 */
	PUBLIC	_xWriteToExtBuf				; 外部定義的被CH375程序庫調用的子程序,從CH375讀取文件數據到外部緩沖區 */
#ifdef EN_DISK_WRITE
	PUBLIC	_xReadFromExtBuf			; 外部定義的被CH375程序庫調用的子程序,從外部緩沖區讀取文件數據到CH375 */
#endif

; ********************************************************************************************************************* */
; 默認的被CH375程序庫調用的子程序定義
; 以下程序可以根據需要修改, 相關詳細內容可以參考C程序頭文件CH375HF4.H
	RSEG  CH375LIB_CODE

#ifdef FILE_DATA_BUF_LEN
; 從當前文件讀取數據
CH375FileRead:		MOV		R0,#mCmdParam+8			;mCmdParam.ReadX.mDataBuffer
					MOV		@R0,#HIGH FILE_DATA_BUF	;指向文件數據緩沖區
					INC		R0
					MOV		@R0,#LOW FILE_DATA_BUF
					JMP		CH375FileReadX
#ifdef EN_DISK_WRITE
; 向當前文件寫入數據
CH375FileWrite:		MOV		R0,#mCmdParam+8			;mCmdParam.WriteX.mDataBuffer
					MOV		@R0,#HIGH FILE_DATA_BUF	;指向文件數據緩沖區
					INC		R0
					MOV		@R0,#LOW FILE_DATA_BUF
					JMP		CH375FileWriteX
#endif
#endif
;
; CH375中斷服務程序,由CH375的INT#的低電平或者下降沿觸發單片機中斷
;xQueryInterrupt:	MOV		A,CH375IntStatus		; 該子程序用于"中斷方式",查詢中斷狀態,等待硬件中斷
;					JZ		xQueryInterrupt			; 子程序庫調用該子程序之前CH375IntStatus=0,硬件中斷后,由中斷服務程序置為非0的實際中斷狀態后返回
;					RET
InterruptHandle:	PUSH    PSW						; 中斷服務程序,如果使用"中斷方式",請在中斷向量處執行一個跳轉到此
					PUSH    ACC
					PUSH    DPL
					PUSH    DPH
					CALL    xQueryInterrupt_1
					POP     DPH
					POP     DPL
					POP     ACC
					POP     PSW
					RETI
; 查詢CH375中斷并更新中斷狀態
xQueryInterrupt:	JB   	CH375_INT_WIRE,$		; 該子程序用于"查詢方式",查詢CH375的INT#引腳,如果CH375的中斷引腳輸出高電平則等待
xQueryInterrupt_1:	MOV  	DPTR,#CH375_CMD_PORT
					MOV  	A,#CMD_GET_STATUS
					MOVX 	@DPTR,A					; 獲取當前中斷狀態 */
					INC     DPTR
					INC     DPTR					; 操作無意義,用于至少延時2uS */
					INC     DPTR
					MOV  	DPTR,#CH375_DAT_PORT
					MOVX 	A,@DPTR					; 獲取中斷狀態 */
					MOV  	CH375IntStatus,A
					CJNE 	A,#ERR_USB_DISCON,QUERY_INT_DISCON
					MOV  	CH375DiskStatus,#DISK_DISCONNECT	; 檢測到USB設備斷開事件 */
					RET
QUERY_INT_DISCON:	CJNE 	A,#ERR_USB_CONNECT,QUERY_INT_CONNECT
					MOV  	CH375DiskStatus,#DISK_CONNECT	; 檢測到USB設備連接事件 */
					RET
QUERY_INT_CONNECT:	RET
;
; 該子程序由CH375的子程序庫調用,用于從CH375讀取文件數據到外部緩沖區,被CH375FileRead調用 */
_xWriteToExtBuf:	RET								;如果文件讀寫的數據的復制方式不是"外部子程序",則不會調用該子程序
;
; 該子程序由CH375的子程序庫調用,用于從外部緩沖區讀取文件數據到CH375,被CH375FileWrite調用 */
_xReadFromExtBuf:	RET								;如果文件讀寫的數據的復制方式不是"外部子程序",則不會調用該子程序
;
; ********************************************************************************************************************* */
; 供主程序調用的子程序
	PUBLIC	CH375LibInit
; 初始化CH375程序庫和CH375芯片, 操作完成后返回狀態碼在R7中, 操作成功返回0
CH375LibInit:		MOV  	A,SP
					SETB  	C
					SUBB 	A,#0F0H					; CH375子程序庫最多可能有7級子程序,查詢方式最多需要14字節的堆棧空間,建議提供余量
					JC  	CH375LibInit_SP			; 單片機的堆棧空間不夠
					MOV  	R7,#0FCH				; 當前子程序庫的版本號太低則返回錯誤
					RET
CH375LibInit_SP:	MOV  	CH375LibConfig,#LIB_CFG_VALUE	; CH375程序庫配置值
					MOV     DPTR,#DISK_BASE_BUF
					MOVX    A,@DPTR					; 該操作無意義,只是為了防止編譯器優化時不產生DISK_BASE_BUF緩沖區
					LCALL	CH375GetVer				; 獲取當前子程序庫的版本號
					MOV  	A,R7
					CLR  	C
					SUBB 	A,#CH375_LIB_VER
					JNC  	CH375LibInit_GOON
					MOV  	R7,#0FFH				; 當前子程序庫的版本號太低則返回錯誤
					RET
CH375LibInit_GOON:	LCALL	CH375Init				; 初始化CH375
					RET  	
;
; ********************************************************************************************************************* */
; 以下被CH375程序庫用到的子程序,來自C51的程序庫C51S.LIB
; 如果沒有下面這些子程序(將其注釋掉), 那么鏈接方法是: LX51  CH375HFT.OBJ , CH375HF4.LIB, C51S.LIB
; 如果有下面這些子程序, 那么鏈接方法是: LX51  CH375HFT.OBJ , CH375HF4.LIB
; 建議, 如果應用程序也用到C51S.LIB中的子程序, 那么將下面這些內容注釋掉, 防止鏈接時出現同名沖突
	PUBLIC	?C?ULCMP
?C?ULCMP:			MOV   A,R3
					SUBB  A,R7
					MOV   B,A
					MOV   A,R2
					SUBB  A,R6
					ORL   B,A
					MOV   A,R1
					SUBB  A,R5
					ORL   B,A
					MOV   A,R0
					SUBB  A,R4
					ORL   A,B
					RET
	PUBLIC	?C?ULSHR
?C?ULSHR:			MOV   A,R0
					JZ    ?C?ULSHR_RET
?C?ULSHR_LOOP:		MOV   A,R4
					CLR   C
					RRC   A
					MOV   R4,A
					MOV   A,R5
					RRC   A
					MOV   R5,A
					MOV   A,R6
					RRC   A
					MOV   R6,A
					MOV   A,R7
					RRC   A
					MOV   R7,A
					DJNZ  R0,?C?ULSHR_LOOP
?C?ULSHR_RET:		RET
	PUBLIC	?C?LSHL
?C?LSHL:			MOV   A,R0
					JZ    ?C?LSHL_RET
?C?LSHL_LOOP:		MOV   A,R7
					CLR   C
					RLC   A
					MOV   R7,A
					MOV   A,R6
					RLC   A
					MOV   R6,A
					MOV   A,R5
					RLC   A
					MOV   R5,A
					MOV   A,R4
					RLC   A
					MOV   R4,A
					DJNZ  R0,?C?LSHL_LOOP
?C?LSHL_RET:		RET
	PUBLIC	?C?LLDIDATA
?C?LLDIDATA:		MOV   A,@R0
					MOV   R4,A
					INC   R0
					MOV   A,@R0
					MOV   R5,A
					INC   R0
					MOV   A,@R0
					MOV   R6,A
					INC   R0
					MOV   A,@R0
					MOV   R7,A
					RET
	PUBLIC	?C?LLDIDATA0
?C?LLDIDATA0:		MOV   A,@R0
					MOV   R3,A
					INC   R0
					MOV   A,@R0
					MOV   R1,A
					INC   R0
					MOV   A,@R0
					MOV   R2,A
					INC   R0
					MOV   A,@R0
					XCH   A,R3
					MOV   R0,A
					RET
	PUBLIC	?C?LSTIDATA
?C?LSTIDATA:		MOV   A,R4
					MOV   @R0,A
					INC   R0
					MOV   A,R5
					MOV   @R0,A
					INC   R0
					MOV   A,R6
					MOV   @R0,A
					INC   R0
					MOV   A,R7
					MOV   @R0,A
					RET
	PUBLIC	?C?LSTXDATA
?C?LSTXDATA:		MOV   A,R4
					MOVX  @DPTR,A
					INC   DPTR
					MOV   A,R5
					MOVX  @DPTR,A
					INC   DPTR
					MOV   A,R6
					MOVX  @DPTR,A
					INC   DPTR
					MOV   A,R7
					MOVX  @DPTR,A
					RET
	PUBLIC	?C?LSTKIDATA
?C?LSTKIDATA:		POP   DPH
					POP   DPL
					CLR   A
					MOVC  A,@A+DPTR
					MOV   @R0,A
					INC   R0
					MOV   A,#01H
					MOVC  A,@A+DPTR
					MOV   @R0,A
					INC   R0
					MOV   A,#02H
					MOVC  A,@A+DPTR
					MOV   @R0,A
					INC   R0
					MOV   A,#03H
					MOVC  A,@A+DPTR
					MOV   @R0,A
					MOV   A,#04H
					JMP   @A+DPTR
; 以上是被CH375程序庫用到的子程序,來自C51的程序庫C51S.LIB,如果去掉這些子程序,那么鏈接時要加上C51S.LIB
;
#endif
;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费av一区| 精品国免费一区二区三区| 日韩精品中午字幕| 一区二区三区中文在线| 日韩**一区毛片| 91在线观看免费视频| 精品久久久久久久久久久久久久久 | 日韩一卡二卡三卡四卡| 中文字幕在线一区免费| 国内成人免费视频| 欧美性受xxxx| 亚洲青青青在线视频| 国产美女一区二区| 欧美mv和日韩mv的网站| 五月综合激情日本mⅴ| 一本一道波多野结衣一区二区| 精品国产伦理网| 日韩综合小视频| 色妹子一区二区| 国产精品久久久一本精品 | 日韩高清不卡一区| 在线中文字幕一区| 亚洲乱码国产乱码精品精98午夜| 韩国av一区二区三区| 欧美一卡在线观看| 日韩不卡一区二区三区| 欧美日韩专区在线| 亚洲动漫第一页| 欧美性一二三区| 亚洲高清中文字幕| 精品视频一区三区九区| 亚洲444eee在线观看| 欧美性淫爽ww久久久久无| 欧美亚洲综合网| 亚洲二区在线观看| 免费成人你懂的| 午夜精品爽啪视频| 一本色道久久综合亚洲91| 国产精品视频线看| 成人妖精视频yjsp地址| 国产精品免费av| 不卡的av在线| 国产精品久久看| 日本精品一区二区三区高清 | 精品少妇一区二区三区在线播放| 美女在线视频一区| 日韩欧美成人激情| 国产精品77777| 国产精品美女一区二区| 99国产精品久久久久久久久久 | 精品污污网站免费看| 日韩成人精品视频| 26uuu精品一区二区三区四区在线| 国产一区在线观看麻豆| 国产三级三级三级精品8ⅰ区| 99久久伊人久久99| 亚洲午夜羞羞片| 久久在线观看免费| 在线欧美小视频| 久久99精品久久久久久国产越南| 国产亚洲午夜高清国产拍精品| 波多野结衣一区二区三区| 又紧又大又爽精品一区二区| 欧美精品久久99| 激情五月播播久久久精品| 亚洲欧美日韩综合aⅴ视频| 欧美精品在线观看一区二区| 国产乱码精品1区2区3区| 亚洲欧美日韩系列| 91麻豆精品国产91久久久久| 国产99久久久久| 亚洲超碰精品一区二区| 国产精品五月天| 在线不卡a资源高清| 国产高清在线精品| 亚州成人在线电影| 欧美国产一区视频在线观看| 欧美日免费三级在线| 国内精品写真在线观看| 亚洲一区二区三区三| 久久久精品国产99久久精品芒果| 欧美少妇xxx| 成人av先锋影音| 热久久国产精品| 亚洲精品久久久久久国产精华液| 久久五月婷婷丁香社区| 欧美日韩一区视频| 色综合久久六月婷婷中文字幕| 麻豆久久久久久| 亚洲国产精品麻豆| 亚洲欧美另类图片小说| 久久精品日韩一区二区三区| 欧美日韩不卡在线| 日本韩国一区二区| 成人午夜免费av| 国产乱妇无码大片在线观看| 日本在线不卡一区| 亚洲影院理伦片| 亚洲欧洲一区二区在线播放| 国产视频在线观看一区二区三区 | 99视频国产精品| 国产乱人伦精品一区二区在线观看| 婷婷丁香激情综合| 玉米视频成人免费看| 最新日韩av在线| 国产精品女同互慰在线看| 久久婷婷色综合| 久久综合精品国产一区二区三区| 91精品国产麻豆| 欧美一区二区美女| 欧美三级视频在线| 欧美日韩国产综合视频在线观看| av不卡一区二区三区| 成人av动漫在线| 91免费看`日韩一区二区| www.亚洲免费av| 波波电影院一区二区三区| 国产精品亚洲专一区二区三区| 久久国产精品99久久人人澡| 麻豆中文一区二区| 九一久久久久久| 国产乱码精品一区二区三区忘忧草 | 青娱乐精品视频在线| 午夜精品影院在线观看| 丝袜亚洲另类欧美综合| 日本aⅴ亚洲精品中文乱码| 欧美aⅴ一区二区三区视频| 美女看a上一区| 国产一区二区三区高清播放| 国产真实精品久久二三区| 国产呦萝稀缺另类资源| 懂色av噜噜一区二区三区av| 成人sese在线| 欧美主播一区二区三区| 欧美日韩精品专区| 精品久久久久久最新网址| 久久精品人人做人人综合| 亚洲视频一区在线观看| 亚洲一区二区三区国产| 老司机一区二区| 国产乱码精品一区二区三区av| 成人国产电影网| 在线观看亚洲成人| 精品免费日韩av| 亚洲精品少妇30p| 蜜桃精品视频在线| 成人av电影在线观看| 欧美日韩国产片| 久久久久久99精品| 一区二区三区日本| 国内精品伊人久久久久av一坑 | 日韩欧美电影在线| 国产精品久久久久久久久免费丝袜| 亚洲精品综合在线| 久久69国产一区二区蜜臀| 成人av小说网| 日韩欧美一区二区免费| 国产精品不卡在线观看| 日本成人在线一区| av电影在线观看一区| 日韩欧美国产高清| 亚洲精品午夜久久久| 久久国产夜色精品鲁鲁99| 99在线精品一区二区三区| 日韩精品一区二区三区视频| 亚洲男人天堂av| 国产伦精品一区二区三区免费| 色琪琪一区二区三区亚洲区| 国产亚洲成av人在线观看导航 | 欧美日韩卡一卡二| 国产精品久久毛片a| 久久精品国产色蜜蜜麻豆| 色丁香久综合在线久综合在线观看| 欧美精品一区二区精品网| 亚洲va中文字幕| 色婷婷av一区二区三区软件| 久久伊99综合婷婷久久伊| 无吗不卡中文字幕| 99riav一区二区三区| 久久精品一区四区| 奇米影视一区二区三区小说| 欧美午夜视频网站| 国产精品国产三级国产aⅴ中文 | 欧美激情资源网| 久久91精品国产91久久小草| 91精品国产丝袜白色高跟鞋| 亚洲一区二区三区在线播放| av网站一区二区三区| 国产精品久久久一区麻豆最新章节| 蜜臀久久久久久久| 在线综合视频播放| 五月天婷婷综合| 6080午夜不卡| 香蕉影视欧美成人| 欧美另类高清zo欧美| 亚洲123区在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品久久久久一区二区三区共| 精品一区二区三区免费观看| 日韩三区在线观看|