#include
unsigned char a,flag;
void main()
{
TMOD=0X20;//设置定时器1为方式2
TH1=0XFD;// 装入初值(由软件计算一下)
TL1=0XFD;
TR1=1;//启动定时器1
SM0=0;//设置为方式1
SM1=1;
REN=1;//允许接受
EA=1;//打开总中断开关
ES=1;//打开串口中断开关
while(1)
{
if(flag==1)
{
flag=0;//将标志位置0
SBUF=a;
while (TI==0);
TI=0;
ES=1;//发送数据时关闭串口中断
}
}
}
void serial()interrupt 4 //串口中断用于接收数据
{
RI=0; //软件使RI置0
P1=SBUF;//数据送入缓冲区(SBUF)哪个口需要哪个口在这里取数据
a=SBUF;//将缓冲区的数据保存到a中以便以后使用
flag=1;//标志位
ES=0;//发送数据时关闭串口中断
}