#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^7;
sbit wela=P2^6;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit WE=P3^6;
sbit OE2=P3^7;
sbit LE=P3^5;
sbit BY1=P3^4;
uchar aa,bb,j;
void delay(uchar z);
void ad()
{
ST=0;
ST=1;
ST=0;
while(EOC==0)
aa=P1;
OE=1;
}
void xie()
{
uchar a,b;
for(a=0;a<128;a++)
for(b=0;b<255;b++)
{
OE2=1;
WE=1;
LE=0;
LE=1;
P0=b;
LE=0;
P2=a;
WE=0;
ad();
P0=aa;
//delay(1);
WE=1;
for(j=0;j<20;j++);
}
}
void du()
{
uchar a,b;
for(a=0;a<128;a++)
for(b=0;b<255;b++)
{
WE=1;
OE2=1;
LE=0;
LE=1;
P0=b;
LE=0;
P2=a;
OE2=0;
//delay(1);
bb=P0;
P0=bb;
for(j=0;j<35;j++);
}
}
void delay(uint z)
{
while(z--);
}
void main()
{
uint s;
dula=1;
wela=1;
P0=0X00;
dula=0;
wela=0;
P0=0XFF;
s=0;
while(1)
{
if(BY1==0)
{
delay(10);
if( BY1==0)
{
s++;
while(!BY1);
if(s==1)
{
OE=1;
xie();
}
if(s==2)
{
s=0;
while(1)
{
OE=0;
du();
}
}
}
}
}
}