freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的u盤數(shù)據(jù)傳輸裝置設(shè)計論文(編輯修改稿)

2025-04-03 10:23 本頁面
 

【文章內(nèi)容簡介】 6 跳轉(zhuǎn)指令、廠商標(biāo)志和操作系 統(tǒng)版本號,接下來的從偏移 0x0B 開始的是一段描述能夠使可執(zhí)行引導(dǎo)代碼找到相關(guān)參數(shù)的消息,通常稱之為 BPB。最后是引導(dǎo)程序代碼以及扇區(qū)結(jié)束標(biāo)志。 BPB 中記錄了扇區(qū)大小、簇的扇區(qū)數(shù)、保留扇區(qū)數(shù)、 FAT 表大小和文件系統(tǒng)類型等重要參數(shù),用于文件的索引和定位計算。 軟件系統(tǒng)模塊 USB 讀寫器軟件由主模塊、 USB 模塊、 BULK 模塊、 FAT 模塊和中斷處理模塊組成。各模塊之間相互協(xié)調(diào)調(diào)用,共同完成對 U 盤文件的讀寫創(chuàng)建。 USB 模塊負(fù)責(zé)檢測 USB 設(shè)備的移入 /移出,對插入的設(shè)備進(jìn)行枚 舉,分配設(shè)備地址端點號,配置設(shè)備接口端點描述符,建立 BULK_ONLY 輸入 /輸出通道, BULK 模塊則在已建立的 BULK_ONLY 輸入 /輸出通道發(fā)送 CBW 數(shù)據(jù)包,并接收 CSW 數(shù)據(jù)包,通過 CBW 中嵌入的 CBWCB 信息確定對 U 盤讀 /寫操作的扇區(qū)位置和大小, FAT 模塊主要完成簇和扇區(qū)間的索引定位,即在 U 盤內(nèi)尋址,利用 BPB 中的參數(shù)計算給定扇區(qū)的所在簇以及進(jìn)入休眠狀態(tài),等待外部中斷喚醒。 中斷處理模塊是在中斷喚醒后根據(jù)中斷類型進(jìn)入不同功能子模塊的,也是整個軟件系統(tǒng)的核心部分。中斷模塊接收到 串口或并口數(shù)據(jù)后,根據(jù)內(nèi)部命令字要求進(jìn)行解析。 串口或并口數(shù)據(jù)接收流程如圖所示。 圖 12 UFI結(jié)構(gòu) 圖 13 命令與數(shù)據(jù)字結(jié)構(gòu) 七,總結(jié) 此次科研立項是我們從大學(xué)生活重要的一步。從最初的選題,開題到查資料、設(shè)計電路,編寫程序直到完成設(shè)計。其間,查找資料,老師指導(dǎo),與同學(xué)交流,反復(fù)修改電路和程序,每一個過程都是對自己能力的一次檢驗和充實。 通過這次實踐,我了解了單片機(jī)讀寫 U 盤的用途及工作原理,熟悉了單片機(jī)讀 寫 U 盤的設(shè)計步驟,鍛煉了工程設(shè)計實踐能力,培養(yǎng)了自己獨立設(shè)計能力。此次科研立項是對我專業(yè)知識和專業(yè)基礎(chǔ)知識一次實際檢驗和鞏固,同時也是我為未來的單片機(jī)和嵌入式開發(fā)與應(yīng)用的的一次熱身。 通過這次科研立項收獲很多,比如學(xué)會了查找相關(guān)資料相關(guān)標(biāo)準(zhǔn),分析數(shù)據(jù),提高了自己的電路設(shè)計和程序設(shè)計的能力,懂得了許多經(jīng)驗公式的獲得是前人不懈努力的結(jié)果。同時,仍有很多課題需要后來人去努力去完善。 但是這次科研立項也暴露出自己專業(yè)基礎(chǔ)的很多不足之處。比如缺乏綜合應(yīng)用專業(yè)知識的能力,對集成芯片的不了解等等。這次科研立 項是對自己到現(xiàn)在為止大學(xué)所學(xué)的一次大檢閱,使我明白自己知識還很淺薄,雖然大學(xué)生活已經(jīng)過了一大半,但是自己的求學(xué)之路還很長,以后更應(yīng)該在有限的大學(xué)生活學(xué)習(xí)中,努力的學(xué)習(xí)好專業(yè)文化知識和動手能力,同時也要提高自己各方面的綜合素質(zhì),努力使自己成為一個對社會有所貢獻(xiàn)的人。 參考文獻(xiàn): 【 1】《基于單片機(jī)的智能系統(tǒng)設(shè)計與實現(xiàn)》 沈紅衛(wèi)著,電子工業(yè)出版社 【 2】《單片機(jī)技術(shù)應(yīng)用》朱運利著,機(jī)械工業(yè)出版社 【 3】《 MCS51 單片機(jī)開發(fā)與應(yīng)用指南》孫永浩著 黑龍江科學(xué)技術(shù)出版社 【 4】《 EZUSB FX2 單片機(jī)原 理,編程及應(yīng)用》錢峰著,北京航空航天大學(xué)出版社 【 5】 CH375中文技術(shù)手冊 【 6】串口版 U盤讀寫模塊中文技術(shù)手冊 附錄: 以下 程序可以演示單片機(jī)以字節(jié)的方式讀寫 U盤,該程序?qū)崿F(xiàn)的功能是:打開 U盤中的一個文件 ,再新建一個文件 ,在 “ Note:這個程序是以字節(jié)為單位進(jìn)行 U盤文件讀寫的示例程序 ,首先從原文件中讀出前 20個字符 ,然后寫到本說明的后面:”然后從文件 20字節(jié)的數(shù)據(jù),寫入文件 。即可實現(xiàn)單片機(jī)以字節(jié)對 U盤讀和寫的功能。 include include include include define MAX_PATH_LEN 32 include unsigned char TempLength。 unsigned char idata TempBuffer[20]。 CMD_PARAM idata mCmdParam。 sbitLED_OUT = P0^4。 sbit p2_0=P2^0。 voidmDelaymS( unsigned char delay ) { unsigned char i, j, c。 for ( i = delay。 i != 0。 i ) { for ( j = 200。 j != 0。 j ) c += 3。 for ( j = 200。 j != 0。 j ) c += 3。 } } voidmSendByte( unsigned char c )/* 發(fā)送一個字節(jié)數(shù)據(jù)給 CH375模塊 */ { TI = 0。 SBUF = c。 while ( TI == 0 )。 } unsigned char mRecvByte( )/* 從 CH375模塊接收一個字節(jié)數(shù)據(jù) */ { unsigned char c。 while ( RI == 0 )。 c = SBUF。 RI = 0。 return( c )。 } unsigned char ExecCommand( unsigned char cmd, unsigned char len )/* 命令函數(shù) */ { unsigned char i, j, status。 mSendByte( SER_SYNC_CODE1 )。 mSendByte( SER_SYNC_CODE2 )。 mSendByte( cmd )。 mSendByte( len )。 RI = 0。 if ( len ) { for ( i = 0。 i != len。 i ++ ) mSendByte( [ i ] )。 } while ( 1 ) { status = mRecvByte()。 if ( status == ERR_SUCCESS ){ i = mRecvByte( )。 LED_OUT = 0。 if ( i ){ j = 0。 do { [ j ] = mRecvByte( )。 j ++。 } while ( i )。 } break。 } else if ( status == USB_INT_DISK_READ || status == USB_INT_DISK_WRITE || status == USB_INT_DISK_RETRY ) { break。 } else { if ( status == ERR_DISK_DISCON || status == ERR_USB_CONNECT ) mDelaymS( 100 )。 break。 } } return( status )。 } voidmStopIfError( unsigned char iError )/*錯誤檢測函數(shù) */ { unsigned char led。 if ( iError == ERR_SUCCESS ) return。 led=0。 while ( 1 ) { LED_OUT = ledamp。1。 /* LED閃爍 */ mDelaymS( 100 )。 led^=1。 } } main( ) { unsigned char i。 unsigned short count。 unsigned char *pStr。 mDelaymS( 500 )。 p2_0=0。 LED_OUT = 0。 mDelaymS( 100 )。 mDelaymS( 100 )。 LED_OUT = 1。 SCON = 0x50。 PCON = 0x80。 TMOD = 0x20。 TH1 = 0xE8。/* , 4800bps */ TR1 = 1。 while ( 1 ) /* 程序中使用查詢方式查詢模塊狀態(tài),和向模塊發(fā)送同步碼啟動操作,然后發(fā)送相關(guān)的命令 */ { while ( 1 ) { i = ExecCommand( CMD_QueryStatus, 0 )。 mStopIfError( i )。 if ( = DISK_CONNECT ) break。 mDelaymS( 100 )。 } mDelaymS( 500 )。 LED_OUT = 0。 for ( i = 0。 i 5。 i ++ ) { mDelaymS( 100 )。 if ( ExecCommand( CMD_DiskReady, 0 ) == ERR_SUCCESS ) break。 } /* 讀取原文件 */ strcpy( , \\ )。 i = ExecCommand( CMD_FileOpen, MAX_PATH_LEN )。 TempLength = 0。 if ( i == ERR_MISS_DIR || i == ERR_MISS_FILE ) /* 找不到文件或者出錯 */ { } else { mStopIfError( i )。 = 20。 i = ExecCommand( CMD_ByteRead, 1 )。 mStopIfError( i )。 TempLength = 。 memcpy( TempBuffer, , TempLength )。 = 0。 i = ExecCommand( CMD_FileClose, 1 )。 mStopIfError( i )。 /* 產(chǎn)生新文件 */ strcpy( , \ )。 i = ExecCommand( CMD_FileCreate, MAX_PATH_LEN )。 mStopIfError( i )。 pStr = Note:這個程序是以字節(jié)為單位進(jìn)行 U盤文件讀寫的示例程序 ,首先從原文件中讀出前 20個字符 ,然后寫到本說明的后面: 。 count = strlen( pStr )。 while ( count ) { if ( count sizeof( ) ) i = count。 else i = sizeof( )。 /* 數(shù)據(jù)較多 ,分多次寫入 */ count = i。 memcpy( , pStr, i )。 pStr += i。 = i。 i = ExecCommand( CMD_ByteWrite, 1+i )。/* 以字節(jié)為單位向文件寫入數(shù)據(jù) */ mStopIfError( i )。 } memcpy( , TempBuffer, TempLength )。 = TempLength。 /* 將原文件中的 20個字節(jié)的數(shù)據(jù)添加到新文件的末尾 */ i = ExecCommand( CMD_ByteWrite, 1+TempLength )。 mStopIfError( i )。 = 1。 i = ExecCommand( CMD_FileClose, 1 )。 /* 關(guān)閉文件 */ mStopIfError( i )。 p2_0=1。 LED_OUT = 1。 /* LED滅 */ /* 等待 U盤斷開 */ while ( 1 ) {
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1