单片机中断系统的优势:
一、实现实时处理。
二、实现分时操做。
三、进行故障处理。
四、待机状态的唤醒。单片机嵌入式系统的应用中,为了减小电源的功耗,当系统不处理任何事物,处于待机状态时,可让单片机工做在休眠的低功耗方式。一般,恢复到正常工做方式每每也是利用中断信号来唤醒。
中断处理过程:
中断系统中,MCU正常状况下运行的程序称为
主程序
,把产生申请中断信号的单元和事件称为
中断源
,由中断源向MCU所发出的申请中断信号称为
中断请求
,MCU接受中断申请并中止现行程序的运行而转向为中断服务称为
中断响应
,为中断服务的程序称为
中断服务程序
,现行程序打断的地方称为
断点
,执行完中断处理程序后返回断点处继续执行主程序称为
中断返回
。
其中K就是断点,因为中断服务程序执行完后仍要返回主程序,所以,在执行中断处理程序以前,要将主程序中断点处的地址保存,即中断返回后要执行的命令地址,这个地址就是程序计数器PC的值。这个过程称为
保护断点
。又因为MCU在执行中断处理程序时,可能会使用和改变主程序使用过的寄存器、标志位、甚至内存单元,所以,在执行中断服务程序前,还要把有关的数据保护起来,称为
中断现场保护
。在MCU执行完中断处理程序后,又要恢复原来的数据,并返回主程序的断点处继续执行,称为
恢复现场
。
中断过程当中,断点的保护和恢复操做是由单片机内部硬件自动实现,即保存和恢复计数器PC。
中断现场的保护和恢复,须要本身设计中断处理程序时编程实现。在使用中断时,要认真和仔细考虑中断现场的保护和恢复。
中断的三个概念:
中断源、
中断信号、
中断向量(中断入口地址);系统有若干个中断源,每一个中断源对应一个中断向量,中断向量只是中断服务程序的一个入口地址,全部中断向量连续存放在固定区域,构成了中断向量区。
中断优先级和中断嵌套:
中断优先级的概念是针对有多个中断源同时申请中断时,MCU如何响应中断,以及响应哪一个中断而提出来的。
中断优先级的肯定:
▋
某中断对应的中断向量地址越小,其中断优先级越高(硬件肯定方式)
▋经过软件对中断控制器的设定,改变中断的优先级(用户可设置方式,可是AVR不支持)
一些单片机(如8051)的硬件可以自动实现中断嵌套的处理,即单片机内部的硬件电路可以识别中断的优先级,并根据优先级的高低,自动完成对高优先级中断的优先响应,实现中断的嵌套处理。
** AVR单片机,硬件系统不支持自动实现中断嵌套的处理。若是在系统设计中,必须使用中断嵌套处理,则须要由用户编写相应的程序,经过软件设置来实现中断嵌套的功能。
中断的响应条件与中断控制:
1)、中断的屏蔽:一般存在一些特殊的标志位用于控制开放或关闭(屏蔽)MCU对中断响应处理,这些标志称为中断屏蔽标志位或中断容许控制位。注意,屏蔽中断信号,不是取消。
中断源分为:非屏蔽中断、可屏蔽中断、软件中断。**软件中断是指CPU具备相应的软件中断指令,当MCU执行这条指令时能进入软件中断服务,以完成特定的功能(一般用于调试),可是通常的单片机不具有软件中断的指令。
2)、中断控制与终端响应条件:单片机中,对应每个中断源都有一个相应的中断标志位,该中断标志位将占据中断控制器中的一位。当单片机检测到某一中断源产生符合条件的中断信号时,其硬件会自动将该中断源对应的中断标志位置“1”,这就意味着有中断信号产生了,向MCU申请中断。
中断标志位置“1”,并不表明MCU必定响应该中断。为了合理控制中断响应,在单片机内部还有相关的用于中断控制的中断容许标志位。 最重要的一个中断容许标志位是全局中断容许标志位。当该标志位为“0”,表示禁止MCU响应全部的可屏蔽中断的响应。此时不论是否有中断产生,MCU不会响应任何中断请求。只有全局中断容许标志位为“1”,MCU才响应。
全局中断标志位为“1”,MCU响应可屏蔽中断,每一个中断源对应一个各自独立的中断容许标志位。当某个中断容许标志位为“0”时,表示MCU不响应该中断的中断申请。
MCU响应一个可屏蔽中断源的中断请求的条件是:响应A中断 = 全局中断容许标志位 AND 中断A容许标志 AND 中断A标志;这些标志位所有要置“1”。
因此,只有当全局中断容许标志位为“1”(由用户软件设置),中断A容许标志位为“1”(由用户软件设置),中断A标志位为“1”(符合中断条件时由硬件自动设置或由用户软件设置)时,MCU才会响应中断A的请求信号(若是有多个中断请求信号同时存在的状况下,还要根据中断A的优先级来肯定)。