51单片机串行通信C语言程序
发布时间:2020-07-30 07:18:21
发布时间:2020-07-30 07:18:21
//程序功能,首先在电脑上发一个数据给单片机,单片机收到后
//在把这个数据发送给电脑
#include
unsigned char a,flag;
void main()
{
TMOD=0X20;//设置定时器1为工作方式2
TH1=0xfd;//9600波特率
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; //清0否则一直往电脑上发
SBUF= a;
while(!TI) //等待数据发送结束
TI=0; //产生中断后要软件清0
ES=1;//打开串口中断
}
}
}
void serial() interrupt 4
{
a=SBUF;
P1=a;
RI=0; //软件清0,可以退出中断
flag=1;
}