❶ 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速度低,刷这么大的屏有困难.