| 
 
| 当接收机确认发射机发送的字符55H后,接收机发送0AAH表示同意接收。但是红色部分 我单步调试时令SBUF=0x55 就是出不来这个循环,执行不了 SBUF=0XAA; 不知道哪里错了,望指点。 #include<reg51.h>
 unsigned int pf,i;
 unsigned char idata *buf;
 
 void delay()
 { unsigned char i,j;
 for(i=200;i>0;i--)
 for(j=500;j>0;j--);
 }
 void init()
 { P2=0x00;
 SCON=0XD0;
 PCON=0X00;
 TMOD=0X20;
 TH1=0Xf3;
 TL1=0Xf3;
 TR1=1;
 }
 void main()
 { init(); //初始化
 do{
 while(!RI);
 RI=0;
 }while(SBUF^0x55);
 SBUF=0XAA;
 while(!TI);
 TI=0;
 while(1)
 { pf=0; // 开始接收数据
 for(i=0;i<10;i++)
 { buf=SBUF;
 while(!RI);
 RI=0;
 pf+=buf;
 }
 while(!RI);
 if(SBUF^pf)
 {SBUF=0XEE;
 while(!TI);
 TI=0;
 }
 else
 { SBUF=0XDD;
 for(i=0;i<10;i++)
 { P2=buf;
 delay();
 }
 break;
 }
 
 }
 
 }
 | 
 |