使用两个单片机开发版,串口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
}
文章来源: 串口通信实现两个单片机之间简单数据数据收发