程序说明: 
  甲发送,乙接收 甲先发送AA给乙 ,乙接收AA后,向甲回答BB。甲收到BB后(甲乙两机握手)就把P1口的状态发送给乙机,之后向乙机发送结束符FF。乙收到FF后,根据甲机P1口的状态点亮LED。同时向甲机返回结束符FF,甲机收到结束符FF后停止发送。 
*********************************************************************/ 
#include<reg52.h>                 //库文件 
#define uchar unsigned char//宏定义无符号字符型 
#define uint unsigned int  //宏定义无符号整型 
/******************************************************************** 
                            延时函数 
*********************************************************************/ 
 
void delayms(uchar n) 
{ 
uchar m,s; 
for(m=n;m>0;m--) 
for(n=20;n>0;n--) 
for(s=248;s>0;s--); 
} 
 
/******************************************************************** 
                功能:串口初始化,波特率9600,方式1 
*********************************************************************/ 
 
void Init_Com(void) 
{ 
TMOD = 0x20; 
PCON = 0x00; 
SCON = 0x50; 
TH1 = 0xFd; 
TL1 = 0xFd; 
TR1 = 1; 
} 
/******************************************************************** 
                            主函数 
*********************************************************************/ 
void main() 
{ 
Init_Com();         //初始化 
delayms(40); //延时等待 
 
while(1) 
  { 
 
  do{ 
     SBUF=0Xaa;          //发送AAH 
           while(!TI); 
         TI=0; 
         while(!RI); 
         RI=0; 
     } 
 
        while((SBUF^0XBB)!=0);/*此句可以改为while(SBUF!=0XBB);*/ //等待接收乙发送的BBH 
                  
   do{                           //发送P1口状态 
     SBUF=P1; 
           while(!TI); 
         TI=0; 
         SBUF=0XFF; 
         while(!TI); 
         TI=0; 
         while(!RI); 
         RI=0; 
     } 
    while((SBUF^0XFF)!=0);/*此句可以改为while(SBUF!=0XFF);*/ 
  } 
} 
         
/******************************************************************** 
                              结束 
*********************************************************************/ 
 
 
 
 
 |