中断与中断系统
单片机原理及接口技术_李朝青课本答案第五章

第五章1、什么是中断和中断系统?其主要功能是什么?答:当CPU正在处理某件事情的时候,外部发生的某一件事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作。
这种过程称为中断,实现这种功能的部件称为中断系统。
功能:(1)使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理(2)完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率(3)实现实时控制2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,T O,串行口中断,且使T0中断为高优先级中断。
解:MOV IE,#097HMOV IP,#02H3、在单片机中,中断能实现哪些功能?答:有三种功能:分时操作,实时处理,故障处理4、89C51共有哪些中断源?对其中端请求如何进行控制?答:(1)89C51有如下中断源① :外部中断0请求,低电平有效② :外部中断1请求,低电平有效③T0:定时器、计数器0溢出中断请求④T1:定时器、计数器1溢出中断请求⑤TX/RX:串行接口中断请求(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现各种中断控制功能5、什么是中断优先级?中断优先处理的原则是什么?答:中断优先级是CPU相应中断的先后顺序。
原则:(1)先响应优先级高的中断请求,再响应优先级低的(2)如果一个中断请求已经被响应,同级的其它中断请求将被禁止(3)如果同级的多个请求同时出现,则CPU通过内部硬件查询电路,按查询顺序确定应该响应哪个中断请求查询顺序:外部中断0→定时器0中断→外部中断1→定时器1中断→串行接口中断6、说明外部中断请求的查询和响应过程。
答:当CPU执行主程序第K条指令,外设向CPU发出中断请求,CPU接到中断请求信号并在本条指令执行完后,中断主程序的执行并保存断点地址,然后转去响应中断。
中断系统名词解释

中断系统是计算机的重要指标之一。
可以解决快速CPU与慢速外设之间的矛盾,使之能并行工作。
可以及时处理随机参数及故障,提高可靠性。
1. 中断流程中断请求-中断响应-保护断点-中断服务-中断返回。
2. 中断概念(1)中断系统:实现中断功能的硬件系统和软件系统(2)中断源:产生中断的请求源(3)中断请求:中断源向CPU提出的处理请求。
(4)中断响应:CPU暂时中止自身的事情,转去处理事件的过程(5)中断服务:对事件的整个处理过程。
也称为中断处理(6)中断返回:中断处理完毕,在返回到原来被中止的地方3. 中断系统的一般功能中断系统一般应具有如下功能:•实现中断及返回当某中断源发出中断申请时,若允许响应,CPU必须在现行的指令执行完后,把断点处的PC值压入堆栈保存,称为保护断点。
(硬件自动完成)保护现场——响应中断后,将有关的寄存器内容和状态标志位压入堆栈保存。
恢复现场——执行中断服务程序后,恢复原保留的寄存器的内容和标志位的状态,并执行返回指令“RETI”(用户编程实现)•实现优先权排队当同时有多个中断请求信号,先响应优先级别高的中断请求。
•实现中断嵌套中断申请的中断源的优先权级别与正在处理的中断源同级或更低时,CPU暂时不响应这个中断申请,直至正在处理的中断服务程序执行完以后才去处理新的中断申请。
•实现中断的撤除在响应中断后,返回主程序之前,中断请求应该撤除,否则,将影响对其它中断申请的响应。
MCS-51中断系统只能对一部分中断申请,在响应后自动撤除,使用中应注意。
4. 调用中断服务程序与调用子程序的区别相同点:均能中断主程序执行本程序,然后再返回断点地址继续执行主程序。
不同点:•事先安排和随机发生•软件调用和硬件自动完成•中断服务程序入口地址是固定的,子程序调用入口地址是用户自己设定的。
•中断服务子程序返回指令除具有子程序返回指令所具有的全部功能之外,还有清除中断响应时被置位的中断请求标志位的功能。
单片机教程 第6章-中断系统

TCON位功能:
TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。
③ IE1 —— 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 ④ IE0 —— 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
=1:在INT0/INT1端申请中断的信号负跳变有效.
6.2
51单片机的中断系统
3、串行口中断设定
串行控制寄存器SCON控制字,字节地址:98H
SCON 位名称 位地址 功能 D7 D6 — — — — — — D5 — — — D4 — — — D3 — — — D2 — — — D1 TI 99H 串行发送 中断标志 D0 RI 98H 串行接收 中断标志
6.1
中断的概念
6.1.3 中断的分类 可分为三类: * 可屏蔽中断:由CPU的可屏蔽中断引脚INT引起的 中断。 * 非屏蔽中断:由CPU的非屏蔽中断引脚NMI引起的 中断(8086CPU)。 * 软件中断:由中断指令引起的中断(8086CPU)。 • 51单片机的中断可以分为:
①外部中断,由外部可屏蔽中断和外部计数器中断组成; ②内部中断,由内部定时器、串口传输中断等组成。
输入引脚。允许用户设定外部中断源以低电平或 者是负跳变方式触发。
6.2
51单片机的中断系统
②定时器溢出中断源:内部中断,51内部有两
个16位定时/计数器,它们由内部定时脉冲(主脉 冲12分频)或外部引脚T0、T1输入的外部计数脉 冲计数。当计数值溢出时,产生中断请求。这两 个16位定时/计数器的初值可由用户设定。
微机原理第7章 8086中断系统和中断控制器

3)高级中断源能中断低级的中断处理
中断嵌套 当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时, 如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程 序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被 1 中止的中断服务程序,这一过程称为中断嵌套。 • 中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度。
外部中断 非屏蔽中断 可屏蔽中断
可屏蔽中断源
CPU 中断逻辑
INTR
8259A 中断 INTA 控制器
INT N 指令
INTO 指令
除法 错误
单步 中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
外 设 中 断 源
内部中断: 除法错中断 指令中断 溢出中断 单步中断
硬件(外部)中断 非屏蔽中断请求 INT 2 NMI(17号引脚) 中 断 逻 辑 可屏蔽中断请求 中断类型号32~255 INTR(18号引脚)
中断指令 INT n N=32~255
溢出中断 INTO INT 4
断点 中断 INT 3
单步中断 (TF=1) INT 1
除法 错误 INT 0
软件(内部)中断
8086/8088中断源
1.软件中断(内部中断) 8086/8088的软件中断主要有三类共五种。 (1) 处理运算过程中某些错误的中断 执行程序时,为及时处理运算中的某些错误 ,CPU以中断方式中止正在运行的程序,提醒程 序员改错。 ① 除法错中断(中断类型号为0)。在8086 /8088 CPU执行除法指令(DIV/IDIV)时,若发现 除数为0,或所得的商超过了CPU中有关寄存器所 能表示的最大值,则立即产生一个类型号为0的 内部中断,CPU转去执行除法错中断处理程序。
中断系统的工作原理

中断系统的工作原理描述中断系统是计算机硬件与软件之间的重要的交互机制。
中断是一种机制,可以打断CPU正在执行的程序,转而处理某个特定的事件或条件。
中断系统的工作原理是通过引发中断信号,使CPU停止当前任务,转而执行中断程序。
本文将详细探讨中断系统的工作原理。
中断的分类中断可以分为硬件中断和软件中断。
1. 硬件中断是由外部设备发送的中断信号,如键盘输入、鼠标移动等。
硬件中断通常由硬件控制器产生,并通过中断控制器传递给CPU。
2. 软件中断是由软件指令产生的中断信号,如系统调用、异常等。
软件中断由操作系统内核代码或应用程序发起。
中断系统的组成中断系统由多个部分组成,包括中断控制器、中断向量表和中断处理程序。
中断控制器中断控制器负责管理中断信号的传递和处理。
它是连接CPU和外部设备的桥梁,负责接收和转发设备的中断请求。
常见的中断控制器有8259A芯片。
它能够处理8个外部设备的中断请求,可以将多个请求合并成一个中断信号,传递给CPU。
中断向量表中断向量表是一个数据结构,用于存储中断处理程序的入口地址。
每个中断都有一个唯一的中断向量,用于标识该中断在中断向量表中的位置。
当发生中断时,CPU 会根据中断向量找到对应的中断处理程序,并跳转执行。
中断处理程序中断处理程序是响应中断的代码段,用于处理特定的中断事件。
每个中断都有一个对应的中断处理程序。
中断处理程序执行完毕后,系统会恢复被中断的任务,继续执行。
中断的处理过程中断的处理过程可以分为以下几个步骤:1.中断发生:外部设备通过中断控制器向CPU发送中断请求信号。
2.中断响应:CPU接收到中断请求后,暂停当前任务的执行,并保存当前任务的状态。
3.中断处理:CPU根据中断请求的源头确定中断向量,找到对应的中断处理程序,并跳转执行。
4.中断服务:中断处理程序根据具体的中断事件进行相应的处理,如读取键盘输入、处理时钟中断等。
5.中断结束:中断处理程序执行完毕后,系统会恢复之前被中断的任务的执行,继续执行下去。
中断系统中断概念一中断的概念中断是指在计算机执行

中断源
入口地址
INT0
0003H
T0
000BH
INT1
0013H
T1
001BH
串行口
0023H
(5)中断返回
S(E串ETM串串5(1.FEXSO)1行行行用10T:)V串:B口 口 口字EI行定自PEX节,T口#1时然00操:外中8/优计作HR断部先数指X允中级D器令00许断00:(T22控0133),中外HH制T断部位X标D中志(断位1)中断允许控制位
5.5 中断优先级控制 1、中断优先级寄存器
IP
BCH BCH BBH BAH B9H B8H
B8H X X X PS PT1 PX1 PT0 PX0
高优先级
MCS-51系列单片机有两级中断级
低优先级
PX0,PT0,PX1,PT1,PS分别为INT0,T0,INT1,T1 串行口中断优先级控制位,当相应位为0时为低优先级,相应 为1时为高优先级。
例5 .2 要将T1定时器定义为最高优先级,其他中断定义为低 优先级,如何设置IP?
(1M M)用OO字VV 节AIE操8,H作,##指88E令EHH E串串 例串P中IT串(TCTRRTUP0行行:行断行1000US:)::口 口口 源 口HE响外置TI定定应N1部相PT时时,中ES_中应//TWT断计计断2R的0:后数数:X定0优D触,器器00入0时先000(发于TT口222计级00333)方中地运 运数HHH触式断T址行行器发X选返控控TD器0择回制制(,状T前位位1)态,,T为2应中1该断撤控销制中位断请求。 (2S)E用T位B E操A作 P中生S…ITUE1断的…TS:B是 事 .H外E指件部TP在,1S中W计待断算处0机理触执完发行毕方程后式序,选的再择过返程回当来中执,行当原外来部被设中备断发的生程某序一。事件时,请求CPU处时,CPU暂时中断当前程序的执行,转去处理所发 SSSEEETTTBBB EEETTX010 EI(P先为ST中S1中生N0EXES假4级了断断的T0TT:)1串设,BB。 使 处 是 事转行允PEE这理指件T入TA口许些过在,00相中,打单程计待应断P开0元可算处X0的允0I的分机理01N0中B许,1T值为执完H31断控PH在三行毕及T服制1中个程后定,务位断阶序,时P程程段的再器S序分序:过返T入0别中中程回,T口为不断当来1,I禁被响中执NT止冲应,行0其,掉,当原他T,中外来0中在断部被,断进处设中IN,入理备断T试1中,发的设,断中生程置T1服断某序IE串务返一。. 行程回事口序。件中前时断,,优要请先将求级有C控P关U制寄处位存时,器,当保C相P护U应起暂位来时为。中0断时当为前低程优序先的级执,行相,应转为去1时处为理高所优发
单片机讲义第七章

一、中断的起因
什么可以引起中断? 生活中很多事件可以引起中断:有人 按了门铃了,电话铃响了,你的闹钟闹响 了,你烧的水开了….等等诸如此类的事件, 我们把可以引起中断的称之为中断源,单 片机中也有一些可以引起中断的事件, 8051中一共有5个:两个外部中断,两个 计数/定时器中断,一个串行口中断。
三、中断的响应过程
当有事件产生,进入中断之前我们必须先记住现 在看书的第几页了,或拿一个书签放在当前页的位置, 然后去处理不同的事情(因为处理完了,我们还要回 来继续看书):电话铃响我们要到放电话的地方去, 门铃响我们要到门那边去,也说是不同的中断,我们 要在不同的地点处理,而这个地点通常还是固定的。 89C51中也是采用的这种方法,五个中断源,每个 中断产生后都到一个固定的地方去找处理这个中断的 程序,当然在去之前首先要保存下面将执行的指令的 地址,以便处理完中断后回到原来的地方继续往下执 行程序。
二、中断的嵌套与优先级处理
设想一下,我们正在看书,电话铃响了,同时又 有人按了门铃,你该先做那样呢?如果你正是在等一 个很重要的电话,你一般不会去理会门铃的,而反之, 你正在等一个重要的客人,则可能就不会去理会电话 了。如果不是这两者(即不等电话,也不是等人上 门),你可能会按你通常的习惯去处理。总之这里存 在一个优先级的问题, 单片机中也是如此,也有优先级的问题。优先级 的问题不仅仅发生在两个中断同时产生的情况,也发 生在一个中断已产生,又有一个中断产生的情况,比 如你正接电话,有人按门铃的情况,或你正开门与人 交谈,又有电话响了情况。考虑一下我们会怎么办吧。
电平触发的外部中断的清除
对于电平触发的外部中断,CPU响应中断后, 虽然也是由硬件清除了相应的标志位,但是不 能对外部引脚上的电平进行处理,也就是说, 这时如果外部引脚上的低电平依然存在,会造 成重复中断,因此我们应该在电路上增加对外 部引起中断的信号进行处理。P148图7-5是一 个可行的方案之一。通过I/O口输出一个信号, 使得外部引脚上的中断请求信号变为高电平。
第7章 中断系统与中断控制器

2 中断源
引起CPU中断的事件——中断源。 例如:
外设——请求输入输出数据,报告故障等 事件——掉电、硬件故障、软件错误、非法操作、定 时时间到等
中断源分为:外部中断、内部中断 内部中断:CPU内部执行程序时自身产生的中断 外部中断:CPU以外的设备、部件产生的中断
3 中断技术的优点
中断操作
7.2.2 中断处理过程
五个步骤: 中断请求 中断判优(有时还要进行中断源识别) 中断响应 中断服务 中断返回
以下以外部中断为主介绍这五个步骤。
1.中断请求
外设请求服务时,经接口电路向CPU发请求信号。
2.中断判优
同时出现多个中断请求(>1),响应优先级最高的。
7.4 PC/XT(8088/8086CPU)的中断系统
采用向量型中断结构,可以管理256个不同类型
的中断请求。
中断源有两类:内部中断和外部中断。外部中
断又分为非屏蔽中断NMI和可屏蔽中断INTR。
1.内部中断
内部中断是由CPU内部事件引起的中断。
非屏蔽中断 NMI INTR 可屏蔽 中断 INTA 9259A 除法 错误 IR0 IR1 8086/8088中断管理逻辑 IR2 IR3 IR4 IR5 IR6 IR7
7.5.1 8259A的内部结构与引脚信号
1.8259A的内部结构
由以下8个部分组成:
数据总线缓冲器 控制逻辑
中断请求寄存器
IRR(Interrupt Re 中断服务寄存器ISR 优先级比较器PR quest Register) (Interrupt Service Register) (priority relatively) 读/写逻辑
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华东师范大学 电子系 马 潮 7-1第7章 中断系统与基本应用中断是现代计算机必备的重要功能。
尤其在嵌入式系统和单片机系统中,中断扮演了非常重要的角色。
因此,全面深入的了解中断的概念,并能灵活掌握中断技术的应用,成为学习和真正掌握单片机应用非常重要的关键问题之一。
7.1 中断的基本概念中断是指计算机(MCU )自动响应一个“中断请求”信号,暂时停止(中断)了当前程序的执行,转而执行为外部设备服务的程序(中断服务程序),并在执行完服务程序后自动返回原程序执行的过程。
单片机一般都具有良好的中断系统,它的优点有:✓ 实现实时处理。
利用中断技术,MCU 可以及时响应和处理来自内部功能模块或外部设备的中断请求,并为其服务,以满足实时处理和控制的要求。
✓ 实现分时操作,提高了MCU 的效率。
在嵌入式系统的应用中可以通过分时操作的方式启动多个功能部件和外设同时工作。
当外设或内部功能部件向MCU 发出中断申请时,MCU 才转去为它服务。
这样,利用中断功能,MCU 就可以“同时”执行多个服务程序,提高了MCU 的效率。
✓ 进行故障处理。
对系统在运行过程中出现的难以预料的情况或故障,如掉电,可以通过中断系统及时向MCU 请求中断,做紧急故障处理。
✓ 待机状态的唤醒。
在单片机嵌入式系统的应用中,为了减少电源的功耗,当系统不处理任何事物,处于待机状态时,可以让单片机工作在休眠的低功耗方式。
通常,恢复到正常工作方式往往也是利用中断信号来唤醒。
7.1.1 中断处理过程在中断系统中,通常将MCU 处在正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源,由中断源向MCU 所发出的申请中断信号称为中断请求信号,MCU 接受中断申请停止现行程序的运行而转向为中断服务称为中断响应,为中断服务的程序称为中断服务程序或中断处理程序。
现行程序打断的地方称为断点,执行完中断处理程序后返回断点处继续执行主程序称为中断返回。
这一整个的处理过程称为中断处理过程(图7-1)。
在整个中断处理过程中,由于MCU 执行完中断处理程序后仍然要返回主程序,因此,在执行中断处理程序之前,要将主程序中断处的地址,即断点处(实际为程序计数器PC 的当前值――即将执行的主程序的下一条指令地址,图7-1中的k+1点)保存起来,称为保护断点。
又由于MCU 在执行中断处理程序时,可能会使用和改变主程序使用过的寄存器、标志位,甚至内存单元,因此,在执行中断服务程序前,还要把有关的数据保护起来,称为中断现场保护。
在MCU 执行主程序 中断服务程序 K K+1 中断响应 中断返回中断请求 图7-1 中断过程示意图完中断处理程序后,则要恢复原来的数据,并返回主程序的断点处继续执行,称为恢复现场和恢复断点。
在单片机中,断点的保护和恢复操作,是在系统响应中断和执行中断返回指令时由单片机的内部硬件自动实现的,简单的说,就是在响应中断时,MCU的硬件系统会自动将断点地址压进系统的堆栈保存,而当执行中断返回指令时,硬件系统会自动又将压入堆栈的断点地址弹出到程序计数器PC中。
但对于中断现场的保护和恢复,则需要程序员在设计中断处理程序时编程实现。
在使用中断时,要认真和仔细考虑中断现场的保护和恢复。
7.1.2 中断源、中断信号、中断向量1.中断源中断源是指能够向MCU发出中断请求信号的部件和设备。
在一个系统中,往往存在多个中断源。
对于单片机讲,中断源一般可分为内部中断源和外部中断源。
在单片机内部集成的许多功能模块,如定时器、串行通讯口、模/数转换器等,它们在正常工作时往往无需CPU参与,而当处于某种状态或达到某个规定值需要程序控制时,会通过发出中断请求信号通知CPU。
这一类的中断源位于单片机内部,称作内部中断源。
其典型例子有定时器溢出中断、ADC完成中断等。
如8位的定时器在正常计数过程中无需CPU的干预,一旦计数到达0xff产生溢出时便产生一个中断申请信号,通知CPU进行必要的处理。
内部中断源在中断条件成立时,一般通过片内硬件会自动产生中断请求信号,无须用户介入,使用方便。
内部中断是CPU管理片内资源的一种高效的途径。
系统中的外部设备也可以用作中断源,这时要求它们能够产生一个中断信号(通常是高(低)电平或者电平跳变的上升(下降)沿),送到单片机的外部中断请求引脚供CPU检测。
这些中断源位于单片机外部,称为外部中断源。
通常用作外部中断源的有输入输出设备、控制对象、以及故障源等。
例如,打印机打印完一个字符时可以通过中断请求CPU为它送下一个打印字符;控制对象可以通过中断要求CPU及时采集参量或者对参数超标做出反应;掉电检测电路发现掉电时可以通过中断通知CPU,以便在短时间内对数据进行保护。
2. 中断信号中断信号是指内部或外部中断源产生的中断申请信号,这个中断信号往往是电信号的某种变化形式,通常有以下几种类型:✓脉冲的上跳沿或下降沿(上升沿触发型或下降沿触发型)✓高电平或低电平(电平触发型)✓电平的变化(状态变化触发型)对于单片机来讲,不同的中断源,产生什么类型的中断信号能够触发申请中断,取决于芯片内部的硬件结构,而且通常也可以通过用户的软件来设定。
单片机的硬件系统会自动对这些中断信号进行检测。
一旦检测到规定的信号出现,将会把相应的中断标志位置“1”(在I/O空间的控制或状态寄存器中),通知CPU进行处理。
3.中断向量中断源发出的请求信号被CPU检测到之后,如果单片机的中断控制系统允许响应中断,CPU会自动转移,执行一个固定的程序空间地址中的指令。
这个固定的地址称作中断入口地址,也叫做中断向量。
中断入口地址往往是由单片机内部硬件决定的。
通常,一个单片机会有若干个中断源,每个中断源都有着自己的中断向量。
这些中断向量一般在程序存储空间中占用一个连续的地址空间段,称为中断向量区,如表7.1所示。
由于一个中断向量通常仅占几个字节或一条指令的长度,所以在中断向量区一般不放置中断服务程序的。
中断服务程序一般放置在程序存储器的其它地方,而在中断向量处放置一条跳转到中断服务程序的指令。
这样,CPU响应中断后,首先自动转向执行中断向量中的转移指令,再跳转执行中断服务程序。
7.1.3 中断优先级和中断嵌套中断优先级的概念是针对有多个中断源同时申请中断时,MCU如何响应中断,以及响应哪个中断而提出的。
通常,一个单片机会有若干个中断源,MCU可以接收若干个中断源发出的中断请求。
但在同一时刻,MCU只能响应这些中断请求中的其中一个。
为了避免MCU同时响应多个中断请求带来的混乱,在单片机中为每一个中断源赋予一个特定的中断优先级。
一旦有多个中断请求信号,MCU先响应中断优先级高的中断请求,然后再逐次响应优先级次一级的中断。
中断优先级也反映了各个中断源的重要程度,同时也是分析中断嵌套的基础。
对于中断优先级的确定,通常是由单片机的硬件结构规定的。
一般的确定规则方式为两种:✓某中断对应的中断向量地址越小,其中断优先级越高(硬件确定方式)。
✓通过软件对中断控制寄存器的设定,改变中断的优先级(用户软件可设置方式,注意:AVR不支持)。
实际上,MCU在两种情况下需要对中断的优先级进行判断:第一种情况为同时有两(多)个中断源申请中断。
在这种情况下,MCU首先响应中断优先级最高的那个中断,而将其它的中断挂起。
待优先级最高的中断服务程序执行完成返回后,再顺序响应优先级较低的中断。
第二种情况是当MCU正处于响应一个中断的过程中。
如已经响应了某个中断,正在执行为其服务的中断程序时,此时又产生一个其它的中断申请,这种情况也称作中断嵌套。
对于中断嵌套的处理,不同的单片机处理的方式是不同的,应根据你所使用单片机的特点正确实现中断嵌套的处理。
按照通常的规则,当MCU正在响应一个中断B的过程中,又产生一个其它的中断A申请时,如果这个新产生中断A的优先级比正在响应的中断B优先级高的话,就应该暂停当前的中断B的处理,转入响应高优先级的中断A,待高优先级中断A处理完成后,再返回原来的中断B的处理过程。
如果新产生中断A的优先级比正在处理中断B的优先级低(或相同),则应在处理完当前的中断B后,再响应那个后产生的中断A申请(如果中断A条件还成立的话)。
一些单片机(如8051结构)的硬件能够自动实现中断嵌套的处理,既单片机内部的硬件电路能够识别中断的优先级,并根据优先级的高低,自动完成对高优先级中断的优先响应,实现中断的嵌套处理。
而另一类的单片机,如本书介绍的AVR单片机,其硬件系统不支持自动实现中断嵌套的处理。
如果在系统设计中,必须使用中断嵌套处理,则需要由用户编写相应的程序,通过软件设置来实现中断嵌套的功能。
7.1.4中断响应条件与中断控制1)中断的屏蔽单片机拥有众多中断源,但在某一具体设计中通常并不需要使用所有的中断源,或者在华东师范大学电子系马潮7-3系统软件运行的某些关键阶段不允许中断打断现行程序的运行,这就需要一套软件可控制的中断屏蔽/允许系统。
在单片机的I/O寄存器中,通常存在一些特殊的标志位用于控制开放或关闭(屏蔽)MCU对中断响应处理,这些标志称为中断屏蔽标志位或中断允许控制位。
用户程序可以改变这些标志位的设置,在需要的时候允许MCU响应中断,而在不需要的时候则将中断请求信号屏蔽(注意:不是取消),此时尽管产生了中断请求信号,MCU也不会响应中断请求。
因而从对中断源的控制角度讲,中断源还可分成3类:✓非屏蔽中断。
非屏蔽中断是指MCU对中断源产生的中断请求信号是不能屏蔽的,也就是说一旦发生中断请求,MCU肯定响应该中断。
在单片机中,外部RESET引脚产生的复位信号,就是一个非屏蔽的中断。
✓可屏蔽中断。
可屏蔽中断是指用户程序可以通过中断屏蔽控制标志对中断源产生的中断请求信号进行控制,既允许或禁止MCU对该中断的响应。
在用户程序中,可以预先执行一条允许中断的指令,这样一旦发生中断请求,MCU就能够响应中断。
反之,用户程序也可以预先执行一条中断禁止(屏蔽)指令,使MCU不响应中断请求。
因此,可屏蔽中断的中断请求能否可以被MCU响应,最终是由用户程序来控制的。
在单片机中,大多数的中断都是可屏蔽的中断。
✓软件中断。
软件中断通常是指CPU具有相应的软件中断指令,当MCU执行这条指令时就能进入软件中断服务,以完成特定的功能(通常用于调试)。
但一般的单片机都不具备软件中断的指令,因此不能直接通过软件中断的指令实现软件中断的功能。
因此,在单片机系统中,如果必须要使用软件中断的功能,一般要通过间接的方式实现软件中断的功能。
2)中断控制与中断响应条件综合前面的介绍,我们可以知道,在单片机中,对应每一个中断源都有一个相应的中断标志位,该中断标志位将占据中断控制寄存器中的一位。
当单片机检测到某一中断源产生符合条件的中断信号时,其硬件会自动将该中断源对应的中断标志位置“1”,这就意味着有中断信号产生了,向MCU申请中断。