产品选型

单片机中断的作用 干货|一文读懂单片机里面的“中断”优先级

小编 2025-07-02 产品选型 23 0

干货|一文读懂单片机里面的“中断”优先级

中断优先级的内容,有一般紧急的中断,有特别紧急的中断,这取决于具体的系统设计,这就涉及到中断优先级和中断嵌套的概念,今天先简单介绍一下相关寄存器,不做例程说明。

中断的产生背景,实际生活当中还有更复杂的,比如我正在看电视,这个时候来电话了,我要进入接电话的“中断”程序当中去,就在接电话的同时,听到了水开的声音,水开的“中断”也发生了,我们就必须要放下手上的电话,先把煤气关掉,然后再回来听电话,最后听完了电话再看电视,这里就产生了一个优先级的问题。

还有一种情况,我们在看电视的时候,这个时候听到水开的声音,水开的“中断”发生了,我们要进入关煤气的“中断”程序当中,而在关煤气的同时,电话声音响了,而这个时候,我们的处理方式是先把煤气关闭,再去接听电话,最后再看电视。

从这两个过程中,我们可以得到一个结论,就是最最紧急的事情,一旦发生后,我们不管当时处在哪个“程序”当中,我们必须先去处理最最紧急的事情,处理完毕后再去解决其它事情。

在我们的单片机程序当中有时候也是这样的,有一般紧急的中断,有特别紧急的中断,这取决于具体的系统设计,这就涉及到中断优先级和中断嵌套的概念,今天先简单介绍一下相关寄存器,不做例程说明。

中断优先级有两种,一种是抢占优先级,一种是固有优先级,先介绍抢占优先级。来看表1和表2。

表1: IP——中断优先级寄存器的位分配(地址0xB8、可位寻址)

表2: IP——中断优先级寄存器的位描述

IP 这个寄存器的每一位,表示对应中断的抢占优先级,每一位的复位值都是 0,当我们把某一位设置为 1 的时候,这一位的优先级就比其它位的优先级高了。

比如我们设置了 PT0位为 1 后,当单片机在主循环或者任何其它中断程序中执行时,一旦定时器 T0 发生中断,作为更高的优先级,程序马上就会跑到 T0 的中断程序中来执行。

反过来,当单片机正在 T0中断程序中执行时,如果有其它中断发生了,还是会继续执行 T0 中断程序,直到把 T0 中的中断程序执行完毕以后,才会去执行其它中断程序。

当进入低优先级中断中执行时,如又发生了高优先级的中断,则立刻进入高优先级中断执行,处理完高优先级级中断后,再返回处理低优先级中断,这个过程就叫做中断嵌套,也称为抢占。

所以抢占优先级的概念就是,优先级高的中断可以打断优先级低的中断的执行,从而形成嵌套。当然反过来,优先级低的中断是不能打断优先级高的中断的。

表3: 中断查询序列

那么既然有抢占优先级,自然就也有非抢占优先级了,也称为固有优先级。在表3中的最后一列给出的就是固有优先级,请注意,在中断优先级的编号中,一般都是数字越小优先级越高。

从表3中可以看到一共有 1~6 共 6 级的优先级,这里的优先级与抢占优先级的一个不同点就是,它不具有抢占的特性,也就是说即使在低优先级中断执行过程中又发生了高优先级的中断,那么这个高优先级的中断也只能等到低优先级中断执行完后才能得到响应。既然不能抢占,那么这个优先级有什么用呢?

答案是多个中断同时存在时的仲裁。比如说有多个中断同时发生了,当然实际上发生这种情况的概率很低,但另外一种情况就常见的多了,那就是出于某种原因我们暂时关闭了总中断,即 EA=0,执行完一段代码后又重新使能了总中断,即 EA=1,那么在这段时间里就很可能有多个中断都发生了,但因为总中断是关闭的,所以它们当时都得不到响应,而当总中断再次使能后,它们就会在同时请求响应了,很明显,这时也必需有个先后顺序才行,这就是非抢占优先级的作用了——如表3中,谁优先级最高先响应谁,然后按编号排队,依次得到响应。

抢占优先级和非抢占优先级的协同,可以使单片机中断系统有条不紊的工作,既不会无休止的嵌套,又可以保证必要时紧急任务得到优先处理。在后续的学习过程中,中断系统会与我们如影随形,处处都有它的身影,随着学习的深入,相信你对它的理解也会更加的深入。

认识单片机的中断系统

学习目标:

1.能说出单片机的中断概念及特点;

2.能画出中断系统的结构图并能加以解释;

3.能说出中断源的种类及其作用;

4.能说出中断系统中的几个特殊功能寄存器中各位作用;

5.能说出中断处理的三个过程及各个过程的工作原理;

6.会利用中断系统进行编程;

建议学时: 6学时

学习过程:

1、 以小组为单位,查阅资料回答下面问题:

(1) 什么是单片机的“中断”?完成一个中断需要几大步骤?

(2) 中断的三个特点是什么?

2、查阅资料,解释中断系统的结构图中各部分的名称及意义;

3、以小组讨论的形式,找出中断源有几种?各作用是什么?

4、通过查资料写出各中断系统的特殊功能寄存器各控制位的意义

5、以小组的形式,利用中断系统编写出以下程序段:

 在规定外部中断1为脉冲触发方式,高优先级,在中断服务程序中将寄存器B的内容右移一位,B的初值为02H。试编写主程序与中断服务程序。

评价活动:

班级

姓名

学号

年 月 日

序号

评价内容

配分

得分

1

能说出中断的定义及特点

20

2

能说出各中断源的种类及作用

20

3

能说出单片机中断系统的结构组成

10

4

能说出中断系统中特殊功能寄存器中各位的作用

20

5

能编写一段中断应用的小程序

30

小结建议

相关问答

什么是 单片机的中断 ?

单片机中断是指CPU在正常执行程序的过程中,由于计算机内部或外部发生了另一事件(如定时时间到,超压报警等),请求CPU迅速去处理,CPU暂时停止当前程序的运行,...

8051 单片机的中断 系统主要 作用 ?

IE:中断允许寄存器,MCS-51单片机CPU对中断的开放或禁止,以及各个中断源是否允许中断,是由中断允许控制寄存器IE来控制的。IE寄存器的字节地址为0A8H,各位地...

单片机 技术中, 中断 是一种()A、资源共享技术B、数据转换技...

[最佳回答]中断是一种(D)

什么是 单片机的中断 ?

单片机的中断是一种特殊的事件处理机制,它允许在程序执行过程中,当发生某个特定的事件时,暂停当前的任务,转而执行一个预定义的中断服务程序。中断可以是外...

单片机中断 是怎么回事?

单片机中断是指CPU在正常执行程序的过程中,由于计算机内部或外部发生了另一事件(如定时时间到,超压报警等),请求CPU迅速去处理,CPU暂时停止当前程序的运行,...

单片机 ,外部 中断 程序,为什么不用写在主程序中?为什么 中断 函数不在主函数也可以运行?

中断用于执行优先级更高的任务中断顾名思义是“中途打断”的意思。举一个简单的例子:您正在和部门的同事在开会,突然老板进来找你,你就得暂停会议,离开会议...

单片机中断 初始化是什么意思?

定时器/计数器的初始化在使用8051系列单片机的定时器/计数器前,首先要对TMOD和TCON寄存器进行初始化,同时还必须计算定时的时间(重点)。(1)确定T/C...

单片机 两种 中断 触发方式的区别?“低电平触发是当管脚INTO/IN...

[最佳回答]这个你可以看看单片机的电气参数。。。高低电平变化的门槛电压,陡度要求。。。。。

单片机中断 是怎么保存原来的数据然后继续执行的? - 懂得

单片机中断发生后,只是自动保存了断点地址,并不保存数据。数据,需要你自己编程来解决。怎么保存原来的数据?保存到堆栈也行,保存到别处也行,你可以...

51 单片机的中断 工作方式有几种并叙述其功能?

AT89S51有5个中断源:(1)INT0:外部中断0请求,低电平有效。通过P3.2引脚输入。(2)INT1:外部中断1请求,低电平有效。通过P3.3引脚输入。(3)T0:定时器/计数...

猜你喜欢