第五章 中断系统应用

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章中断系统

第一节中断系统

现代微机控制系统中,主要依靠中断机制实现对外界随机发生的事件做出及时处理。所谓中断是指CPU暂时终止当前任务,转而处理突发事件,事件处理完成后,再回到原来被终止的地方,继续原来的工作。

1.中断相关概念

中断源:引起中断的原因,中断申请的来源,中断源可以是I/O设备、故障、时钟、调试中人为进行的设置等。

中断响应过程:CPU暂时终止当前工作,转去处理事件的过程。

中断服务:对事件的处理过程。

中断返回:事件处理完毕,回到原来被中止的地方。

中断优先级:当有多个中断源同时向CPU申请中断时,CPU优先响应最需紧急处理的中断请求,处理完毕再响应优先级别较低的中断,中断优先级直接反映每个中断源的中断请求被CPU响应的优先程度。

中断嵌套:CPU响应了某一中断源的中断请求,并正在执行它的中断服务程序时,若有优先级更高的中断源提出中断请求,那么CPU将停止正在执行的中断服务程序,转而响应和处理优先级更高的中断服务程序,等处理完成后再执行原来的中断服务程序,这就是中断嵌套。

2.中断的应用

中断的应用包括中断设置、中断请求,中断响应,中断处理、中断返回五个部分。

1)中断设置

中断设置包括中断允许设置、中断优先级设置和外部中断触发方式设置3个部分。

中断允许控制寄存器IE用于设置中断允许或禁止;中断优先级控制寄存器IP用于设置中断优先级的高低;外部中断的触发方式可以通过特殊功能寄存器TCON进行设置。

2)中断请求

5个中断源中2个为外部中断,3个为内部中断。

外部中断源

①INT0 外部中断0请求,通过P3.2引脚引入,中断请求标志为IE0。

②INT1 外部中断1请求,通过P3.3引脚引入,中断请求标志为IE1。

内部中断源

①T0 定时/计数器0溢出中断申请,中断请求标志为TF0。

②T1 定时/计数器1溢出中断申请,中断请求标志为TF1。

③TXD/RXD 串行口中断,当串行口发送或接收完一帧数据时,申请中断,发送中断

请求标志为TI,接收中断请求标志为RI。

中断请求标志分别由特殊功能寄存器TCON和SCON的相应位锁存。当中断条件发生时,中断请求标志由硬件自动置1。

3)中断响应

中断响应包括响应条件、响应过程、中断标志的拆除和响应时间。

响应条件:

①中断源发出中断申请

②中断总允许为EA=1,即CPU开中断

③申请中断的中断源中断允许位为“1”,即开放该中断。

④无同级或更高级中断正在被执行

⑤执行完当前指令的最后一个(机器)周期。

⑥若现正执行指令为返回(RETI)指令,或对IE、IP寄存器进行读/写操作,则需该

指令以及紧接着的另一条指令执行完。

响应过程

CPU在每个机器周期的S5P2期间,采样各中断源,在下一个机器周期的S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,并满足中断响应条件,将在下一个机器周期按优先级进行中断处理。中断处理时,首先将内部的“优先级生效”触发器置1,以阻止后来的同级或低级中断请求,然后由硬件执行一条长调用指令LCALL,把当前PC值压入堆栈,以保护断点地址,最后将相应的中断入口地址送入PC,于是CPU从中断入口地址开始执行程序。以上过程均表现为CPU的自主操作。

中断标志的拆除

CPU响应中断后,应撤除该中断请求标志,否则会再次中断。

①对定时计数器T0、T1的溢出中断,CPU响应中断后,硬件自动清除中断请求标志

TF0、TF1。

②对边沿触发的外部中断INT1和INT0,CPU响应中断后硬件自动清除中断请求标

志IE0和IE1。

③对于串行口中断,CPU响应中断后,没有用硬件清除中断请求标志TI、RI,即这

些中断标志不会自动清除,必须用软件清除,这是在编串行通信中断服务中应该注

意的。

④对电平触发的外部中断,CPU在响应中断时也不会自动清除中断标志,因此,在编

写中断服务程序时要注意中断响应后应立即撤除INT1或INT0的低电平信号响应时间

中断响应时间是指从中断请求标志置位到CPU开始执行中断服务程序的第一条指令所花的时间。

若系统中只有一个中断时,当中断源发出中断请求,中断请求标志置位将在当前机器周期的S5P2期间被置位,CPU将在下一个机器周期对这些中断标志进行查询,如果满足中断条件,还需要执行2个机器周期的硬件长调用指令LCALL以保存断点地址,所以系统响应该中断至少需要3个机器周期;如果正在执行的指令还没有执行到最后一个机器周期,则附加的等待时间为1~3个机器周期(因为一条指令的最长执行时间为4个机器周期);如果正在执行的指令是RETI或修改IE、IP的指令,则附加的等待时间是5个机器周期。所以,系统中只有一个中断的情况下,中断响应的时间为3~8个机器周期。

如果遇到同级或高级中断正在进行,则附加的时间还包括正在进行的中断服务程序的运行时间。

4)中断处理

51

为止,这个过程称为中断服务。由于两个相邻中断入口地址之间只有8个单元,一般容纳不下中断服务程序,所以常在中断入口处放一条长跳转指令LJMP,转向中断服务程序所在地址。

由于在主程序和中断服务程序中都会用到累加器A、程序状态字寄存器PSW和工作寄存器等资源,为保证中断返回后主程序能正常运行,在进入中断服务程序后,利用进栈指令PUSH保护相关寄存器的内容,这种情况被称为保护现场。中断结束,执行RETI指令前,应将相关寄存器恢复成原来的状态,恢复现场用POP指令。(工作寄存器可采用修改工作寄存器组的方式进行保护)

5)中断返回

中断服务程序中,最后一条指令必须为中断返回指令RETI。RETI指令的操作,一方面告诉系统中断服务程序已经执行完毕,可以开放同级中断;另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入程序计数器PC,使程序转到被中断的程序断点处,继续执行下去。

3.中断控制相关寄存器

51单片机的中断系统由中断允许控制寄存器IE、中断优先级控制寄存器IP、定时/计数控制寄存器TCON和串口控制寄存器SCON对中断系统进行控制和管理。系统复位时,各寄存器的内容都为0。

中断允许控制寄存器IE

EX0:外部中断0中断允许位

ET0:定时/计数器0溢出中断允许位

EX1:外部中断1中断允许位

ET1:定时/计数器1溢出中断允许位

ES:串行口中断允许位

中断允许控制寄存器IE的各位都可由用户编程置“1”和清“0”,可以用位操作指令或字节操作指令来完成。位的内容置“1”则中断允许,清“0”则中断禁止。IE对中断的允许或禁止实行两级控制,EA为总的控制位,其他各位针对具体的中断源进行控制。只有两级控制都允许的情况下中断才能被响应。

例如:

又如:

相关文档
最新文档