📄 uart.c
字号:
/********************************************************************
//模 块 名 : 串口通讯演示程序子函数
//创 建 者 : 杨 勇
日期 : 2007年4月29日 16:44
//修 改 者 :
日期 :
//功能描述 : 串口波特率为115200
//其他说明 : 22.1184MHz晶振
//芯片型号 : AT89S52
//配 置 :
//版 本 : V1.0
********************************************************************/
#include <reg52.h> //包含51单片机的头文件
#define uint unsigned int
#define uchar unsigned char
/* 串口通讯接口定义
RXD-------P3.0 数据接收端
TXD-------P3.1 数据发送端
*/
uchar SendBusy =0x00;
uchar ReceiveData =0x00;
/////////////////////////////////
void InitUart(void);
void Uart_Send_Byte(uchar Data);
/*=============================================================================
//函 数 名: void InitUart(void)
//参 数: 无
//返 回 值: 无
//函数功能: 串口初始化函数
//编 写 者: 杨 勇
//编写日期: 2007年4月29日 16:56
===============================================================================*/
void InitUart(void)
{
TMOD|=0x20;
SCON=0x50;
PCON|=0x80;
TH1=0xff;
TL1=0xff;
TR1=1;
ES=1;
EA=1;
}
/*=============================================================================
//函 数 名: void Uart_Send_Byte(uchar Data)
//参 数: uchar Data
//返 回 值: 无
//函数功能: 串口发送一个字节函数
//编 写 者: 杨 勇
//编写日期: 2007年4月29日 17:02
===============================================================================*/
void Uart_Send_Byte(uchar Data)
{
while(SendBusy !=0 );
SBUF = Data;
SendBusy =0xff;
}
/*=============================================================================
//函 数 名: void uart(void) interrupt 4
//参 数: 无
//返 回 值: 无
//函数功能: 串口中断处理函数
//编 写 者: 杨 勇
//编写日期: 2007年4月29日 16:56
===============================================================================*/
//uart interrupt
void uart(void) interrupt 4
{
if(RI)
{
RI=0;
ReceiveData =SBUF;
}
else
{
TI=0;
SendBusy =0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -