SD卡读卡程序 C语言 IO模拟,单片机SD卡读卡器仿真+源程序+电路原理图

该博客介绍了如何使用C语言在单片机上模拟SPI总线,实现SD卡的读写操作。通过定义相关IO口,编写读写函数,以及初始化和检测SD卡响应的函数,实现了向SD卡写入数据块以及从SD卡读取数据块的功能。
摘要由CSDN通过智能技术生成

#include

#define F_OSC  11059200//晶振平率Hz

#define F_BAUD 9600

#define RELOAD 256-F_OSC/12/32/F_BAUD

#define CR 0x0D        //回车

//定义SD卡需要的4根信号线

sbit SD_CLK = P1^4;

sbit SD_DI  = P1^6;

sbit SD_DO  = P1^5;

sbit SD_CS  = P1^7;

unsigned char xdata DATA[512];

//定义512字节缓冲区,注意需要使用 xdata关键字

//===========================================================

//写一字节到SD卡,模拟SPI总线方式

void SdWrite(unsigned char n)

{

unsigned char i;

for(i=8;i;i--)

{

SD_CLK=0;

SD_DI=(n&0x80);

n<<=1;

SD_CLK=1;

}

SD_DI=1;

}

//===========================================================

//从SD卡读一字节,模拟SPI总线方式

unsigned char SdRead()

{

unsigned char n,i;

for(i=8;i;i--)

{

SD_CLK=0;

SD_CLK=1;

n<<=1;

if(SD_DO) n|=1;

}

return n;

}

//=========

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值