串口通信实现两个单片机之间简单数据数据收发

匿名 (未验证) 提交于 2019-12-03 00:22:01

使用两个单片机开发版,串口3.0与3.1交叉互接,两个开发版分别烧写串口接收,串口发送的单片机程序观察P0端口输出值的变化

============接收串口的单片机程序===========

#include <reg52.h>

#define uchar unsigned char




uchar recieve; //接收到的数据存放在该变量中


void delay(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);

}

void UART_init()
{

TH1 = 0xfd;
TL1 = 0xfd; //比特率9600
TR1 = 1; //启动T1定时器
SM0 = 0;
SM1 = 1; //串口工作方式1,10位异步,一位起始位,一位停止位,8位数据位
REN = 1; //串口允许接收
//开总中断
//串口中断打开

}

/*至此串口配置完成*/

void main()
{


{

recieve=SBUF; //将接收的数据传递给recieve


}
}




==================发送串口===================
#include <reg52.h>


#define uchar unsigned char



uchar num=1; //存放要发送的数据


/*void delay(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);

} */

//延时未使用

void UART_init()
{

TH1 = 0xfd;
TL1 = 0xfd; //比特率9600(与发送单片机保持相同比特率)
TR1 = 1; //启动T1定时器
SM0 = 0;
SM1 = 1; //串口工作方式1 10位异步
REN = 1; //串口允许接收
//开总中断
//串口中断打开
}
void main()
{
UART_init(); //串口初始化
while(1)
{
SBUF=num; //将要发送的数据传递给SBUF
while(!TI); //等待发送完成

num=num++; //num加1


}
}



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!