作者:秦乐0_707 | 来源:互联网 | 2023-10-12 13:00
51单片机串口的使用有两种方法,一个是查询法,还有就是中断法,查询法相对简单就是不断查询是否有数据,而中断就是利用串口中断interrupt 4,这里给出中断法,大家参考!
#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;//发送数据时关闭串口中断
}