#include<reg51.h>
#include<absacc.h>
#define PA XBYTE[0xcfa0]
#define PB XBYTE[0xcfa1]
#define PC XBYTE[0xcfa2]
#define CTL8255 XBYTE[0xcfa3]
unsigned char table1[]={21,22,23,24,25,26,27,28,29,30};
unsigned char table2[]={0,0,0,0,0,0,0,0,0,0};
unsigned char LEDSEG[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X51,0X79,0X71};
unsigned char i=0,j=0,k=0;
unsigned char a;
void Delay(unsigned int u);
void send();
void recv();
void display();
void main()
{
TMOD=0X20;
TH1=TL1=249;
TR1=1;
SCON=0X50;
PCON=0X00;
IE=0X90;
CTL8255=0X80;
while(1)
{ send();
display();
}
}
void send()
{
a=table1[i++];
a=a/10*16+a%10;
SBUF=a;
Delay(50);
if(i==10)i=0;
}
void recv()
{
table2[j++]=SBUF;
if(j==10)j=0;
}
void display()
{if(j!=0)
{P1=table2[k++];
PB=0XFE;
PA=LEDSEG[a%16];
Delay(10);
PB=0xFD;
PA=LEDSEG[a/16];
Delay(1000);
if(k==10) k=0;
}
}
void ser() interrupt 4
{if(TI==1) TI=0;
if(RI==1)
{RI=0;recv();}
}
void Delay(unsigned int u)
{unsigned char i;
while(u--)
{for(i=0;i<125;i++);}
} |