在线等!!!求一个51单片机之间串口通信的程序,半双工的。希望给出程序实例

来源:百度知道 编辑:UC知道 时间:2024/05/12 03:30:22
A,B两片单片机收发引脚互联,互相可以传输数据,给出实例程序

两机之间需要建立握手信号,告知接受机发送机开始发送地位数据,接受机才开始接受数据。

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void uart_init()
{
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
PCON=0x00;
TR1=1;
SCON=0x50;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}

void main()
{
uart_init();

do
{
SBUF=0x01;
while(TI==0);
TI=0;

while(RI==0);
REN=0;
}
while(SBUF!=0x02) ;

while(1)
{
SBUF=0x07;
while(TI==0);
TI=0;
delay(500) ;
SBUF=0x00;
while(TI==0);
TI=0;
delay(500) ;
}

}

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void uart_init()
{
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
PCON=0x00;
TR1=1