#include<reg52.h>
char ReceiveData[20];
char SendData[20];
char *ReceiveReceive,*ReceiveSend,*SendSend,*SendReceive;
void ReceWriteFile();
void ReceReadFile();
void SendWriteFile();
void ShouFa();
void main()
{
int i,j=0;
for(i=0;i<19;i++)
{
ReceiveData[i]=0;
SendData[i]=0;
}
TMOD=0x20;
TL1=0xF3;
TH1=0xF3;
SCON=0xDC;
PCON=0x80;
IE=0x98;
TR1=1;
ReceiveReceive=ReceiveData+1;
ReceiveSend=ReceiveData;
SendSend=SendData;
SendReceive=SendData+1;
while(1)
{
ReceWriteFile();
}
}
void ReceReadFile()
{
if(ReceiveReceive!=ReceiveSend)
{
*ReceiveReceive=SBUF;
ReceiveReceive++;
if(ReceiveReceive==ReceiveData+19)
ReceiveReceive=ReceiveReceive-19;
}
}
void ReceWriteFile()
{
TI=1;
if((ReceiveSend)!=ReceiveReceive&&(SendSend!=SendReceive))
{
*SendReceive=*(++ReceiveSend);
if(ReceiveSend==ReceiveData+19)
ReceiveSend=ReceiveSend-19;
SendReceive++;
if(SendReceive==SendData+19)
SendReceive=SendReceive-19;
}
}
void SendWriteFile()
{
if((SendSend+1)!=SendReceive)
{
SBUF=*(++SendSend);
if(SendSend==SendData+19)
SendSend=SendSend-19;
}
}
void ShouFa() interrupt 4 using 3
{
if(RI==1)
{
RI=0;
ReceReadFile();
}
if(TI==1)
{
SendWriteFile();
TI=0;
}
}