2013-04-29
已有 1728 次阅读2013-4-29 21:02
#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; } }