单片机中断系统的优点:
1、实现实时处理。
2、实现分时操作。
3、进行故障处理。
4、待机状态的唤醒。单片机嵌入式系统的应用中,为了减少电源的功耗,当系统不处理任何事物,处于待机状态时,可以让单片机工作在休眠的低功耗方式。通常,恢复到正常工作方式往往也是利用中断信号来唤醒。
中断处理过程:
中断系统中,MCU正常情况下运行的程序称为
主程序
,把产生申请中断信号的单元和事件称为
中断源
,由中断源向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的优先级来确定)。