0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机的默认中断优先级

CHANBAEK 来源:Zi Jin Code 作者: 锟酱不是酱 2023-11-01 11:30 次阅读

上一篇教程我们简单认识和学习了中断怎么使用,认识了单片机里面的几种中断源,学习了怎么配置中断的设置

这里简单的复习一下几种中断源

中断符号中断名称
IE0外部中断0(INT0)
ET0Timer0中断
IE1外部中断1(INT1)
ET1Timer1中断
ESUART串口中断
ET2Timer2中断

阳光明媚的秋日,你坐在琴桌前轻抚古琴,这时候门外传来敲门声,你正要起身,身旁茶桌上的水壶里的水烧开了……

你起身,从炉上拿起烧水壶放在一旁,再来到门前打开了门……

提起水壶和开门是两个事件,当两个事件发生的时候总要有顺序的,先提起水壶再开门或者先开门后提起水壶所造成的结果是不同的。往往为了安全,我们会先提起水壶再去开门,这就是我们处理两个事件的顺序

在单片机中,倘若同一个时刻Timer0触发了中断,Timer1也触发了中断,这时候外部中断又触发了。单片机会先执行哪个中断操作呢?

是不是随意执行一个操作呢?

显然不是的,为了保证程序的有序执行,单片机根据“中断优先级”判断中断是否需要优先执行

优先级越高的中断,越优先执行

单片机的默认中断优先级

单片机里面,已经对中断的优先级进行设置,这是C51的所有中断优先级

中断优先级(数字越大越优先)中断符号中断名称
6IE0外部中断0(INT0)
5ET0Timer0中断
4IE1外部中断1(INT1)
3ET1Timer1中断
2ESUART串口中断
1ET2Timer2中断

中断的嵌套

(1)低优先级的中断和高优先级的中断同时触发,单片机优先执行高优先级的中断

图片

由于中断A的优先级大于中断B的优先级,所以单片机先处理完中断A的任务,再跳转处理中断B的任务,最后跳转回原来的位置,继续执行程序

(2)低优先级中断执行过程中高优先级中断触发中断,单片机跳转执行高优先级中断,再返回执行低优先级中断,执行结束后返回程序

图片

中断A的优先级大于中断B的优先级,中断B触发,单片机跳转处理中断B的任务,执行到一半的时候,中断A触发,由于中断A的优先级更高,所以单片机先去处理中断A的任务,处理完再跳转回来处理中断B的任务

(3)高优先级的中断处理的过程中低优先级的中断触发,单片机优先处理完高优先级的中断的任务,再执行低优先级的中断的任务

图片

中断A的优先级大于中断B的优先级,中断A触发,单片机先去执行中断A,执行的过程中中断B触发,由于中断B的优先级小于中断A的优先级,所以单片机在执行完中断A后才会执行中断B的任务

上面中断的执行过程就叫中断的嵌套

到此我们简单的复习一下

中断优先级(数字越大越优先)中断符号中断名称
6IE0外部中断0(INT0)
5ET0Timer0中断
4IE1外部中断1(INT1)
3ET1Timer1中断
2ESUART串口中断
1ET2Timer2中断

下面用这个图示实践以下中断的嵌套

图片

Timer0先触发,Timer0运行的过程中Timer1触发,由于Timer1的优先级不及Timer0,所以单片机执行完Timer0才处理Timer1,在Timer1的处理过程中遇上了外部中断INT0的触发,单片机先执行INT0的任务,再返回执行Timer1的任务,最后所有的任务都完成了以后,退回主程序

设置中断优先级

我们再看看单片机的默认优先级

中断优先级(数字越大越优先)中断符号中断名称
6IE0外部中断0(INT0)
5ET0Timer0中断
4IE1外部中断1(INT1)
3ET1Timer1中断
2ESUART串口中断
1ET2Timer2中断

有的时候,如果使用默认的优先级,可能难以满足我们对程序的需求,事实上,我们可以手动设置单片机内中断的优先级。

手动设置单片机的优先级涉及到一个寄存器

IP寄存器,0xB8,可位寻址

符号说明
7--
6--
5PT2Timer2优先级设置
4PSUART串口优先级设置
3PT1Timer1优先级设置
2PX1外部中断INT1优先级设置
1PT0Timer0优先级设置
0PX0外部中断INT0优先级设置

当我们给其中的一位写上1的时候就说明我们把这一位的中断优先级提前了

举个简单的例子,如果我们要做一个简单的秒表+时钟电子钟,秒表使用Timer0,时钟使用Timer1,为了让机器使用秒表的时候能让时钟正常走时,所以我们把Timer1的优先级提前,如下

PT1 = 1;

优先级的设置我们会在后面的项目中用到的,后面用到的时候我也会跟大家细细说明的哦

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634621
  • 中断
    +关注

    关注

    5

    文章

    898

    浏览量

    41470
  • 串口
    +关注

    关注

    14

    文章

    1551

    浏览量

    76421
  • 中断优先级
    +关注

    关注

    0

    文章

    22

    浏览量

    9368
收藏 人收藏

    评论

    相关推荐

    MCS-96系列单片机中断优先级的控制方法

    MCS—96系列单片机中断系统颇具特色,其中断优先级的控制极具灵活性,用户可采用软、硬件结合的方法随心所欲地安排各类中断源的
    发表于 05-03 16:36 2527次阅读

    单片机中断优先级应用案例

    单片机同时接收到几个中断请求时,单片机中断请求的响应顺序是如何确定的?实际上,单片机是通过中断
    发表于 10-31 14:42 1671次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>中断</b><b class='flag-5'>优先级</b>应用案例

    关于51单片机中断嵌套

    各位大神,如果我用STC90C516RD的单片机默认中断优先级,单独跑两个定时器中断,都OK,两个定时器一起跑就有问题了,定时器0
    发表于 04-23 12:31

    单片机中断优先级的软件扩展方法

    为了解决MCS-51系列单片机只能由IP寄存器设定两优先级的问题,文中给出了利用软件对中断优先级进行扩展的方法,同时给出了高于两个
    发表于 04-30 13:43 29次下载

    单片机中断优先级实验

    单片机外部中断实验和中断优先级实验所需的C语言程序和电路图适于初学者使用
    发表于 11-16 18:32 0次下载

    STM32单片机优先级的定义

    先占优先级也就是抢占优先级,概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断
    发表于 12-07 15:09 9413次阅读
    STM32<b class='flag-5'>单片机</b><b class='flag-5'>优先级</b>的定义

    如何设置51单片机中断优先级

    PS:串行口中断优先级控制位。PS=1设定串行口为高优先级中断;PS=0为低优先级中断
    发表于 12-17 16:28 3.4w次阅读

    如何采用STM32单片机中断向量控制器NVIC来分配优先级的数量

    先占优先级的概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断先占优先级如果没
    发表于 12-20 16:17 3277次阅读

    解析单片机里的中断优先级

    抢占优先级和非抢占优先级的协同,可以使单片机中断系统有条不紊的工作,既不会无休止的嵌套,又可以保证必要时紧急任务得到优先处理。
    的头像 发表于 12-28 17:03 9045次阅读
    解析<b class='flag-5'>单片机</b>里的<b class='flag-5'>中断</b><b class='flag-5'>优先级</b>

    51单片机中断优先级中断嵌套的详细资料概述

    基本型80C51系列单片机有5个中断源,2个优先级,每个中断源可通过软件设置为高优先级或低优先级
    发表于 09-03 17:28 5次下载
    51<b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b><b class='flag-5'>优先级</b>和<b class='flag-5'>中断</b>嵌套的详细资料概述

    为什么51单片机默认中断优先级都是低级及中断嵌套

    51单片机(80C51系列)有5个中断源,2个优先级,可以实现二中断服务嵌套。现在很多扩展的51单片机
    发表于 07-23 17:37 1次下载
    为什么51<b class='flag-5'>单片机</b>的<b class='flag-5'>默认</b><b class='flag-5'>中断</b><b class='flag-5'>优先级</b>都是低级及<b class='flag-5'>中断</b>嵌套

    51单片机中断优先级中断嵌套的详细资料说明

    51单片机(80C51系列)有5个中断源,2个优先级,可以实现二中断服务嵌套。现在很多扩展的51单片机
    发表于 07-09 17:41 3次下载
    51<b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b><b class='flag-5'>优先级</b>及<b class='flag-5'>中断</b>嵌套的详细资料说明

    单片机中断优先级设置

    STC12C5A60S2单片机复位后IP、IP2、IPH、IP2H均为00H,各个中断源都是低优先级=》不能被同级中断中断
    发表于 11-17 09:36 6次下载
    <b class='flag-5'>单片机</b>之<b class='flag-5'>中断</b><b class='flag-5'>优先级</b>设置

    STM8S105硬件中断映射表和软件中断优先级

    硬件中断优先级中0最高,依次优先级降低。只有当软件优先级相同时,单片机才进行硬件优先级的判断,且
    发表于 01-14 15:28 1次下载
    STM8S105硬件<b class='flag-5'>中断</b>映射表和软件<b class='flag-5'>中断</b><b class='flag-5'>优先级</b>位

    51单片机中断优先级都有啥?如何设置?

    51单片机包含五个中断源,两中断优先级优先级可编程设置,通过IP进行设置。
    发表于 02-09 12:32 2次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>中断</b><b class='flag-5'>优先级</b>都有啥?如何设置?