在默认状态下,中断优先级控制寄存器IP为0,所有中断源处于低优先级。当所有的中断源处于同一个优先级,并同时向CPU申请中断时,CPU按优先权顺序进行响应;要实现中断嵌套条件是:CPU先响应的中断源应该处于低优先级,在CPU执行该中断源的中断服务程序时,另一高优先级的中断源申请了中断。同一优先级的中断源不能实现中断嵌套。即中断嵌套,就是中断服务过程中再被中断!所谓的优先权严格说是一种排队的机制,相互之间并没有嵌套。
1.多个中断同时发生,则高优先级的中断先执行
2.多个中断同时发生,则同一优先级中优先权靠前的先执行。
3.低优先级的中断在执行时,高优先级的中断可以中断低优先级的中断程序
4.低优先权的中断在执行时,同一优先级中高优先权的中断不能中断低优先权的中断程序
这个问题就像你去医院看病,看病分为普通挂号、急诊号、特级抢救号(比如小胡同志遇刺之类)
现在医院只有一个医生,正常情况医生按序号依次诊断普通挂号的病人,当有急诊号的病人时,医生就停止诊断普通挂号的病人,去诊断急诊号病人,正在给急诊号病人做手术的时候来了一个特级抢救号,医生马上停止了对急诊号病人的抢救,赶去抢救特级抢救号的病人,当抢救完特级抢救号病人以后,医生就回到急诊号病人的手术室,继续给他做手术。把急诊号病人的手术做完以后,医生再回到自己的办公室诊断普通挂号的病人。
挂号的级别不一样,医生的对待方式也就不一样,说来说去还是医院的医生太少了,一个医生同时只能看一个病人。单核时代就是这座医院,只有一个能干事的,所有的事情都要排队。
关键字:MCS-51系列 单片机 中断优先级
引用地址:
MCS-51系列单片机的中断优先级
推荐阅读最新更新时间:2024-03-16 15:10
如何用51单片机数码管实现跑马灯功能?
基于51单片机学习板。用S1键作为控制跑马灯的方向按键,S5键作为控制跑马灯方向的加速度按键,S9键作为控制跑马灯方向的减速度按键,S13键作为控制跑马灯方向的启动或者暂停按键。记得把输出线P0.4一直输出低电平,模拟独立按键的触发地GND。 (2)实现功能: 跑马灯运行:第1个至第8个LED灯一直不亮。在第9个至第16个LED灯,依次逐个亮灯并且每次只能亮一个灯。每按一次独立按键S13键,原来运行的跑马灯会暂停,原来暂停的跑马灯会运行。用S1来改变方向。用S5和S9来改变速度,每按一次按键的递增或者递减以10为单位。 数码管显示:本程序只有1个窗口,这个窗口分成3个局部显示。8,7,6位数码管显示运行状态,启动时显示
[单片机]
单片机点阵案例循环显示爱心和“亲”字
#include main.h //定义变量 unsigned char temp = 0xfe; unsigned char KEY_NUM = 0; unsigned char Display_word = { 0x00,0x48,0x2A,0x8E,0xFB,0x0E,0x2A,0x48, //亲 0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C, //心 }; //**************************************************** //主函数 //*************************************************
[单片机]
学单片机需要多少C语言基础,C语言单片机编程教程
很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言,都差点崩溃了! 学习单片机开发需要掌握的东西很多,就一个C语言,学了3个月,还是一头雾水,你还能坚持的下去嘛? 如果不是因为当年要参加电赛,我早都放弃了,所以大家千万不要走我的老路。 那要做单片机开发,C语言基础学习到什么程度就可以开始了? 对于刚入门的学员,大家学习单片机的一些基础就OK了,下面我给大家简单的列举一下: 1. 学习二进制,十进制、十六进制数据的概念和应用 2. C语言变量的定义和使用(unsigned,char
[单片机]
单片机电子密码锁仿真 可修改密码
单片机源程序如下: #include reg52.h #include delay_ms.h #include 矩阵键盘.h #include i2c.h #include 1602.h #include delay_ms.h #include mima.h #define uchar unsigned char #define uint unsigned int #define A 0x0a //输入密码 #define B 0x0b //修改密码 #define D 0x0d //关锁 #define enter 0x0c //确认 #define backspace 0x0f //退格键 sbit baoj
[单片机]
基于51单片机的调光控制器设计
1 调光控制器设计 在日常生活中,我们常常需要对灯光的亮度进行调节。本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。 调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。 这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。 1.1 硬件部分 本调光控制器的框图如下: 控
[单片机]
TMS320VC5402的HPI与51单片机的接口设计
0 引言 TMS320VC5402是TI公司推出的性价比极高的定点数字信号处理器(DSP)。它具有先进的多总线结构(三条16位数据存储器总线和一条程序存储器总线);其数据/程序寻址空间为1 M×16 bit: 内置4 k×16 bitP/DROM和16 k×16 bit-DARAM;此外,该DSP内含两个多通道缓冲串行口,一个8位并行与外部处理器通信的HPI口,2个16位定时器以及6通道DMA控制器;具有低功耗,适合电池供电设备等特点 。 51系列单片机是一种很经典的单片机。20多年来一直久盛不衰。而且Intel通过授权5l内核,目前已出现了很多第三方生产的51系列产品。这些产品一般都具有较高的时钟频率和较大的存储空间,而且还
[单片机]
如何利用STM32单片机串口发送字符串
最近由于要调试一个SMS发送短信的模块,该模块需要发送一系列AT指令,且需要字符串发送,但是STM32官方给的usart.c中并没有直接发送字符串的函数,因此写了一个发送字符串的函数。 其实发送字符串的本质还是发送一个个字符,所以只需在字符串结束标志之前,循环发送字符即可。不罗嗦,上程序。 //程序功能:利用串口发送一个字符串 // 参数:USARTx USART编号 可取 USART1、USART2、USART3、USART4、 USART5(STM32F103ZET6) str 需要发送的字符串 #include “stm32f10x.h” void Usart_SendString(USART_TypeDef* US
[单片机]
基于单片机和PWM控制方法调速实现无刷控制器检测设计
引言 伴随着城市化进程,人们生活的交通距离不断扩大,代替燃油汽车和自行车的电动车的普及大幅度的提高了电力资源的利用效率,促进了国民经济的健康发展。电动自行车以电力作动力,骑行中不产生污染,无损于空气质量。从改善人们的出行方式、保护环境和经济条件许可情况等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。电动自行车所用直流电机分为有刷电机和无刷电机两种。其中有刷电机控制较简单。但其易磨损的电刷带来维修保养工作量相对较大、使用寿命相对较短等缺点。而直流无刷电机本身没有易磨损部件,电机寿命长,维修保养工作量小。但直流无刷电机采用电子换向原理工作,其控制过程比有刷电机复杂得多,因此对控制器质量的要求也高得多。 目前电动自行车采
[单片机]