程序说明:
甲发送,乙接收 甲先发送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;
}
}
/********************************************************************
结束
*********************************************************************/
|