×

51单片机的中断优先级和中断嵌套的详细资料介绍

消耗积分:1 | 格式:pdf | 大小:0.06 MB | 2019-04-23

分享资料个

  说最基本的,老的51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。现在很多扩展的51单片机已经有4个优先级(或更多)和更多的中断源了。在说到中断之前,我先来定义一下优先级,明白了什么是优先级,后面的阐述就容易明白了。实际上很多人都是混淆了优先级的含义,所以才觉得糊里糊涂。中断的优先级有两个:查询优先级和执行优先级。什么是查询优级呢?我们从datasheet或书上看到的默认(IP寄存器不做设置,上电复位后为00H)的优先级:外部中断0 》 定时/计数器0 》 外部中断1 》 定时/计数器1 》 串行中断或 int0,timer0,int1,timer1,serial port 或 INT0、T0、INT1、T1、UART 或 PX0》PT0》PX1》PT1》PS》。

  其实都是查询优级。首先查询优先级是不可以更改和设置的。这是一个中断优先权排队的问题。是指多个中断源同时产生中断信号时,中断仲裁器选择对哪个中断源优先处理的顺序。而这与是否发生中断服务程序的嵌套毫不相干。当CPU查询各个中断标志位的时候,会依照上述5个查询优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高优查询先级的中断标志位,但并不代表高查询优先级的中断可以打断已经并且正在执行的低查询优先级的中断服务。例如:当计数器0中断和外部中断1(按查询优先级,计数器0中断》外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1 的中断服务函数正在服务的情况下,这时候任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0计数器0中断。而中断的执行优先级就是你对IP寄存器的设置了。在2个优先级的情况下,某位为1,则相应的中断源为高优先级;为0,则为低优先级。

  关于中断的优先级有三条原则:

  1、CPU同时接收到几个中断时,首先响应优先级最高的中断请求;

  2、正在进行的中断过程不能被新的同级或低行优优先级的中断请求所中断;

  3、正在进行的低行优优先级中断服务,能被高行优优先级中断请求中断;

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

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !