c51串口自收发程序框架
时间: 2023-09-16 20:08:53 浏览: 66
以下是C51单片机串口自收发程序框架:
```
#include <reg51.h>
#define FOSC 11059200UL //指定单片机晶振频率
#define BAUD 9600 //指定波特率
#define AUX (FOSC/BAUD/12/16-1) //计算定时器初值
void init_uart() //初始化串口
{
TMOD |= 0x20; //定时器1工作在模式2,自动重载模式
TH1 = AUX; //初始化定时器1计数初值
TL1 = AUX;
SCON = 0x50; //串口工作在模式1
TR1 = 1; //启动定时器1
ES = 1; //开启串口中断
EA = 1; //开启总中断
}
void send_data(unsigned char dat) //串口发送数据函数
{
SBUF = dat; //将数据存放到串口缓存寄存器中
while(!TI); //等待发送完成
TI = 0; //清除发送完成标志
}
unsigned char receive_data() //串口接收数据函数
{
while(!RI); //等待接收完成
RI = 0; //清除接收完成标志
return SBUF; //返回接收到的数据
}
void uart_interrupt() interrupt 4 //串口中断函数
{
if(RI) //如果是接收中断
{
unsigned char dat = receive_data(); //获取接收到的数据
//处理接收到的数据
}
if(TI) //如果是发送中断
{
TI = 0; //清除发送完成标志
//处理发送完成事件
}
}
void main()
{
init_uart(); //初始化串口
while(1)
{
//主程序循环
}
}
```
以上是一个基本的C51单片机串口自收发程序框架,您可以根据自己的需要进行修改和完善。
阅读全文