#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
int m=0,n=0;
int kongzhi=0;
uchar idata buf[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //发送0-9的数据
sbit p2_2=P2^2;
sbit p2_0=P2^0;
sbit p2_1=P2^1;
sbit p1_0=P1^0;
void delay(uint z)
{
uchar j;
for(;z>0;z--)
for(j=12;j>0;j--);
}
void display(uchar i)
{
p2_1=kongzhi%2;
p2_0=(kongzhi+1)%2;
P0=buf[i];
delay(350);
kongzhi++;
}
void main()
{
uchar i,x,y,u;
uchar j=0;
//串行口初始化
if(p1_0==0)
{
TMOD=0X20;
TL1=0XFD;
TH1=0XFD;
PCON=0X00;
TR1=1;
SCON=0X50;
p2_2=1;
do{ //发送信号
p2_2=1;
SBUF=0XAA;
while(TI==0);
TI=0;
p2_2=0;
while(RI==0); //等待乙机回答
RI=0;
}while((SBUF^0XBB)!=0); //乙未准备好,继续联络
p2_2=1;
while(1)
{
for(j=0;j<100;j++)
{
m=j%10;
n=j/10;
x=m;
y=n; //m是个位,n是十位
for(i=0;i<2;i++)
{
if(i==0)
{
SBUF=buf[m];//发送一个数据
}
if(i==1)
{
SBUF=buf[n];
}
for(u=0;u<10;u++)
{
display(m);
delay(1);
display(n);
delay(1);}
while(TI==0);
TI=0;
}
delay(100);
}
}
}
if(p1_0==1)
{
TMOD=0X20;
TL1=0XFD;
TH1=0XFD;
PCON=0X00;
TR1=1;
SCON=0X50;
p2_2=1;
do{ //发送信号
p2_2=1;
SBUF=0XCC;
while(TI==0);
TI=0;
p2_2=0;
while(RI==0); //等待乙机回答
RI=0;
}while((SBUF^0XCC)!=0); //乙未准备好,继续联络
p2_2=1;
while(1)
{
for(j=0;j<100;j++)
{
m=j%10;
n=j/10;
x=m;
y=n; //m是个位,n是十位
for(i=0;i<2;i++)
{
if(i==0)
{
SBUF=buf[m];//发送一个数据
}
if(i==1)
{
SBUF=buf[n];
}
for(u=0;u<10;u++)
{
display(m);
delay(1);
display(n);
delay(1);}
while(TI==0);
TI=0;
}
delay(100);
}
}
}
}