1. 怎樣利用51單片機讀寫SD卡
單片機讀寫SD卡現在常用的是採用沁恆出產的CH375晶元搭建一個讀寫模塊,利用沁恆提供的庫函數實現讀寫功能,我上個月剛用CH375和vs1003做了一個MP3,有興趣的話繼續討論
2. 51單片機讀寫SD卡數據
為何不把代碼貼出來?你確信你的代碼是正確的?
為何不把原理圖給出來?你確定你的硬體也是沒問題嗎?
既然你的軟體和硬體都沒問題,那我想應該就是SD卡壞了,還是壞的很靈異那種。
3. 最近要做一個51單片機SD卡的讀寫用12864顯示!哪位大神能說下原理,怎麼才能把SD卡的東西顯示到12864上!
本SD卡讀寫系統中的介面電路採用的STCl2C5A60S2單片機控制,並通過軟體編程實現SPI模式的數據傳輸(包括串列時鍾、數據的輸入和輸出)。在SPI模式下。單片機與SD卡的連接主要有四根線(包括時鍾線,兩根數據傳輸線和一根片選線),
通常,SD卡有兩種匯流排模式,即SD匯流排模式和SPI匯流排模式。其中SD匯流排模式採用四條數據線並行傳輸數據,數據傳輸速率高,但是傳輸協議復雜,只有少數單片機才提供有此介面,而用軟體方法模擬SD匯流排又比較繁瑣,會降低SD卡的數據傳輸速率;而SPI匯流排模式只有一條數據傳輸線。傳輸協議簡單,易於實現,雖然數據傳輸速率較低,但絕大多數中高檔單片機都提供有SPI匯流排,同時由於其易於用軟體方法來模擬。因此,本設計採用SPI匯流排模式。
SPI匯流排技術是MOTOROIA公司推出的一種同步串列匯流排介面,是目前單片機應用系統中最常用的幾種串列擴展介面之一。 SPI匯流排主要通過三根線進行數據傳輸,包括同步時鍾線SCK、主機輸入/從機輸出數據線MISO、主機輸出/從機輸人數據線MOSI。另外,它還有一條低電平有效的從機片選線CS,片選信號以及同步時鍾脈沖由主機提供。SPI匯流排模式的數據是以位元組為單位進行傳輸的,主機與SD卡的各種通信都由主機控制。
軟體設計
SD卡的初始化
SD卡從上電到對SD卡進行正確的讀寫操作,往往都需要一個上電初始化的過程。SD卡上電後,主機必須先向SD卡發送74個時鍾周期,以完成SD卡的上電過程。通常SD卡上電後會自動進入SD匯流排模式,並在SD匯流排模式下向SD卡發送復位命令(CMD0)。
SD卡的讀寫
SD卡的數據傳輸主要通過塊讀寫來實現。塊長度默認為512 KB。當RAM中已存放由模數轉換模塊傳來的512 KB數據時,單片機便向SD卡寫入此塊數據。塊讀取時,可發送命令CMDl7,接收到的應答信號為0x00。這樣就可以直接接收數據了,接收到的數據的第1個位元組為數據令牌0xfe,後面的為接收到的數據,當輸出口變為高電平時。表明讀取操作完成。
裝數據讀出以後,通過單片機處理,把結果在液晶上顯示。
4. 51單片機讀寫1G以上內存卡(不用模塊)
如果你純以直接物理地址訪問的話需要30根地址線。51本身提供的地址線16根,其餘的14根可以通過以下幾種方法得到:
1、由P1和P3直接提供,這樣的話就最多隻有2個IO可用,其餘作為地址線訪問內存。當然高位地址(大於64K)需要手動特殊處理比如訪問0003ffffH可以這樣操作:
MOV P3,#00H
MOV P1,#03H
MOV DPTR,#0FFFFH
MOVX A,@DPTR
2、擴展兩個8位口來提供高位地址,這樣在硬體上做些處理,可以節約一些IO口,這種方式軟體處理起來麻煩一些。這里就不做例子了。
5. 怎麼用51單片機在SD卡中用SPI模式寫出txt文件
那要用到FAT文件系統,光這個就夠你看的了。
傳統51跑不起來的,光是RAM就不夠,SD卡一個扇區就512個位元組。
如果用大RAM的51可以,比如C8051F之類,先實現底層的驅動,然後移植文件系統,比如FATFS,用他的f_write就可以了。
FATFS的資料比較多,先了解一下大概,其餘的自己去找:
http://blog.csdn.net/laorenshen/archive/2010/04/13/5480499.aspx
雖然那個FAT文件系統不是必須要學的,因為這個FATFS都幫你做了,但你還是有點心理准備為好,這東西沒點編程、單片機的經驗不是那麼好做的。