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

正文內(nèi)容

基于單片機(jī)的sd卡數(shù)據(jù)操作設(shè)計(jì)畢業(yè)設(shè)計(jì)論文-閱讀頁(yè)

2024-08-25 08:51本頁(yè)面
  

【正文】 同學(xué)們真誠(chéng)的說(shuō)聲謝謝。論文的每一步進(jìn)展都傾注著老師的關(guān)懷、教導(dǎo)和幫助。在這里,向我的陳老師表示我由衷的謝意!與此同時(shí)也非常感謝我的同學(xué)在設(shè)計(jì)過(guò)程中給我的幫助和鼓勵(lì)。在此衷心感謝陳老師對(duì)我的關(guān)心和指導(dǎo)。 //在初始化的時(shí)候設(shè)置此變量為1,同步數(shù)據(jù)傳輸(SPI)會(huì)放慢unsigned char bdata _dat。sbit _dat6=_dat^6。sbit _dat4=_dat^4。sbit _dat2=_dat^2。sbit _dat0=_dat^0。 SD_SI=_dat7。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=0。 SD_SCL=1。 SD_SI=_dat5。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=0。 SD_SCL=1。 SD_SI=_dat3。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=0。 SD_SCL=1。 SD_SI=_dat1。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=0。 SD_SCL=1。}/****************************************************************** 功能描述:IO模擬SPI,讀取一個(gè)字節(jié) 隸屬模塊:SD卡模塊 函數(shù)屬性:內(nèi)部 參數(shù)說(shuō)明:無(wú) 返回說(shuō)明:返回讀到的字節(jié) ******************************************************************/unsigned char SD_spi_read() //SPI讀一個(gè)字節(jié){ SD_SO=1。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=1。 SD_SCL=0。 _dat6=SD_SO。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=1。 SD_SCL=0。 _dat4=SD_SO。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=1。 SD_SCL=0。 _dat2=SD_SO。 if(is_init) delay(DELAY_TIME)。 if(is_init) delay(DELAY_TIME)。 SD_SCL=1。 SD_SCL=0。 _dat0=SD_SO。}/****************************************************************** 功能描述:向SD卡寫命令 隸屬模塊:SD卡模塊 函數(shù)屬性:內(nèi)部 參數(shù)說(shuō)明:SD卡的命令是6個(gè)字節(jié),pcmd是指向命令字節(jié)序列的指針 返回說(shuō)明:命令寫入后,SD卡的回應(yīng)值,調(diào)用不成功,將返回0xff ******************************************************************/unsigned char SD_Write_Cmd(unsigned char *pcmd) //向SD卡寫命令,pcmd是命令字節(jié)序列的首地址{ unsigned char temp,time=0。 SD_spi_write(0xff)。 SD_spi_write(pcmd[0])。 SD_spi_write(pcmd[2])。 SD_spi_write(pcmd[4])。 do { temp = SD_spi_read()。 }while((temp==0xff)amp。(timeTRY_TIME))。}/****************************************************************** 功能描述:復(fù)位SD卡,用到CMD0,使用SD卡切換到SPI模式 隸屬模塊:SD卡模塊 函數(shù)屬性:外部,供用戶調(diào)用 參數(shù)說(shuō)明:無(wú) 返回說(shuō)明:調(diào)用成功,返回0x00,否則返回INIT_CMD0_ERROR () ******************************************************************/unsigned char SD_Reset()//SD卡復(fù)位,進(jìn)入SPI模式,使用CMD0(命令0){ unsigned char time,temp,i。 //命令0的字節(jié)序列 is_init=1。 //關(guān)閉片選 for(i=0。i++) //初始時(shí),首先要發(fā)送最少74個(gè)時(shí)鐘信號(hào),這是必須的?。?! { SD_spi_write(0xff)。 //打開(kāi)片選 time=0。//寫入CMD0 time++。 //關(guān)閉片選 return(INIT_CMD0_ERROR)。 SD_CS=1。 //按照SD卡的操作時(shí)序在這里補(bǔ)8個(gè)時(shí)鐘 return 0。 unsigned char pcmd[] = {0x41,0x00,0x00,0x00,0x00,0xff}。 //打開(kāi)片選 time=0。 time++。 //關(guān)閉片選 return(INIT_CMD1_ERROR)。 is_init=0。 //關(guān)閉片選 SD_spi_write(0xff)。 //返回0,說(shuō)明初始化操作成功} /**************************************************************************** 功能描述:將buffer指向的512個(gè)字節(jié)的數(shù)據(jù)寫入到SD卡的addr扇區(qū)中 隸屬模塊:SD卡模塊 函數(shù)屬性:外部,供用戶調(diào)用 參數(shù)說(shuō)明:addr:扇區(qū)地址 buffer:指向數(shù)據(jù)緩沖區(qū)的指針 返回說(shuō)明:調(diào)用成功,返回0x00,否則返回WRITE_BLOCK_ERROR () 注:SD卡初始化成功后,讀寫扇區(qū)時(shí),盡量將SPI速度提上來(lái),提高效率 ****************************************************************************/unsigned char SD_Write_Sector(unsigned long addr,unsigned char *buffer) //向SD卡中的 指定地址的扇區(qū)寫入512個(gè)字節(jié),使用CMD24(命令24){ unsigned char temp,time。 unsigned char pcmd[] = {0x58,0x00,0x00,0x00,0x00,0xff}。 //addr = addr * 512將塊地址(扇區(qū)地址)轉(zhuǎn)為字節(jié)地址 [這里就限制了SD卡的最大容量為4G] pcmd[1]=((addramp。 //將字節(jié)地址寫入到CMD24字節(jié)序列中pcmd[2]=((addramp。pcmd[3]=((addramp。SD_CS=0。do { temp=SD_Write_Cmd(pcmd)。 if(time==TRY_TIME) { SD_CS=1。 //命令寫入失敗 } }while(temp!=0)。i100。 } SD_spi_write(0xfe)。i512。 } SD_spi_write(0xff)。 //兩個(gè)字節(jié)的CRC校驗(yàn)碼,不用關(guān)心 temp=SD_spi_read()。0x1F)!=0x05) //如果返回值是 XXX00101說(shuō)明數(shù)據(jù)已經(jīng)被SD卡接受了 { SD_CS=1。 //寫塊數(shù)據(jù)失敗 } while(SD_spi_read()!=0xff)。 //關(guān)閉片選SD_spi_write(0xff)。 //返回0,說(shuō)明寫扇區(qū)操作成功} /**************************************************************************** 功能描述:讀取addr扇區(qū)的512個(gè)字節(jié)到buffer指向的數(shù)據(jù)緩沖區(qū) 隸屬模塊:SD卡模塊 函數(shù)屬性:外部,供用戶調(diào)用 參數(shù)說(shuō)明:addr:扇區(qū)地址 buffer:指向數(shù)據(jù)緩沖區(qū)的指針 返回說(shuō)明:調(diào)用成功,返回0x00,否則返回READ_BLOCK_ERROR () 注:SD卡初始化成功后,讀寫扇區(qū)時(shí),盡量將SPI速度提上來(lái),提高效率 ****************************************************************************/unsigned char SD_Read_Sector(unsigned long addr,unsigned char *buffer)//從SD卡的指定扇區(qū)中讀出512個(gè)字節(jié),使用CMD17(17號(hào)命令){ unsigned int j。 unsigned char pcmd[]={0x51,0x00,0x00,0x00,0x00,0xff}。 //addr=addr*512 將塊地址(扇區(qū)地址)轉(zhuǎn)為字節(jié)地址 pcmd[1]=((addramp。//將字節(jié)地址寫入到CMD17字節(jié)序列中 pcmd[2]=((addramp。 pcmd[3]=((addramp。 SD_CS=0。 do { temp=SD_Write_Cmd(pcmd)。 if(time==TRY_TIME) { return(READ_BLOCK_ERROR)。 while (SD_spi_read()!= 0xfe)。j512。 } SD_spi_read()。//讀取兩個(gè)字節(jié)的CRC校驗(yàn)碼,不用關(guān)心它們 SD_CS=1。//按照SD卡的操作時(shí)序在這里補(bǔ)8個(gè)時(shí)鐘 return
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1