单片机读写SD卡教程.doc

单片机读写SD卡教程.doc

ID:52677872

大小:191.00 KB

页数:8页

时间:2020-03-29

单片机读写SD卡教程.doc_第1页
单片机读写SD卡教程.doc_第2页
单片机读写SD卡教程.doc_第3页
单片机读写SD卡教程.doc_第4页
单片机读写SD卡教程.doc_第5页
资源描述:

《单片机读写SD卡教程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、点这郑重声明:本实验并不是对所有SD卡都能成功运行第一步:打开winhex软件,用读卡器读SD卡,在winhex中查看SD卡点击查找(ctrl+F)输入FAT(找到DBR处)发现DBR起始于0x11200扇区地址,它必是512整数倍,因为一个扇区含512BYTE,所以在程序中读一个扇区时一定要是512整数倍,否则会出错。11200地址对应的值是0xEB,本程序读一下这个地址的值看看是否正确。注意有的winhex编址是十进制看看程序吧#include#defineucharunsignedcha

2、r#defineuintunsignedint//=============================================================//定义SD卡需要的4根信号线sbitSD_CLK=P1^1;sbitSD_DI=P1^2;sbitSD_DO=P1^0;sbitSD_CS=P1^3;sbitBeep=P2^0;//用来调程序标志//===========================================================//==========

3、=================================================//定义512字节缓冲区,,89C52直接定义成unsignedcharDATA[80];,太大了RAM不够unsignedcharxdataDATA[512];voiddelay(unsignedintz){unsignedintx,y;for(x=z;x>0;x--);for(y=110;y>0;y--);}//==================================================

4、=========//写一字节到SD卡,模拟SPI总线方式voidSdWrite(unsignedcharn){unsignedchari;for(i=8;i;i--){SD_CLK=0;SD_DI=(n&0x80);n<<=1;SD_CLK=1;}SD_DI=1;}//===========================================================//从SD卡读一字节,模拟SPI总线方式unsignedcharSdRead(){unsignedcharn,i;for(i=

5、8;i;i--){SD_CLK=1;SD_CLK=0;n<<=1;if(SD_DO)n

6、=1;}returnn;}//============================================================//检测SD卡的响应unsignedcharSdResponse(){uchari=0,response=0;while(i<=8){response=SdRead();if(response==0x00)break;if(response==0x01)break;i++;}r

7、eturnresponse;}//================================================================//发命令到SD卡voidSdCommand(unsignedcharcommand,unsignedlongargument,unsignedcharCRC){SdWrite(command

8、0x40);/*SdWrite(((unsignedchar*)&argument)[0]);SdWrite(((unsignedchar*)&argument

9、)[1]);SdWrite(((unsignedchar*)&argument)[2]);SdWrite(((unsignedchar*)&argument)[3]);*/SdWrite(argument>>24);SdWrite(argument>>16);SdWrite(argument>>8);SdWrite(argument);SdWrite(CRC);}//================================================================//初始化SD卡u

10、nsignedcharSdInit(void){unsignedchari;unsignedcharresponse=0xFF;P3=0xff;SD_CS=1;for(i=0;i<=0xfe;i++)SdWrite(0xff);SD_CS=0;SdCommand(0x00,0,0x95);SD_DI=1;response=SdResponse();if(response!=0x01){

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。