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

正文內(nèi)容

基于單片機(jī)的sd卡數(shù)據(jù)操作設(shè)計(jì)畢業(yè)設(shè)計(jì)論文(參考版)

2024-08-17 08:51本頁面
  

【正文】 }32。 //SD卡關(guān)閉片選 SD_spi_write(0xff)。 SD_spi_read()。j++) //將數(shù)據(jù)寫入到數(shù)據(jù)緩沖區(qū)中 { buffer[j]=SD_spi_read()。 //一直讀,當(dāng)讀到0xfe時(shí),說明后面的是512字節(jié)的數(shù)據(jù)了 for(j=0。 //讀塊失敗 } }while(temp!=0)。 //寫入CMD17 time++。//打開片選 ime=0。0x0000FF00)8)。0x00FF0000)16)。0xff000000)24)。 //CMD17的字節(jié)序列 addr=9。 unsigned char time,temp。//按照SD卡的操作時(shí)序在這里補(bǔ)8個(gè)時(shí)鐘return(0)。//等到SD卡不忙(數(shù)據(jù)被接受以后,SD卡要將這些數(shù)據(jù)寫入到自身的FLASH中,需要一個(gè)時(shí)間)//忙時(shí),讀回來的值為0x00,不忙時(shí),為0xffSD_CS=1。 return(WRITE_BLOCK_ERROR)。 //讀取返回值if((tempamp。 SD_spi_write(0xff)。i++) //將緩沖區(qū)中要寫入的512個(gè)字節(jié)寫入SD卡 { SD_spi_write(buffer[i])。//寫入開始字節(jié) 0xfe,后面就是要寫入的512個(gè)字節(jié)的數(shù)據(jù) for(i=0。i++) //這里要插入若干時(shí)鐘信號 { SD_spi_read()。 for(i=0。 //關(guān)閉片選 return(temp)。 time++。//打開SD卡片選time=0。0x0000ff00)8)。0x00ff0000)16)。0xff000000)24)。 //向SD卡中單個(gè)塊(512字節(jié),一個(gè)扇區(qū))寫入數(shù)據(jù),用CMD24 addr=9。 unsigned int i。 //按照SD卡的操作時(shí)序在這里補(bǔ)8個(gè)時(shí)鐘 return(0)。 //初始化完畢,將is_init設(shè)置為0,為了提高以后的數(shù)據(jù)傳輸速度 SD_CS=1。//CMD1寫入失敗 } }while(temp!=0)。 if(time==TRY_TIME) { SD_CS=1。 do { temp=SD_Write_Cmd(pcmd)。 //命令1的字節(jié)序列 SD_CS=0。//返回0,說明復(fù)位操作成功}/****************************************************************** 功能描述:初始化SD卡,使用CMD1 隸屬模塊:SD卡模塊 函數(shù)屬性:外部,供用戶調(diào)用 參數(shù)說明:無 返回說明:調(diào)用成功,返回0x00,否則返回INIT_CMD1_ERROR () ******************************************************************/unsigned char SD_Init() //初始化,使用CMD1(命令1){ unsigned char time,temp。 //關(guān)閉片選 SD_spi_write(0xff)。//CMD0寫入失敗 } }while(temp!=0x01)。 if(time==TRY_TIME) { SD_CS=1。 do { temp=SD_Write_Cmd(pcmd)。 //120個(gè)時(shí)鐘 } SD_CS=0。i0x0f。 //將is_init置為1 SD_CS=1。 unsigned char pcmd[] = {0x40,0x00,0x00,0x00,0x00,0x95}。 return(temp)。amp。//一直讀,直到讀到的不是0xff或超時(shí) time++。 SD_spi_write(pcmd[5])。 SD_spi_write(pcmd[3])。 SD_spi_write(pcmd[1])。 //提高兼容性,如果沒有這里,有些SD卡可能不支持 SD_CS=0。 SD_CS=1。 return (_dat)。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 _dat1=SD_SO。 SD_SCL=0。 SD_SCL=1。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 _dat3=SD_SO。 SD_SCL=0。 SD_SCL=1。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 _dat5=SD_SO。 SD_SCL=0。 SD_SCL=1。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 _dat7=SD_SO。 SD_SCL=0。 SD_SCL=1。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SI=_dat0。 SD_SCL=1。 SD_SCL=0。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SI=_dat2。 SD_SCL=1。 SD_SCL=0。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SI=_dat4。 SD_SCL=1。 SD_SCL=0。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SI=_dat6。 SD_SCL=1。 SD_SCL=0。/****************************************************************** 功能描述:IO模擬SPI,發(fā)送一個(gè)字節(jié) 隸屬模塊:SD卡模塊 函數(shù)屬性:內(nèi)部 參數(shù)說明:x是要發(fā)送的字節(jié) 返回說明:無返回 注:其中is_init為1時(shí),寫的速度放慢,初始化SD卡SPI速度不能太高 ******************************************************************/void SD_spi_write(unsigned char x) { _dat=x。sbit _dat1=_dat^1。sbit _dat3=_dat^3。sbit _dat5=_dat^5。sbit _dat7=_dat^7。還要向百忙之中抽時(shí)間對本文進(jìn)行審閱,評議和參與本人論文答辯的各位老師表示感謝!參考文獻(xiàn)[1] :[2] :[3] :[4] :[5] :[6] :[7] :[8] -電源器件分冊[M].北京:[9] (第三版).[10] (上).電子世界: 附 錄SD卡程序include include //公共函數(shù)頭文件bit is_init。最后,還要向所有關(guān)心和幫助過我的人致以最衷心的感謝!論文的工作是在我的導(dǎo)師陳錫華教授的悉心指導(dǎo)下完成的,陳教授嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我極大的幫助和影響。老師淵博的知識和豐富的經(jīng)驗(yàn)使我受益匪淺,此外,陳老師言傳身教,不僅使我開拓了視野,增加了知識,更重要的是使我系統(tǒng)的掌握了科學(xué)研究的方法和自己動手的能力。論文的研究工作是在許鳴宇老師的悉心指導(dǎo)下完成的。要解決這一問題,最根本的就是解決邏輯器件接口的電平兼容問題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識別為低電平的最高電壓值。設(shè)計(jì)用SPI總線模式讀寫SD卡。在SD卡數(shù)據(jù)讀寫時(shí)間要求不是很嚴(yán)格的情況下,選用SPI模式可以說是一種最佳的解決方案。首先,需要尋找一個(gè)實(shí)現(xiàn)單片機(jī)與SD卡通訊的解決方案:SD卡有兩個(gè)可選的通訊協(xié)議:SD模式和SPI模式SD模式是SD卡標(biāo)準(zhǔn)的讀寫方式,但是在選用SD模式時(shí),往往需要選擇帶有SD卡控制器接口的MCU,或者必須加入額外的SD卡控制單元以支持SD卡的讀寫。根據(jù)理論設(shè)計(jì),并用計(jì)算機(jī)編程進(jìn)行了模擬,制作出了實(shí)物并經(jīng)測試功能完全符合設(shè)計(jì)要求。具體見流程圖44所示。② 讀多塊l):發(fā)送命令CMD 17;2):接收R1響應(yīng);3):等待Data Tokens (Single Block Read:0xfe;4):接收一個(gè)Block(一般為5121個(gè)字節(jié));5):接收兩個(gè)字節(jié)CRC16碼;6):重復(fù)步驟3,繼續(xù)接收下一個(gè)數(shù)據(jù)包,直到接收所有數(shù)據(jù)包完成后,至步驟7繼續(xù);7):發(fā)送命令CMD12 ,數(shù)據(jù)傳輸結(jié)束;8):接收R1b響應(yīng)。讀SD卡的程序流程圖如圖43所示。② 寫多塊1):發(fā)送命令CMD25;2):接收R1b響應(yīng);3):發(fā)送Data Tokens (Single Block Write: 0xfe);4):發(fā)送一個(gè)block(一般為512個(gè)字節(jié);5):發(fā)送兩個(gè)字節(jié)CRC16碼;6):循環(huán)接收數(shù)據(jù),等待寫完成,直到寫完成接收到0xff;7):重復(fù)步驟3,繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)包,直到所有數(shù)據(jù)包發(fā)送完成,至步驟8繼續(xù);8):發(fā)送命令CMD12,數(shù)據(jù)傳輸結(jié)束;9):接受R1b相應(yīng)??梢姡x寫SD卡的操作都是在初始化后基于SD卡命令和響應(yīng)完成操作的,寫SD卡的程序流程圖如圖42所示。單塊寫入時(shí),命令為為CMD24,當(dāng)應(yīng)答為0時(shí)說明可以寫入數(shù)據(jù),大小為512字節(jié)。SPI總線模式支持單塊(CMD24)和多塊(CMD25)寫操作,多塊操作是指從指定位置開始寫下去,直到SD卡收到一個(gè)停止命令CMD12才停止。圖41 SD卡初始化流程圖 數(shù)據(jù)塊的讀寫完成SD卡的初始化之后即可進(jìn)行它的讀寫操作。主機(jī)還可以繼續(xù)通過CMD10讀取SD卡的CID寄存器,通過CMD16設(shè)置數(shù)據(jù)Block長度,通過CMD9讀取卡的CSD寄存器。 SD卡初始化對SD
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1