❶ 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口,這種方式軟體處理起來麻煩一些。這里就不做例子了。
❷ 怎麼用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都幫你做了,但你還是有點心理准備為好,這東西沒點編程、單片機的經驗不是那麼好做的。
❸ 單片機怎麼向sd卡里寫數據啊
什麼單片機??SD卡支持SD和SPI讀寫模式,如果單片機有SDIO或者SPI介面的話可以讀寫,詳細的可以到搜你用的這款單片機的SD卡讀寫常式,如果不支持這兩個介面的話建議使用SD卡讀寫模塊,購買的SD卡讀寫模塊基本上都會附帶常式的。
❹ 單片機和sd卡或U盤通信的問題
SD卡是SPI匯流排的,所以單片機讀取SD卡的內容,需要通過SPI匯流排介面去驅動,網上已有很多例子可參考,如果你單片機內置SPI控制器,那就直接用該控制器去訪問SD卡即可,要是沒有,則需要模擬SPI匯流排的時序,去控制SD卡。
上面所提到的所謂控制,其實是讀寫SD卡內部的寄存器,包括控制的,狀態的,還有存放數據的等等。
而U盤是在完成任意讀寫SD卡的基礎上,再學習USB通信協議中的海量存儲類而實現的,對於初學者來說,難度較大,如果你只是兩選一,那你選擇做SD卡的吧,不過此種單純的SD卡讀寫,是不帶文件系統的,其上面的數據無法為windows等操作系統所識別。
可以用AT89C51或52或者AT89S51/52等51系列的單片機,模擬時序去控制SD卡,因為普通的51單片機沒有內置SPI匯流排控制器。
❺ 初學單片機,51單片機讀sd卡顯示在2.4寸液晶屏上,出現圖片中的問題,不知道怎麼解決,求高人指點,謝謝
貌似應當在一個子程序中先填滿一屏內存,然後切換顯示內存指針會好一些.你這是在動態寫顯存,但是由於速度主頻都不夠,被更高級的中端搶走了寄存器.看看似乎很有規律.
最好選擇屏幕帶有足夠內存的顯示器.51速度低,刷這么大的屏有困難.