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

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

?? ch375hmp.asm

?? USB 協(xié)議基礎(chǔ)及ch375 usb芯片
?? ASM
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
; /* 2004.06.05
; ****************************************
; **  Copyright  (C)  W.ch  1999-2004   **
; **  Web:  http://www.winchiphead.com  **
; ****************************************
; **  USB Host File Module      @CH375  **
; ****************************************
; */
; /* U盤(pán)文件讀寫(xiě)模塊, 連接方式: 并口+查詢 */
; /* MCS-51單片機(jī)ASM語(yǔ)言示例程序, 僅適用于V2.5及以上版本的模塊 */
; /* 因?yàn)槭褂肬盤(pán)文件讀寫(xiě)模塊而不是使用U盤(pán)文件級(jí)子程序庫(kù),所以占用較少的單片機(jī)資源,可以使用89C51單片機(jī)測(cè)試 */
; 
;$include	(REG51.INC)
$include	(..\CH375HM.INC)

;   電路連接方式
;   單片機(jī)    模塊
;    P0    =  D0-D7
;    RD    =  RD#
;    WR    =  WR#
;    ?     =  CS#   如果沒(méi)有外部RAM,那么CS#=P26,如果有超過(guò)16KB的外部RAM,那么CS#=P27 & ! P26 & ...,所以CS#的片選地址為BXXXH
;    P20   =  A0
;    P15   =  STA#
;    INT0  =  INT#  雖然連接到INT0,但是本程序只是查詢模塊的INT#的狀態(tài),所以可以用P1口等普通I/O引腳代替INT0

CH375HM_INDEX	XDATA	0BCF0H			;CH375模塊的索引端口的I/O地址
CH375HM_DATA	XDATA	0BDF1H			;CH375模塊的數(shù)據(jù)端口的I/O地址

CH375HM_INT		BIT		INT0			;假定CH375模塊的INT#引腳連接到單片機(jī)的INT0引腳
CH375HM_STA		BIT		P1.5			;假定CH375模塊的STA#引腳連接到單片機(jī)的P15引腳

LED_OUT			BIT		P1.4			;P1.4 低電平驅(qū)動(dòng)LED顯示,用于監(jiān)控演示程序的進(jìn)度

; 假定文件數(shù)據(jù)緩沖區(qū): ExtRAM: 0000H-7FFFH
DATA_BUF		XDATA	00000H			;外部RAM的文件數(shù)據(jù)緩沖區(qū),從該單元開(kāi)始的緩沖區(qū)長(zhǎng)度不小于一次讀寫(xiě)的數(shù)據(jù)長(zhǎng)度,最少為512字節(jié)

; 命令參數(shù)結(jié)構(gòu), 長(zhǎng)度為20到60字節(jié)
mCmdParam		DATA	20H				;默認(rèn)情況下該結(jié)構(gòu)將占用64字節(jié)的RAM,可以修改MAX_PATH_LEN常量,當(dāng)修改為32時(shí),只占用32字節(jié)的RAM,并口最大值62
SECTOR_COUNT	DATA	1DH				;文件占用扇區(qū)數(shù)
NEW_SIZE_HIGH	DATA	1EH				;文件長(zhǎng)度的高字節(jié)
NEW_SIZE_LOW	DATA	1FH				;文件長(zhǎng)度的低字節(jié)

				ORG		0000H
				LJMP	MAIN
;
; 程序數(shù)據(jù)起始地址
				ORG		0100H
STR_FILE_NAME1:	DB		'\C51\CH375HFT.C',00H	;文件名,該文件在C51子目錄下
STR_FILE_DATA:	DB		'Note: ',0DH,0AH
				DB      '原本是打算將/C51/CH375HFT.C文件中的小寫(xiě)字母轉(zhuǎn)成大寫(xiě)后寫(xiě)入新的文件,但是找不到這個(gè)文件',0DH,0AH,00H
STR_FILE_NAME2:	DB		'\雙擊我吧.TXT',00H		;新文件名,在根目錄下

; 從程序空間復(fù)制字符串到內(nèi)部RAM緩沖區(qū),源字符串必須以00H作為結(jié)束標(biāo)志,長(zhǎng)度不能超過(guò)255
; 入口:   DPTR 指向源字符串的起始地址, R0 目標(biāo)緩沖區(qū)的起始地址
; 出口:   R7 返回字符串的長(zhǎng)度(含字符串結(jié)束符00H)
; 使用:   DPTR, R0, R7
CopyString:		MOV		R7,#00H
CopyStringChar:	MOV		A,R7
				INC		R7
				MOVC	A,@A+DPTR
				MOV		@R0,A
				INC		R0
				JNZ		CopyStringChar		;不是字符串結(jié)束符00H,繼續(xù)復(fù)制
				RET
;
; 延時(shí)100毫秒,不精確
; 使用:   R6, R7
mDelay100mS:	MOV  	R7,#0C8H
mDelay100mS_1:	MOV  	R6,#0C8H
mDelay100mS_2:	NOP
				NOP
				NOP
				DJNZ 	R6,mDelay100mS_2
				DJNZ 	R7,mDelay100mS_1
				RET  	

; 執(zhí)行命令
; 輸入命令碼和輸入?yún)?shù)長(zhǎng)度,返回操作狀態(tài)碼,輸入?yún)?shù)和返回參數(shù)都在CMD_PARAM結(jié)構(gòu)中
; 入口:   R7 命令碼, R5 參數(shù)長(zhǎng)度, 對(duì)于讀寫(xiě)文件數(shù)據(jù)命令, DPTR 為外部RAM緩沖區(qū)起始地址
; 出口:   R7 狀態(tài)碼, 對(duì)于讀寫(xiě)文件數(shù)據(jù)命令, DPTR 為數(shù)據(jù)終止地址
; 使用:   R0, R4, R5, R6, R7
ExecCommand:	MOV     R6,DPH				;對(duì)于讀寫(xiě)文件數(shù)據(jù)命令,保存外部RAM緩沖區(qū)起始地址
				MOV     R4,DPL
				MOV  	DPTR,#CH375HM_INDEX
				CLR  	A
				MOVX 	@DPTR,A				;索引地址為0
				MOV  	DPTR,#CH375HM_DATA
				MOV  	A,R7
				MOVX 	@DPTR,A				;向索引地址0寫(xiě)入命令碼
;				MOV  	DPTR,#CH375HM_DATA
				MOV  	A,R5
				MOVX 	@DPTR,A				;向索引地址1寫(xiě)入后續(xù)參數(shù)的長(zhǎng)度
				JZ      ExecCommand_W0		;沒(méi)有參數(shù)
				MOV     R0,#mCmdParam;		;指向輸入?yún)?shù)的起始地址
;				MOV  	DPTR,#CH375HM_DATA
ExecCommand_WP:	MOV		A,@R0
				MOVX	@DPTR,A				;從索引地址2開(kāi)始,寫(xiě)入?yún)?shù)
				INC     R0
				DJNZ    R5,ExecCommand_WP
ExecCommand_W0:	CLR  	CH375HM_STA			;產(chǎn)生下降沿通知模塊,說(shuō)明命令包已經(jīng)寫(xiě)入,請(qǐng)求開(kāi)始執(zhí)行命令
ExecCommand_Wait:
				JB		CH375HM_INT,$		;等待模塊完成操作產(chǎn)生低電平中斷,并返回操作狀態(tài)
;最佳檢測(cè)方式是對(duì)模塊的INT#信號(hào)進(jìn)行下降沿邊沿檢測(cè)
				MOV  	DPTR,#CH375HM_INDEX
				MOV  	A,#03FH
				MOVX 	@DPTR,A				;寫(xiě)入索引地址63
				MOV  	DPTR,#CH375HM_DATA
				MOVX 	A,@DPTR				;從索引地址63讀取中斷狀態(tài)
				MOV		R7,A				;操作狀態(tài)碼
				SETB 	CH375HM_STA			;中斷應(yīng)答,取消來(lái)自模塊的中斷請(qǐng)求
;因?yàn)槟K在收到中斷應(yīng)答后3uS之內(nèi)才撤消中斷請(qǐng)求,所以,如果是查詢INT#信號(hào)的低電平,那么在發(fā)出中斷應(yīng)答后3uS之內(nèi)不應(yīng)該再查詢INT#信號(hào)的狀態(tài)
;但是由于51單片機(jī)較慢,下面的處理時(shí)間已經(jīng)超過(guò)3uS,所以不必另加延時(shí)等待模塊撤消中斷請(qǐng)求
				CJNE    R7,#ERR_SUCCESS,ExecCommand_J0	;不是操作成功的狀態(tài)碼
				MOV  	DPTR,#CH375HM_INDEX	;操作成功
				MOV		A,#01H
				MOVX 	@DPTR,A				;索引地址為1
				MOV  	DPTR,#CH375HM_DATA
				MOVX 	A,@DPTR				;從索引地址1讀取返回結(jié)果數(shù)據(jù)的長(zhǎng)度
				MOV  	R7,A
				JZ      ExecCommand_R0		;沒(méi)有結(jié)果數(shù)據(jù)
				MOV     R0,#mCmdParam;		;指向輸出參數(shù)的起始地址
				MOV		R5,#02H				;從索引地址2開(kāi)始,讀取結(jié)果
ExecCommand_RP:	MOV		DPTR,#CH375HM_INDEX
				MOV		A,R5
				MOVX	@DPTR,A				;索引地址
				INC		R5
				MOV  	DPTR,#CH375HM_DATA
				MOVX	A,@DPTR
				MOV		@R0,A
				INC		R0
				DJNZ 	R7,ExecCommand_RP
ExecCommand_R0:	LJMP	ExecCommand_Ret
ExecCommand_J0:	CJNE    R7,#USB_INT_DISK_READ,ExecCommand_J1
				MOV		R5,#00H				;正在從U盤(pán)讀數(shù)據(jù)塊,請(qǐng)求數(shù)據(jù)讀出
				MOV  	R7,#040H			;一次讀取64個(gè)字節(jié)
				MOV  	P2,#HIGH (CH375HM_DATA)
				MOV  	R0,#LOW (CH375HM_DATA)
				MOV     DPH,R6
				MOV     DPL,R4				;緩沖區(qū)地址
RD_SEC_BYTE:	PUSH	DPH
				PUSH	DPL
				MOV		DPTR,#CH375HM_INDEX
				MOV		A,R5
				MOVX	@DPTR,A				;索引地址
				POP		DPL
				POP		DPH
				MOVX	A,@R0				;依次輸入64字節(jié)的數(shù)據(jù)
				INC		R5
				MOVX    @DPTR,A				;讀取的數(shù)據(jù)保存到外部緩沖區(qū)
				INC     DPTR
				DJNZ    R7,RD_SEC_BYTE		;從索引地址0到63依次讀出64字節(jié)的數(shù)據(jù)
				MOV     P2,#0FFH
				MOV     R6,DPH
				MOV     R4,DPL
				CLR		CH375HM_STA			;產(chǎn)生下降沿通知模塊繼續(xù),說(shuō)明64字節(jié)數(shù)據(jù)已經(jīng)讀取完成
				LJMP    ExecCommand_Wait
ExecCommand_J1:	CJNE    R7,#USB_INT_DISK_WRITE,ExecCommand_J2
				MOV  	DPTR,#CH375HM_INDEX	;正在向U盤(pán)寫(xiě)數(shù)據(jù)塊,請(qǐng)求數(shù)據(jù)寫(xiě)入
				CLR		A
				MOVX 	@DPTR,A				;索引地址為0
				MOV  	R7,#040H			;一次寫(xiě)入64個(gè)字節(jié)
				MOV  	P2,#HIGH (CH375HM_DATA)
				MOV  	R0,#LOW (CH375HM_DATA)
				MOV     DPH,R6
				MOV     DPL,R4				;緩沖區(qū)地址
WR_SEC_BYTE:	MOVX    A,@DPTR				;寫(xiě)入的數(shù)據(jù)來(lái)自外部緩沖區(qū)
				INC     DPTR
				MOVX    @R0,A				;依次輸出64字節(jié)的數(shù)據(jù)
				DJNZ    R7,WR_SEC_BYTE		;向索引地址0到63依次寫(xiě)入64字節(jié)的數(shù)據(jù)
				MOV     P2,#0FFH
				MOV     R6,DPH
				MOV     R4,DPL
				CLR		CH375HM_STA			;產(chǎn)生下降沿通知模塊繼續(xù),說(shuō)明64字節(jié)數(shù)據(jù)已經(jīng)寫(xiě)入完成
				LJMP	ExecCommand_Wait
ExecCommand_J2:	CJNE    R7,#USB_INT_DISK_RETRY,ExecCommand_J3
				MOV  	DPTR,#CH375HM_INDEX	;讀寫(xiě)數(shù)據(jù)塊失敗重試,應(yīng)該向回修改緩沖區(qū)指針
				CLR		A
				MOVX 	@DPTR,A				;索引地址為0
				MOV		DPTR,#CH375HM_DATA
				MOVX	A,@DPTR				;大端模式下為回改指針字節(jié)數(shù)的高8位,如果是小端模式那么接收到的是回改指針字節(jié)數(shù)的低8位
				MOV		R7,A
				MOV  	DPTR,#CH375HM_INDEX
				MOV		A,#01H
				MOVX 	@DPTR,A				;索引地址為1
				MOV		DPTR,#CH375HM_DATA
				MOVX	A,@DPTR				;大端模式下為回改指針字節(jié)數(shù)的低8位,如果是小端模式那么接收到的是回改指針字節(jié)數(shù)的高8位
				CLR		C
				XCH		A,R4
				SUBB	A,R4
				MOV		R4,A				;這是大端模式下的回改指針
				MOV		A,R6
				SUBB	A,R7
				MOV		R6,A
				CLR		CH375HM_STA			;產(chǎn)生下降沿通知模塊繼續(xù),說(shuō)明重試狀態(tài)碼已經(jīng)處理完成
				LJMP	ExecCommand_Wait
ExecCommand_J3:								;R7為操作完成狀態(tài),操作出現(xiàn)錯(cuò)誤
				NOP							;等待模塊將INT#引腳恢復(fù)為高電平,撤消中斷
				NOP
ExecCommand_Ret:
;				JNB		CH375HM_INT,$		;等待模塊的中斷撤消
				MOV     DPH,R6				;對(duì)于讀寫(xiě)文件數(shù)據(jù)命令
				MOV     DPL,R4				;從DPTR返回新的緩沖區(qū)地址
				RET
; END OF ExecCommand

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合色综合久久| 亚洲一线二线三线视频| jizz一区二区| 首页亚洲欧美制服丝腿| 中文字幕欧美激情| 欧美精品一二三四| 91在线视频免费观看| 久久不见久久见免费视频7| 亚洲在线观看免费视频| 国产精品久久一级| 日韩欧美视频一区| 欧美日韩美少妇| 99久久久久久| 夫妻av一区二区| 激情综合一区二区三区| 天堂午夜影视日韩欧美一区二区| 国产精品乱码人人做人人爱| 精品国一区二区三区| 91精品国产色综合久久| 精品视频1区2区| 在线观看亚洲精品视频| 色悠悠久久综合| 91网址在线看| 成人av动漫在线| 成人性视频网站| 国产经典欧美精品| 精品亚洲欧美一区| 日一区二区三区| 亚洲高清免费在线| 一区二区三区加勒比av| 亚洲日本va午夜在线影院| 日本一区二区三区电影| 久久久一区二区三区| 精品国产123| www激情久久| 精品国产一区二区精华| 日韩欧美一级在线播放| 欧美一级xxx| 日韩欧美一区在线| 日韩丝袜美女视频| 欧美成人国产一区二区| 26uuuu精品一区二区| 久久美女艺术照精彩视频福利播放 | 精品少妇一区二区三区| 日韩色在线观看| 欧美白人最猛性xxxxx69交| 欧美xxxxx牲另类人与| 久久新电视剧免费观看| 国产婷婷一区二区| 国产精品国产三级国产普通话三级 | 久久爱www久久做| 国产在线视频精品一区| 大尺度一区二区| 91丨porny丨中文| 欧美午夜精品免费| 制服丝袜日韩国产| 精品成人在线观看| 国产片一区二区| 亚洲三级电影网站| 亚洲r级在线视频| 蓝色福利精品导航| 成a人片国产精品| 日本韩国视频一区二区| 91精品国产日韩91久久久久久| 精品国产伦一区二区三区免费| 国产拍揄自揄精品视频麻豆| 亚洲精品中文字幕乱码三区| 日韩国产精品久久久| 久草精品在线观看| k8久久久一区二区三区| 欧美日韩高清一区二区| 精品国产一区二区在线观看| 国产精品不卡视频| 亚洲高清免费在线| 国产美女在线精品| 色综合久久久久久久| 欧美一区二区人人喊爽| 国产欧美精品国产国产专区| 夜夜嗨av一区二区三区网页| 精品亚洲aⅴ乱码一区二区三区| 丁香亚洲综合激情啪啪综合| 欧美性生活一区| 国产欧美一区二区三区在线老狼| 亚洲综合偷拍欧美一区色| 久久99热这里只有精品| 91麻豆福利精品推荐| 欧美va亚洲va| 一区二区三区欧美在线观看| 精品一区二区三区蜜桃| 色综合久久中文字幕| 久久亚洲精品国产精品紫薇| 亚洲一区二区偷拍精品| 国产盗摄一区二区| 91麻豆精品国产91久久久更新时间| 国产日产欧产精品推荐色 | 日韩制服丝袜av| gogo大胆日本视频一区| 精品剧情v国产在线观看在线| 亚洲一区在线看| 成人午夜av电影| 欧美xfplay| 日韩精品亚洲一区二区三区免费| 国产成人aaa| 欧美电影免费观看高清完整版在线 | 99麻豆久久久国产精品免费| 欧美综合天天夜夜久久| 欧美国产欧美综合| 免费观看久久久4p| 国产精品拍天天在线| 日本不卡一二三区黄网| 色欧美乱欧美15图片| 久久久不卡网国产精品一区| 日韩av在线播放中文字幕| 在线免费精品视频| 中文字幕一区av| 成人综合在线观看| 久久先锋影音av鲁色资源| 免费看精品久久片| 制服丝袜一区二区三区| 天天操天天综合网| 欧美三级三级三级爽爽爽| 一区二区三区视频在线看| 99久久精品国产一区| 欧美国产乱子伦| 成人免费精品视频| 中文字幕成人av| 懂色av中文一区二区三区| 欧美激情在线看| 成人综合婷婷国产精品久久蜜臀| 国产婷婷一区二区| 国产成人福利片| 亚洲国产精品国自产拍av| 日韩国产高清在线| 欧美特级限制片免费在线观看| 久久精品这里都是精品| 激情欧美一区二区三区在线观看| 精品卡一卡二卡三卡四在线| 久久99热国产| 久久亚洲免费视频| 国产精品一区二区在线看| 久久久久久免费网| 激情六月婷婷久久| 久久久精品国产免费观看同学| 国产福利电影一区二区三区| 国产女主播一区| 91视频一区二区三区| 一区二区视频在线| 欧美日韩一区二区三区不卡 | 国产精品妹子av| 97精品久久久久中文字幕 | 久久www免费人成看片高清| 欧美mv和日韩mv国产网站| 精品一区二区免费| 中文av一区二区| 91久久精品网| 日韩电影在线免费| 久久久久亚洲综合| av不卡免费电影| 午夜久久久久久久久久一区二区| 欧美一卡2卡三卡4卡5免费| 国内欧美视频一区二区| 中文字幕一区在线| 在线日韩一区二区| 男女性色大片免费观看一区二区 | 国产精品无人区| 91免费视频网址| 日产国产高清一区二区三区 | 国产精品久久久久一区| 欧洲精品一区二区三区在线观看| 日韩电影一二三区| 国产清纯白嫩初高生在线观看91 | 欧美三级中文字幕| 精品在线观看视频| 国产精品久久久久影院老司| 欧美色视频在线观看| 韩国av一区二区三区| 亚洲美女淫视频| 精品精品国产高清一毛片一天堂| 99综合影院在线| 男男视频亚洲欧美| 亚洲人成亚洲人成在线观看图片| 欧美一级二级在线观看| 成人午夜大片免费观看| 午夜精品福利视频网站| 国产欧美日韩另类一区| 欧美日韩国产精选| 国产不卡免费视频| 婷婷成人综合网| 国产精品久久久99| 日韩欧美一级二级| 99久久国产综合精品麻豆| 青青草一区二区三区| 亚洲天堂免费看| 精品三级在线看| 欧美综合一区二区| 成人亚洲精品久久久久软件| 免费欧美日韩国产三级电影| 亚洲欧美韩国综合色| 久久综合九色综合欧美98| 欧美三区在线视频|