查看: 1622|回复: 0
打印 上一主题 下一主题

双机通信(握手)

[复制链接]
跳转到指定楼层
沙发
发表于 2015-4-15 13:31:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


程序说明:
  甲发送,乙接收 甲先发送AA给乙 ,乙接收AA后,向甲回答BB。甲收到BB后(甲乙两机握手)就把P1口的状态发送给乙机,之后向乙机发送结束符FF。乙收到FF后,根据甲机P2口的状态点亮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{
     while(!RI);//等待接收中断置位
         RI=0;                //中断清零
     }

        while((SBUF^0XAA)!=0);/*此句可以改为while(SBUF!=0XAA);*/ //等待接收甲发送的AAH

        do{                          
         SBUF=0XBB;        //向甲发送BBH
           while(!TI);
         TI=0;
         while(!RI);
         RI=0;
         P2=SBUF;
         while(!RI);
         RI=0;
     }
    while((SBUF^0XFF)!=0);/*此句可以改为while(SBUF!=0XFF);*/
                 
     SBUF=0xFF;
           while(!TI);
         TI=0;
         }
}
       
/********************************************************************
                              结束
*********************************************************************/




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入中科因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表