main.c中
#include <REGX52.H>
#include"Delay.h"
#include"UART.h"
void main()
{
UART_Init();
while(1)
{
}
}
void UART_Routine() interrupt 4
{
if(RI==1)
{
P2=~SBUF;
UART_SendByte(SBUF);
RI=0;
}
}
delay.c中
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
delay.h中
#ifndef __DELAY_H__
#define __DELAY_H__
void Delay(unsigned int xms);
#endif
UART.c中
#include <REGX52.H>
/**
*注释:串口初始化 4800bps@12.000MHz
输入参数:无
输出参数:无
*/
void UART_Init()
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0xF3; //设置定时初始值
TH1 = 0xF3; //设置定时重载值
ET1 = 0; //禁止定时器%d中断
TR1 = 1; //定时器1开始计时
EA=1; //中断
ES=1;
}
/**
*注释:串口发送一个字节数据
输入参数: byte要发送一个数据
输出参数:无
*/
void UART_SendByte(unsigned char Byte)
{
SBUF=Byte;
while(TI==0);
TI=0;
}
//串口中断函数模板
//void UART_Routine() interrupt 4
//{
// if(RI==1)
// {
//
// RI=0;
//
// }
//}
UART.h中
#ifndef __UART_H__
#define __UART_H__
void UART_Init();
void UART_SendByte(unsigned char Byte);
#endif