91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AT89C52單片機的SD卡讀寫設計

電子設計 ? 來源:陳翠 ? 2019-02-16 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

設計方案

應用AT89C52讀寫SD卡有兩點需要注意。首先,需要尋找一個實現AT89C52 單片機與SD卡通訊的解決方案;其次,SD卡所能接受的邏輯電平與AT89C52提供的邏輯電平不匹配,需要解決電平匹配問題。

通訊模式

SD卡有兩個可選的通訊協議:SD模式和SPI模式。SD模式是SD卡標準的讀寫方式,但是在選用SD模式時,往往需要選擇帶有SD卡控制器接口MCU,或者必須加入額外的SD卡控制單元以支持SD卡的讀寫。然而,AT89C52 單片機沒有集成SD卡控制器接口,若選用SD模式通訊就無形中增加了產品的硬件成本。在SD卡數據讀寫時間要求不是很嚴格的情況下,選用SPI模式可以說是一種最佳的解決方案。因為在SPI模式下,通過四條線就可以完成所有的數據交換,并且目前市場上很多MCU都集成有現成的SPI接口電路,采用SPI模式對SD卡進行讀寫操作可大大簡化硬件電路的設計。

雖然AT89C52不帶SD卡硬件控制器,也沒有現成的SPI接口模塊,但是可以用軟件模擬出SPI總線時序。本文用SPI總線模式讀寫SD卡。

電平匹配

SD卡的邏輯電平相當于3.3V TTL電平標準,而控制芯片AT89C52的邏輯電平為5V CMOS電平標準。因此,它們之間不能直接相連,否則會有燒毀SD卡的可能。出于對安全工作的考慮,有必要解決電平匹配問題。

要解決這一問題,最根本的就是解決邏輯器件接口的電平兼容問題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應該大于接收電平器件識別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應該小于接收電平器件識別為低電平的最高電壓值。

一般來說,通用的電平轉換方案是采用類似SN74ALVC4245的專用電平轉換芯片,這類芯片不僅可以用作升壓和降壓,而且允許兩邊電源不同步。但是,這個方案代價相對昂貴,而且一般的專用電平轉換芯片都是同時轉換8路、16路或者更多路數的電平,相對本系統僅僅需要轉換3路來說是一種資源的浪費。

考慮到SD卡在SPI協議的工作模式下,通訊都是單向的,于是在單片機向SD卡傳輸數據時采用晶體管加上拉電阻法的方案,基本電路如圖1所示。而在SD卡向單片機傳輸數據時可以直接連接,因為它們之間的電平剛好滿足上述的電平兼容原則,既經濟又實用。

AT89C52單片機的SD卡讀寫設計

這個方案需要雙電源供電(一個5V電源、一個3.3V電源供電),3.3V電源可以用AMS1117穩壓管從5V電源穩壓獲取。

硬件接口設計

SD卡提供9Pin的引腳接口便于外圍電路對其進行操作,9Pin的引腳隨工作模式的不同有所差異。在SPI模式下,引腳1(DAT3)作為SPI片選線CS用,引腳2(CMD)用作SPI總線的數據輸出線MOSI,而引腳7(DAT0)為數據輸入線MISO,引腳5用作時鐘線(CLK)。除電源和地,保留引腳可懸空。

本文中控制SD卡的MCU是ATMEL公司生產的低電壓、高性能CMOS 8位 單片機AT89C52,內含8K字節的可反復擦寫的只讀程序存儲器和256字節的隨機存儲數據存儲器。由于AT89C52只有256字節的數據存儲器,而SD卡的數據寫入是以塊為單位,每塊為512字節,所以需要在單片機最小系統上增加一片RAM。本系統中RAM選用存儲器芯片HM62256,容量為32K。對RAM進行讀寫時,鎖存器把低8位地址鎖存,與P2口的8位地址數據構成16位地址空間,從而可使SD卡一次讀寫512字節的塊操作。系統硬件圖如圖2所示。

AT89C52單片機的SD卡讀寫設計

軟件設計

SPI工作模式

SD卡在上電初期自動進入SD總線模式,在此模式下向SD卡發送復位命令CMD0。如果SD卡在接收復位命令過程中CS低電平有效,則進入SPI模式,否則工作在SD總線模式。

對于不帶SPI串行總線接口的AT89C52 單片機 來說,用軟件來模擬SPI總線操作的具體做法是:將P1.5口(模擬CLK線)的初始狀態設置為1,而在允許接收后再置P1.5為0。這樣,MCU在輸出1位SCK時鐘的同時,將使接口芯片串行左移,從而輸出1位數據至AT89C52單片機的P1.7(模擬MISO線),此后再置P1.5為1,使單片機從P1.6(模擬MOSI線)輸出1位數據(先為高位)至串行接口芯片。至此,模擬1位數據輸入輸出便完成。此后再置P1.5為0,模擬下1位數據的輸入輸出,依此循環8次,即可完成1次通過SPI總線傳輸8位數據的操作。

本文的實現程序把SPI總線讀寫功能集成在一起,傳遞的val變量既是向SPI寫的數據,也是從SPI讀取的數據。具體程序如下:(程序是在Keil uVision2的編譯環境下編寫)

sbit CS=P3^5;

sbit CLK= P1^5;

sbit DataI=P1^7;

sbit DataO=P1^6;

#define SD_Disable() CS=1 //片選關

#define SD_Enable() CS=0 //片選開

unsigned char SPI_TransferByte(unsigned char val)

{

unsigned char BitCounter;

for(BitCounter=8; BiCounter!=0; BitCounter--)

{ CLK=0;

DataI=0; // write

if(val&0x80) DataI=1;

val<<=1;

CLK=1;

if(DataO)val|=1; // read

}

CLK=0;

return val;

}

&nb

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • AT89C52
    +關注

    關注

    10

    文章

    197

    瀏覽量

    70201
  • AT89C52單片機

    關注

    2

    文章

    28

    瀏覽量

    18711
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于AT89C52單片機SD讀寫設計

    當數據采集系統需要長時間地采集、記錄海量數據時,選擇SD作為存儲媒質是開發者們一個很好的選擇。在電能監測以及無功補償系統中,要連續記錄大量的電壓、電流、有功功率、無
    發表于 09-29 15:25 ?5510次閱讀
    基于<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機</b>的<b class='flag-5'>SD</b><b class='flag-5'>卡</b><b class='flag-5'>讀寫</b>設計

    [原創]基于AT89C52單片機SD讀寫設計

    SD標準的讀寫方式,但是在選用SD模式時,往往需要選擇帶有SD控制器接口的MCU,或者必須
    發表于 02-05 11:47

    基于AT89C52單片機SD讀寫設計

    基于AT89C52單片機SD讀寫設計來源:中國IT實驗室前言  長期以來,以Flash Memory為存儲體的
    發表于 08-18 10:49

    基于AT89S52SD讀寫系統

    基于AT89S52SD讀寫系統 本系統采用 MCS 251 架構的 AT89S52 單片機
    發表于 02-11 08:55 ?239次下載

    基于AT89C52單片機的步進電機控制系統設計

    基于AT89C52單片機的步進電機控制系統設計 摘 要: 提出了一個由AT89C52單片機控制
    發表于 04-20 09:31 ?418次下載

    基于AT89C52單片機的飛機副翼控制系統設計

    基于AT89C52單片機的飛機副翼控制系統設計
    發表于 12-17 17:13 ?74次下載
    基于<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機</b>的飛機副翼控制系統設計

    AT89C52單片機SD讀寫設計原理

      本文主要介紹了SD卡在電能監測及無功補償數據采集系統中的應用方案。   
    發表于 11-25 13:55 ?1567次閱讀
    <b class='flag-5'>AT89C52</b><b class='flag-5'>單片機</b>的<b class='flag-5'>SD</b><b class='flag-5'>卡</b><b class='flag-5'>讀寫</b>設計原理

    at89c52單片機引腳說明,AT89C52高性能8位單片機

    at89c52單片機引腳說明,AT89C52高性能8位單片機
    發表于 04-29 22:05 ?2.8w次閱讀
    <b class='flag-5'>at89c52</b><b class='flag-5'>單片機</b>引腳說明,<b class='flag-5'>AT89C52</b>高性能8位<b class='flag-5'>單片機</b>

    基于AT89C52單片機SD讀寫設計

    基于AT89C52單片機SD讀寫設計 前言   長期以來,以Flash Memory為存儲體的
    發表于 01-15 10:16 ?1831次閱讀
    基于<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機</b>的<b class='flag-5'>SD</b><b class='flag-5'>卡</b>的<b class='flag-5'>讀寫</b>設計

    AT89C52單片機2組8位左右控制LED移位

    AT89C52單片機2組8位左右控制LED移位
    發表于 12-08 17:16 ?4次下載

    使用AT89C52單片機進行最小系統的接口電路免費下載

    AT89C52是美國Atmel公司生產的低電壓、高性能CMOS 8位單片機,片內含8KB的可反復擦寫的程序存儲器和256B的隨機存取數據存儲器(RAM),器件采用Atmel公司的高密度、非易失性存儲
    發表于 06-12 17:46 ?13次下載
    使用<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機</b>進行最小系統的接口電路免費下載

    AT89C52單片機SD實現通訊的設計方案

    。然而,AT89C52單片機沒有集成SD控制器接口,若選用SD模式通訊就無形中增加了產品的硬件成本。在
    發表于 05-17 15:37 ?3352次閱讀
    <b class='flag-5'>AT89C52</b><b class='flag-5'>單片機</b>與<b class='flag-5'>SD</b><b class='flag-5'>卡</b>實現通訊的設計方案

    單片機AT89C52控制的智能小車的設計

    單片機AT89C52控制的智能小車的設計方法。
    發表于 05-27 11:26 ?82次下載

    基于AT89C52單片機+RC500讀卡器電路設計資料

    基于AT89C52單片機+RC500讀卡器電路設計資料
    發表于 10-25 17:27 ?4次下載

    AT89C52單片機實現喇叭驅動的設計

    AT89C52單片機實現喇叭驅動的設計
    發表于 11-23 17:06 ?53次下載
    <b class='flag-5'>AT89C52</b><b class='flag-5'>單片機</b>實現喇叭驅動的設計
    主站蜘蛛池模板: 日本三级全黄 | 高清视频免费 | 天天干天天干天天色 | 欧美性色欧美a在线播放 | 日日操日日爽 | 免费一级毛片无毒不卡 | 美女张开腿让男人桶爽 | 欧美一级视频高清片 | 日韩一级在线视频 | avtt亚洲一区中文字幕 | 99xxxx开心 | 华人永久免费视频 | 人人搞人人爱 | 欧美一级特黄aaaaaa在线看首页 | 免费大片a一级一级 | 日本sese | 亚洲激情都市 | 婷婷毛片| 69精品在线 | 国产免费播放一区二区三区 | 日韩免费一区 | 亚洲青青草原 | 欧美精品啪啪 | 四虎永久在线日韩精品观看 | 亚洲天天在线 | 999久久精品国产 | 淫性视频| a天堂中文在线官网 | 五月天激情综合网 | 日韩性插 | 亚洲丰满熟妇毛片在线播放 | 免费一级欧美片在线观看 | 免费在线看片网站 | 一级做a爱免费观看视频 | 欧美3d动漫网站 | 亚洲伊人电影 | 国产一级在线观看 | 天堂资源在线观看 | 手机看片1024欧美 | 亚洲午夜久久久久影院 | 1024你懂的国产日韩欧美 |