AT93C56如何运用
#include <reg51.h>
#define u_char unsigned char
#define u_int unsigned int
sbit CS=P1^4;
sbit SK=P1^5;
sbit DI=P1^6;
sbit D=P1^7;
u_char xdata yangan=0x5e;
u_char data fanyangan;
/*void at93c56_ewen(void);
void at93c56_ewds(void);
u_char at93c56_read(u_char addr);
void at93c56_write(u_char addr,u_char mybyte);
void at93c56_erase(u_char addr);
void at93c56_wral(u_char mybyte);
void at93c56_eral(void);
*/
void at93c56_ewen(void)
{
u_char i,temp;
CS=0;SK=0;CS=1;DI=1;SK=1;SK=0;
temp=0x30;
for(i=0;i <8;i++)
{
DI=temp&0x80;
SK=1;SK=0;temp < <=1;
}
CS=0;
}
void at93c56_ewds(void)
{
u_char i,temp;
CS=0;SK=0;CS=1;DI=1;SK=1;SK=0;
temp=0x00;
for(i=0;i <8;i++)
{
DI=temp&0x80;
SK=1;SK=0;temp < <=1;
}
CS=0;
}
u_char at93c56_read(u_char addr)
{
u_char i,result;
CS=0;SK=0;CS=1;DI=1;SK=1;SK=0;
DI=1;SK=1;SK=0;DI=0;SK=1;SK=0;
for(i=0;i <8;i++)
{
DI=addr&0x80;
SK=1;SK=0;addr < <=1;
}
CS=0;D=1;CS=1;
SK=0;
while(!D)
{
SK=1;SK=0;
}
SK=1;SK=0;
result=0;
for(i=0;i <8;i++)
{
result < <=1;
result=result|D;
SK=1;SK=0;
}
CS=0;
return(result);
}
void at93c56_write(u_char addr,u_char mybyte)
{
u_char i;
at93c56_ewen();
CS=0;SK=0;CS=1;DI=1;SK=1;SK=0;
DI=0;SK=1;SK=0;DI=1;SK=1;SK=0;
for(i=0;i <8;i++)
{
DI=addr&0x80;
SK=1;SK=0;addr < <=1;
}
for(i=0;i <8;i++)
{
DI=mybyte&0x80;
SK=1;SK=0;mybyte < <=1;
}
CS=0;D=1;CS=1;
SK=0;
while(D)
{
SK=1;SK=0;
}
SK=0;CS=0;
at93c56_ewds();
}
void at93c56_erase(u_char addr)
{
u_char i;
at93c56_ewen();
CS=0;SK=0;CS=1;DI=1;SK=1;SK=0;
DI=1;SK=1;SK=0;DI=1;SK=1;SK=0;
for(i=0;i <8;i++)
{
DI=addr&0x80;
SK=1;SK=0;addr < <=1;
}
CS=0;D=1;CS=1;
SK=0;
while(D)
{
SK=1;SK=0;
}
SK=0;CS=0;
at93c56_ewds();
}
void at93c56_wral(u_char mybyte)
{
u_char i,temp;
at93c56_ewen();
CS=0;SK=0;CS=1;DI=1;SK=1;SK=0;
temp=0x10;
for(i=0;i <8;i++)
{
DI=temp&0x80;
SK=1;SK=0;temp < <=1;
}
for(i=0;i <8;i++)
{
DI=mybyte&0x80;
SK=1;SK=0;mybyte < <=1;
}
CS=0;D=1;CS=1;
SK=0;
while(D)
{
SK=1;SK=0;
}
SK=0;CS=0;
at93c56_ewds();
}
void at93c56_eral(void)
{
u_char i,temp;
at93c56_ewen();
CS=0;SK=0;CS=1;DI=1;SK=1;SK=0;
temp=0;
for(i=0;i <8;i++)
{
DI=temp&0x80;
SK=1;SK=0;temp < <=1;
}
CS=0;D=1;CS=1;
SK=0;
while(D)
{
SK=1;SK=0;
}
SK=0;CS=0;
at93c56_ewds();
}
void main()
{
//at93c56_eral();
at93c56_erase(0x05);
// at93c56_wral(10) ;
at93c56_write(0x05,01);
fanyangan=at93c56_read(0x05);
while(1);
}
有问题
f 麻烦大家看一下
怎么才能那个用好外部存储器
用C语言改怎么写?
发表时间:2007年4月29日14:17:33