01
什么是中断
前面的文章中我举上课的例子简单描述了中断,那么单片机系统里中断是什么呢?
中断,是指当计算机执行正常程序时,系统中出现某些急需处理的异常情况和特殊请求,cpu暂时中止正在运行的程序,转去对随机发生的更为紧迫的事件进行处理,处理完毕后,cpu自动返回原来的程序继续执行。
实现中断功能的硬件和软件系统称为中断系统。能向cpu发出中断请求的事件称为中断源。
若有多个中断源同时请求中断时,或者cpu正在处理某外部事件时,又有另一外部事件申请中断,cpu通常会根据中断源的紧急程度,将其进行排列,规定每个中断源都有一个中断优先级。
中断优先级可由硬件排队或软件排队来设定,cpu按其优先顺序处理中断源的中断请求。优先级高的事件可以中断cpu正在处理的低级的中断服务程序,待完成了高级中断服务程序之后,再继续执行被中断了的低级中断服务程序,这就是中断的嵌套。
02
中断源与中断优先级
c51有如下5个中断源:
• int0(p3.2)外部中断0。当it0(tcon.0)=0时,低电平有效;
当it0(tcon.0)=1时,下降沿有效。
• int1(p3.3)外部中断1。当it1(tcon.2)=0时,低电平有效;
当it1(tcon.2)=1时,下降沿有效。
• tf0定时/计数器t0溢出中断。
• tf1定时/计数器t1溢出中断。
• rx,tx串行中断。
c52又增加了一个中断源,即定时/计数器t2溢出中断。
中断优先级是在列表越前面的优先级又高,表中列出了默认优先级,数字越小的优先级越高。当然也可以通过设置改变这个顺序。
当然现在新上市的51单片机可能包含更多的中断源,但是基本的这几个肯定都有的,其他额外添加的也是大同小异,都能根据芯片手册看明白。比如stc89系列单片机就有8个中断源,如图:
03
中断控制寄存器
51单片机的中断相关控制寄存器包括了中断控制寄存器(interrupt enable register,ie)和中断优先级控制寄存器(interrupt priority register,ip),前者用于对 mcs-51单片机的中断工作状态进行控制,后者用于对mcs-51单片机的中断优先级进行控制。
允许中断寄存器ie的各位定义如下:
ea是总中断允许位。当ea=0时,禁止所有中断;当ea=1时,每个中断源是允许还是禁止由各自的允许位确定。
et2是定时器2中断允许位。当et2=0时,禁止定时器2中断。
es是串行口中断允许位。当es=0时,禁止串行口中断。
et1是定时器1中断允许位。当et1=0时,禁止定时器1中断。
ex1是外部中断1允许位。当ex1=0时,禁止外部中断1。
et0是定时器0中断允许位。当et0=0时,禁止定时器0中断。
ex0是外部中断0允许位。当ex0=0时,禁止外部中断0。
中断优先级寄存器ip的各位定义如下:
pt2是定时器2中断优先级设定位。
ps是串行口中断优先级设定位。
pt1是定时器1中断优先级设定位。
px1是外部中断1优先级设定位。
pt0是定时器0中断优先级设定位。
px0是外部中断0优先级设定位。
ip寄存器中各位均具有以下特点,即当为0时,为低中断优先级;当为1时,为高中断优先级。系统复位后,ip寄存器中各位均为0,即此时全部设定为低中断优先级。在中断执行过程中,低优先级中断可被高优先级中断所中断,反之不能。
另外,同级的中断不能互相中断。当几个同级的中断源同时向cpu申请中断时,cpu按硬件次序排定优先权,依次为外部中断0(int0)、定时/计数器t0溢出中断、外部中断1(int1)、定时/计数器t1溢出中断、串行口中断、定时/计数器t2溢出中断。
开发者案例:老a式风扇改造记
安谋科技“周易”NPU软件开源项目上线
无线智能水表阀控盒的原理及设计
如何正确选择内存条
2019年芯片巨头SK海力士运营利润狂跌87%
中断是什么意思 中断源的优先级判断 中断控制寄存器有哪些
气体检测仪为什么受到市场重视
高功率近场卡塞格伦天线的设计实验结果详细分析
什么是分立元件?分立元件声光控电灯的原理与制作
华为遭vivo与OPPO截胡,排名TOP3
人工智能兴起于什么时候
基于S3C2440处理器Linux平台的物流配送系统设计
国产化主板助力智能自助终端,实现提高效率,降低成本
聊一聊智能家居领域的机遇和挑战
中国发展芯片产业面临巨大困难:该如何破局
E现场:全方位越级体验的产品
线性降压恒流驱动 AP7140 锂电池供电方案
铅酸电池正确充电方式
无需人工盘点,RFID标签实现车辆高效管理
不同的存储器技术介绍 如何选择正确的存储器技术