#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
void Send_char(uchar x);
void main()
{
// uchar i;
SCON=0X50;//工作方式:方式1:10位全双工串口异步通信;允许接收;发送/接收中断清零
PCON=0X80;//电源控制寄存器:波特率加倍
//因为串口工作方式为方式1,所以波特率可变,即由定时器T1充当波特率发生器,所有需要用到SMOD
TMOD=0X20;//定时器T1为工作方式2,即8位可自动重装载定时器;
TH1=0XFa;
TL1=0XFa;
//如果需要用到串口中断,则需要设置“中断允许寄存器IE”
EA=1;//开总中断
ES=1;//开串口中断
ET0=0;//因为串口的工作方式为“10位全双工串口异步通信”,所以不管它是以查询方式还是以中断方式使用串口,都必须让定时器T1关中断;
TR1=1;//启动定时器1
/***********到此串口初始化设置完成************/
while(1)
{
if(RI==1)
{
RI=0;//软件
temp=SBUF;
P0=temp;
Send_char(temp);
}
}
}
void Send_char(uchar x)
{
SBUF=x;
while(!TI);
TI=0;
}