在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AT89C52單片機的SD卡讀寫設(shè)計

            基于AT89C52單片機的SD卡讀寫設(shè)計

            作者:武漢理工大學(xué)自動化學(xué)院 蘇義鑫 程 敏 武漢大學(xué) 何力 時間:2008-08-04 來源:中電網(wǎng) 收藏

              卡的初始化

            本文引用地址:http://www.biyoush.com/article/86566.htm

              對卡進行操作首先要對卡進行初始化,初始化的過程中設(shè)置SD卡工作在SPI模式,其流程圖如圖3所示。

             

              在復(fù)位成功之后可以通過CMD55和ACMD41判斷當(dāng)前電壓是否在工作范圍內(nèi)。主機還可以繼續(xù)通過CMD10讀取SD卡的CID寄存器,通過CMD16設(shè)置數(shù)據(jù)Block長度,通過CMD9讀取卡的CSD寄存器。從CSD寄存器中,主機可獲知卡容量,支持的命令集等重要參數(shù)。SD卡初始化的C語言程序如下:

              unsigned char SD_Init(void)

              { unsigned char retry,temp;

              unsigned char i;

              for (i=0;i<0x0f;i++)

              { SPI_TransferByte(0xff); //延遲74個以上的時鐘

              }

              SD_Enable(); //開片選

              SPI_TransferByte(SD_RESET); //發(fā)送復(fù)位命令

              SPI_TransferByte(0x00);

              SPI_TransferByte(0x00);

              SPI_TransferByte(0x00);

              SPI_TransferByte(0x00);

              SPI_TransferByte(0x95);

              SPI_TransferByte(0xff);

              SPI_TransferByte(0xff);

              retry=0;

              do{ temp=Write_Command_SD(SD_INIT,0);

              //發(fā)送初始化命令

              retry++;

              if(retry==100) //重試100次

              {SD_Disable(); //關(guān)片選

              return(INIT_CMD1_ERROR);

              //如果重試100次失敗返回錯誤號

              }

              }while(temp!=0);

              SD_Disable(); //關(guān)片選

              return(TRUE); //返回成功

              }

              數(shù)據(jù)塊的讀寫

              完成SD卡的初始化之后即可進行它的讀寫操作。SD卡的讀寫操作都是通過發(fā)送SD卡命令完成的。SPI總線模式支持單塊(CMD24)和多塊(CMD25)寫操作,多塊操作是指從指定位置開始寫下去,直到SD卡收到一個停止命令CMD12才停止。單塊寫操作的數(shù)據(jù)塊長度只能是512字節(jié)。單塊寫入時,命令為CMD24,當(dāng)應(yīng)答為0時說明可以寫入數(shù)據(jù),大小為512字節(jié)。SD卡對每個發(fā)送給自己的數(shù)據(jù)塊都通過一個應(yīng)答命令確認,它為1個字節(jié)長,當(dāng)?shù)?位為00101時,表明數(shù)據(jù)塊被正確寫入SD卡。

              在需要讀取SD卡中數(shù)據(jù)的時候,讀SD卡的命令字為CMD17,接收正確的第一個響應(yīng)命令字節(jié)為0xFE,隨后是512個字節(jié)的用戶數(shù)據(jù)塊,最后為2個字節(jié)的CRC驗證碼。

              可見,讀寫SD卡的操作都是在初始化后基于SD卡命令和響應(yīng)完成操作的,寫、讀SD卡的程序流程圖如圖4和圖5所示。

             

            結(jié)束語

              實驗結(jié)果表明使用12MHz的晶體振蕩器時,讀寫速度和功耗都基本令人滿意,可以應(yīng)用于對讀寫速度要求不高的情況下。本文詳細闡述了用對SD卡進行操作的過程,提出了一種不帶SD卡控制器,MCU讀寫SD卡的方法,實現(xiàn)了SD卡在電能監(jiān)測及無功補償數(shù)據(jù)采集系統(tǒng)中的用途。


            上一頁 1 2 下一頁

            關(guān)鍵詞: 單片機 AT89C52 存儲 SD

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉