欢迎来到天天文库
浏览记录
ID:39557024
大小:86.00 KB
页数:18页
时间:2019-07-06
《对SD卡的读写程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。贴程序: /*------------------------------------- 1.本程序主要为了实现以下功能: 1)通过对SPI方式对SD卡进行读与写 2)简单的F
2、AT操作 3)对写入的数据进行打印 2.编写日期:09.10.13 3.版本号:V1.0 4.作者:andyluo ----------------------------------------*/#include //添加头文件#define uchar unsigned char//宏定义数据类型#define uint unsigned int/*-------------------------------------与指示灯有关的IO--------------------------------------*/sbit power=
3、P0^4;/*-------------------------------------与SD卡通信有关的IO---------------------------------------*/sbit SCL=P1^5;//时钟信号sbit CS=P1^6;//片选信号sbit SI=P1^7;//数据输入sbit SO=P3^3;//数据输出//错误码定义#define INIT_CMD0_ERROR 0X01#define INIT_CMD1_ERROR 0X02#define WRITE_BLOCK_ERROR 0X03#define READ_BLO
4、CK_ERROR 0X04/*--------------------------------------与通信和定时器相关的变量---------------------------------------- */uchar cn=0;/*--------------------------------------变量定义-----------------------------------------*/uchar is_init;//用于控制SPI的速度,通过为1与0进行选择uchar xdata pbuf[512];//定义512个数据缓冲区/*-----
5、---------------------------------函数名称:delay()函数作用:用于某些程序中的延时函数特点:无返回值,带入口参数-----------------------------------------*/void delay(uint k) {uint m,n;for(m=0;m<5;m++)for(n=0;n6、I写一个字节,其中is_init为1{uchar i;for(i=0;i<8;i++){SI=((x<7、)//{//temp+=(0x80>>i);//}temp=(temp<<1)+(uchar)SO;SCL=1;if(is_init)//放慢速度{delay(8);}}return(temp);}/*--------------------------------向SD卡写命令---------------------------------*/uchar write_cmd(uchar *pcmd)//pcmd为命令字{uchar temp,i,time=0;CS=1;spi_write(0XFF);CS=0;for(i=0;i<6;i++) //发送6个
6、I写一个字节,其中is_init为1{uchar i;for(i=0;i<8;i++){SI=((x<
7、)//{//temp+=(0x80>>i);//}temp=(temp<<1)+(uchar)SO;SCL=1;if(is_init)//放慢速度{delay(8);}}return(temp);}/*--------------------------------向SD卡写命令---------------------------------*/uchar write_cmd(uchar *pcmd)//pcmd为命令字{uchar temp,i,time=0;CS=1;spi_write(0XFF);CS=0;for(i=0;i<6;i++) //发送6个
此文档下载收益归作者所有