#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;
}
//=========