工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

AT45D041卡读写的c51程序

作者:dolphin 时间:2011-04-21

#include "stdio.h"
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
void cardread();
void cardwrite(uchar *p);
sbit card_reset=P2^0;
sbit card_cs=P2^1;
sbit card_busy=P2^2;
sbit card_sck=P2^3;
sbit card_so=P2^4;
sbit card_si=P2^5;
sbit card_interrupt=P2^6;
uchar *xsl;
uint total;
void main(void)
{
while(1)
if(card_interrupt) //有卡
{
uchar test;
card_reset=1; //初始化IC卡
card_cs=1;
card_busy=1;
card_si=1;
card_so=1;
cardwrite_page(1,"畅为");
test=cardread(1);


}
}
/****************************************************
*函数原型:cardread() 2002.8.29 *
*功 能:从AT45D041卡读入数据 *
* *
* *
****************************************************/

void cardread(void)
{
int a;
}
/****************************************************
*函数原型:void cardwrite(void) 2002.8.29 *
*功 能:写一个字节数据到AT45D041 *
*说 明: *
* *
****************************************************/

void cardwrite(uchar *p)
{
uint i;
uchar shuju,m;
card_cs=0;
m=0x80;
for(i=0;i=7;i++) //发送一个字节
{
card_sck=0;
shuju=(*p)&m;
m=m1;
card_si=shuju;
card_sck=1;
}
}
/****************************************************
*函数原型:void cardwrite_page(void) 2002.8.29 *
*功 能:写一页数据到AT45D041 *
*说 明:一页为264个字节 *
* *
****************************************************/

void cardwrite_page(int pagenum,char *p)
{
uint i,j;
uchar a[j];
card_cs=0;
a[0]=0x82;

for(j=0;j4;j++)
{
cardwrite(a[j]);
}
for(i=0;i264;i++)
{
cardwrite(*p);
P++;
}

}



评论

技术专区