#include <reg52.h>
sbit EECS = P2^0;
sbit EECLCK = P2^1;
sbit EEDATA = P2^2;
unsigned char data eecount,eetemp,eeval,wdata,dev_addr=0xa0;
unsigned char data c,d,flag;
unsigned int data u,eeadd,eeadd1,i,q;
void start(void)
{
EEDATA=1;
EECLCK=1;
EEDATA=0;
EECLCK=0;
}
void stop(void)
{
EEDATA=0;
EECLCK=1;
EEDATA=1;
EECLCK=0;
}
void add_data(void)
{
for(eecount=0;eecount<8;eecount++)
{
eetemp=(wdata&0x80);
if(eetemp==0)
EEDATA=0;
else
EEDATA=1;
EECLCK=1;
EECLCK=0;
wdata=wdata<<1;
}
EEDATA=1;
EECLCK=1;
EECLCK=0;
}
void eeread(void)
{
unsigned char data eread,rdata;
start();
wdata=dev_addr;
add_data();
wdata=eeadd1;
add_data();
wdata=eeadd;
add_data();
start();
wdata=(dev_addr | 0x01);
add_data();
EEDATA=1;
for(eread=0;eread<8;eread++)
{
EECLCK=1;
if(EEDATA==1)
rdata|=1;
else
rdata&=(0xfe);
if(eread != 7)
rdata<<=1;
EECLCK=0;
}
eeval=rdata;
EEDATA=1;
EECLCK=1;
EECLCK=0;
stop();
}
void eewrite(void)
{
start();
wdata=dev_addr;
add_data();
wdata=eeadd1;
add_data();
wdata=eeadd;
add_data();
wdata=eeval;
add_data();
stop();
for(u=0;u<300;u++);
}
void changeadd()
{
if(q == 256)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'b';while(!TI);TI = 0;
}
else if(q == 512)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'c';while(!TI);TI = 0;
}
else if(q == 768)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'd';while(!TI);TI = 0;
}
else if(q == 1024)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'e';while(!TI);TI = 0;
}
else if(q == 1280)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'f';while(!TI);TI = 0;
}
else if(q == 1536)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'g';while(!TI);TI = 0;
}
else if(q == 1792)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'h';while(!TI);TI = 0;
}
else if(q == 2048)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'i';while(!TI);TI = 0;
}
else if(q == 2304)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'j';while(!TI);TI = 0;
}
else if(q == 2560)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'k';while(!TI);TI = 0;
}
else if(q == 2816)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'l';while(!TI);TI = 0;
}
else if(q == 3072)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'm';while(!TI);TI = 0;
}
else if(q == 3328)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'n';while(!TI);TI = 0;
}
else if(q == 3584)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'o';while(!TI);TI = 0;
}
else if(q == 3840)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'p';while(!TI);TI = 0;
}
}
void main()
{
PCON=0x00;
TH1 = 0xfd;
TL1 = 0x00;
SCON=0x50;
TMOD=0x20;
TCON = 0x40;
PSW=0x00;
IP=0x02;
IE=0x92;
TH0=0xf2;
TL0=0x64;
TMOD=0x21;
P2 = 0x00;
TR0 = 1;
flag = 0;
c = 'A';
SBUF = 'R';while(!TI);TI = 0;
while(1)
{
if(flag == 1)
{
eeadd = 0;eeadd1 = 0;
for(q=0;q<4096;q++)
{
eeval = c;
eewrite();
eeadd++;
changeadd();
SBUF = '.';while(!TI);TI = 0;
}
flag = 0;
}
if(flag == 2)
{
eeadd = 0;eeadd1 = 0;
for(q=0;q<4096;q++)
{
eeread();
SBUF = eeval;while(!TI);TI = 0;
eeadd++;
changeadd();
}
flag = 0;
}
if(flag == 3)
{
eeadd = 200;
eeval = 'Z';
for(q=0;q<25;q++)
{
eewrite();
eeadd++;
}
eeadd1++;
}
}
}
void timer() interrupt 1 using 1
{
TR0=0;
TH0=0xf2;
TL0=0x64;
TR0=1;
}
void serial() interrupt 4 using 2
{
if(RI)
{
RI = 0;
d = SBUF;
if(d == 'W' || d == 'w')
flag = 1;
else if(d == 'R' || d == 'r')
flag = 2;
else if(d == 'P' || d == 'p')
{
flag = 3;eeadd1=0;
}
}
}
sbit EECS = P2^0;
sbit EECLCK = P2^1;
sbit EEDATA = P2^2;
unsigned char data eecount,eetemp,eeval,wdata,dev_addr=0xa0;
unsigned char data c,d,flag;
unsigned int data u,eeadd,eeadd1,i,q;
void start(void)
{
EEDATA=1;
EECLCK=1;
EEDATA=0;
EECLCK=0;
}
void stop(void)
{
EEDATA=0;
EECLCK=1;
EEDATA=1;
EECLCK=0;
}
void add_data(void)
{
for(eecount=0;eecount<8;eecount++)
{
eetemp=(wdata&0x80);
if(eetemp==0)
EEDATA=0;
else
EEDATA=1;
EECLCK=1;
EECLCK=0;
wdata=wdata<<1;
}
EEDATA=1;
EECLCK=1;
EECLCK=0;
}
void eeread(void)
{
unsigned char data eread,rdata;
start();
wdata=dev_addr;
add_data();
wdata=eeadd1;
add_data();
wdata=eeadd;
add_data();
start();
wdata=(dev_addr | 0x01);
add_data();
EEDATA=1;
for(eread=0;eread<8;eread++)
{
EECLCK=1;
if(EEDATA==1)
rdata|=1;
else
rdata&=(0xfe);
if(eread != 7)
rdata<<=1;
EECLCK=0;
}
eeval=rdata;
EEDATA=1;
EECLCK=1;
EECLCK=0;
stop();
}
void eewrite(void)
{
start();
wdata=dev_addr;
add_data();
wdata=eeadd1;
add_data();
wdata=eeadd;
add_data();
wdata=eeval;
add_data();
stop();
for(u=0;u<300;u++);
}
void changeadd()
{
if(q == 256)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'b';while(!TI);TI = 0;
}
else if(q == 512)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'c';while(!TI);TI = 0;
}
else if(q == 768)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'd';while(!TI);TI = 0;
}
else if(q == 1024)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'e';while(!TI);TI = 0;
}
else if(q == 1280)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'f';while(!TI);TI = 0;
}
else if(q == 1536)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'g';while(!TI);TI = 0;
}
else if(q == 1792)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'h';while(!TI);TI = 0;
}
else if(q == 2048)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'i';while(!TI);TI = 0;
}
else if(q == 2304)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'j';while(!TI);TI = 0;
}
else if(q == 2560)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'k';while(!TI);TI = 0;
}
else if(q == 2816)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'l';while(!TI);TI = 0;
}
else if(q == 3072)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'm';while(!TI);TI = 0;
}
else if(q == 3328)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'n';while(!TI);TI = 0;
}
else if(q == 3584)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'o';while(!TI);TI = 0;
}
else if(q == 3840)
{
c++;eeadd1++;eeadd = 0;
SBUF = 'p';while(!TI);TI = 0;
}
}
void main()
{
PCON=0x00;
TH1 = 0xfd;
TL1 = 0x00;
SCON=0x50;
TMOD=0x20;
TCON = 0x40;
PSW=0x00;
IP=0x02;
IE=0x92;
TH0=0xf2;
TL0=0x64;
TMOD=0x21;
P2 = 0x00;
TR0 = 1;
flag = 0;
c = 'A';
SBUF = 'R';while(!TI);TI = 0;
while(1)
{
if(flag == 1)
{
eeadd = 0;eeadd1 = 0;
for(q=0;q<4096;q++)
{
eeval = c;
eewrite();
eeadd++;
changeadd();
SBUF = '.';while(!TI);TI = 0;
}
flag = 0;
}
if(flag == 2)
{
eeadd = 0;eeadd1 = 0;
for(q=0;q<4096;q++)
{
eeread();
SBUF = eeval;while(!TI);TI = 0;
eeadd++;
changeadd();
}
flag = 0;
}
if(flag == 3)
{
eeadd = 200;
eeval = 'Z';
for(q=0;q<25;q++)
{
eewrite();
eeadd++;
}
eeadd1++;
}
}
}
void timer() interrupt 1 using 1
{
TR0=0;
TH0=0xf2;
TL0=0x64;
TR0=1;
}
void serial() interrupt 4 using 2
{
if(RI)
{
RI = 0;
d = SBUF;
if(d == 'W' || d == 'w')
flag = 1;
else if(d == 'R' || d == 'r')
flag = 2;
else if(d == 'P' || d == 'p')
{
flag = 3;eeadd1=0;
}
}
}
No comments:
Post a Comment