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都帮你做了,但你还是有点心理准备为好,这东西没点编程、单片机的经验不是那么好做的。