51单片机的串口中断设置

发布时间:2024-03-22
首先,你要用软件允许中断,
即c语言中ea = 1; 允许总中断es = 1;
//允许串口中断汇编中可用
setb ea ;允许总中断
setb es ;允许串口中断
当单片机接收到一帧数据后,ri会置1,向cpu申请中断,若之前有中断允许,则产生了中断,进入中断服务程序。
当然,单片机发送完一帧数据,ti也会置1,同样会产生中断!
一般我们在发送数据时要关中断,因为一般你不用在发送时不用处理数据;
接收数据时要开中断,以便你在中断服务程序中将接收到的数据进行存储并处理。
补充:其实,不管你有没有允许中断,上位机(此时即给单片机发送信息的机器)只要给单片机发送数据,单片机就会自动接收数据,并把它放在数据缓冲器sbuf中,如果你之前有允许串行口中断,ri就会置1,向单片机cpu申请中断,并进入中断服务程序,做完中断函数后就会自动返回断点。如果你没有允许中断,便不会产生串行中断。其实,别的中断都是某个i/o口电平变化产生。这只是外部中断产生条件,不过,你之前也需要用软件允许外部中断。
另外,常见的51系列单片机有5个中断源三种中断5:
1、外部中断0和1;
2、定时器/计数器溢出中断0和1;
3、串行口中断。
另外,stc51系列还有定时器/计数器t2中断,a/d转换中断,pwm中断,串行中断2等等。你还有什么不懂的可以自己多翻一翻书,学到后面去了你就明白了。
中断服务程序中,那条 ri=0;是不可少的,这是用软件清零ri,准备再次接受一帧数据产生中断,如果你没有这条语句,就会进入死循环,出不来了。
void serial() interrupt 4
{ p1=sbuf;
ri=0;
}
上一个:植酸
下一个:案件未结影响更换驾照么

GR1210J2K2T5G00_J 1210 2.2K现货购买,鼎声微1210 2.2KΩ ±5% 1/2W
RC-01W4751FT在线查库存,今日报价
酒驾打交警会判刑吗
压力表的质量要求
恩施山区茶叶冬后管理措施
电机发热的原因及解决方法
地面工程设计基本要求有哪些?
华为p6emui30怎么样,华为p6移动版更新emui30运行怎么样
厚声1210W2F2203T5E今日行情、最新报价
冬季城市园林绿化管理措施集萃