首先使用串口工具配置串口和计时器,波特率选择4800
之后编写串口数据接收和发送代码
UART.c
#include <REGX52.H>
void Uart1_Init(void) //4800bps@12.000MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0xF4; //设置定时初始值
TH1 = 0xF4; //设置定时重载值
ET1 = 0; //禁止定时器中断
TR1 = 1; //定时器1开始计时
ES = 1;
EA = 1;
}
void Uart_SendByte( unsigned char num ) {
SBUF = num;
while( TI == 0 ) {};
TI = 0;
}
UART.h
#ifndef __UART_H__
#define __UART_H__
void Uart1_Init(void);
void Uart_SendByte( unsigned char num );
#endif
main.c
#include <REGX52.H>
#include "UART.h"
#include "Delay.h"
void main()
{
Uart1_Init();
Uart_SendByte(0x41);
while( 1 ) {
}
}
void Uart_Routine(void) interrupt 4
{
if( RI == 1 ) {
P1 = SBUF;
RI = 0;
}
}
数据接收