您现在的位置是:首页 > 电路图 > 电路图
AT45D041卡读写的c51程序
转载来源:电子技术应用-AET chinaaet.com 电子发烧友 elecfans.com2017-03-16
简介#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
#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=m>>1;
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;j<4;j++)
{
cardwrite(a[j]);
}
for(i=0;i<264;i++)
{
cardwrite(*p);
P++;
}
}
点击排行
