51单片机第十六课串口数据收发实验#include <>
unsigned char a;
unsigned char flag;
void main()
{
TMOD=0x20; //设置定时器1为方式2
TH1=0xfd; //装入初值
TL1=0xfd;
TR1=1; //启动定时器1
SM0=0;
SM1=1; //设置串口为方式1
REN=1; //接受使能
EA=1; //打开总中断开关
ES=1; //打开串口中断开关while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=a;
while(!TI); //等待数据发送结束TI=0;
ES=1;
}
}
}
void serial() interrupt 4 {
a=SBUF;
P1=a;
RI=0;
flag=1; //标志位
}