51单片机的默认中断优先级都是低级及中断嵌套_第1页
51单片机的默认中断优先级都是低级及中断嵌套_第2页
51单片机的默认中断优先级都是低级及中断嵌套_第3页
51单片机的默认中断优先级都是低级及中断嵌套_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、nt1,timer1,serial port 或 INT0、T0、 INT1、 T1、 UART或 PX0;PT0;PX1;PT1;PS;其实都是查询优级。首先查询优先级是不可以更改和设 置的。这是一个中断优先权排队的问题。是指多个中断 源同时产生中断信号时,中断仲裁器选择对哪个中断源 优先处理的顺序。而这与是否发生中断服务程序的嵌套 毫不相干。当CPU查询各个中断标志位的时候,会依照 上述5个查询优先级顺序依次查询,当数个中断同时请 求的时候,会优先查询到高优查询先级的中断标志位, 但并不代表高查询优先级的中断可以打断已经并且正在 执行的低查询优先级的中断服务。例如:当计数器0中断和外部中断

3、1(按查询优先级,计 数器0中断;外部中断1)同时到达时,会进入计时器0 的中断服务函数;但是在外部中断1的中断服务函数正 在服务的情况下,这时候任何中断都是打断不了它的, 包括逻辑优先级比它高的外部中断0计数器0中断。而中断的执彳丁优先级就是你对IP寄存器的设置了。在2 个优先级的情况下,某位为1,则相应的中断源为高优 先级;为0,则为低优先级。关于中断的优先级有三条原则:1、CPU同时接收到几个中断时,首先响应优先级最高的 中断请求;2、正在进行的中断过程不能被新的同级或低行优优先级 的中断请求所中断;3、正在进行的低行优优先级中断服务,能被高行优优先 级中断请求中断;若:同一执行优先级中

4、的中断申请不止一个时,则有一 个中断优先权排队问题。优先权排队,由中断系统硬件 确定的自然优先级形成,优先权自高到低的顺序即:外部中断0;定时/计数0;外部中断1;定时/计数1;串行接口 (同级中断默认顺序) 例如:设置IP = 0 x10,即设置串口中断为最高优先级, 则串口中断可以打断任何其他的中断服务函数实现嵌套, 且只有串口中断能打断其他中断的服务函数。若串口中 断没有触发,则其他几个中断之间还是保持逻辑优先级, 相互之间无法嵌套。关于中断嵌套。可以这样说,当一个中断正在执行的时 候,如果事先设置了中断优先级寄存器IP,那么当一个 更高优先级的中断到来的时候会发生中断嵌套,如果没 有设

5、置则不会发生任何嵌套;如果有同一个优先级的中 断触发,它并不是在“不断的申请”,而是 将它相应的中断标志位置即IE寄存器的某位置位,当 CPU执行完当前中断之后,按照查询优先级重新去查询 各个中断标志位,进入相应中断。要记住,没有设置IP时,单片机会按照查询优先级(或 都说逻辑优先级)来排队进入服务。如果要想让某个中断 优先响应,则要设置IP,更改执行优先级(或者说物理 优先级)。要注意的是,当设置了 IP后,当低执行优先 级中断在运行时,如果有高执行优先级的中断产生,则 会嵌套调用进入高执行优先级的中断。如果你是用C语 言写的程序,并在中断服务时using 了寄存组,要注意, 两个不同优先级

6、的中断不要using同一组寄存器。否则 进入一个中断会破坏之前中断用的寄存器数据。看两个问题,如下:1在各个中断都是低优先级的时候,如果定时器0的溢 出进入中断。在这个中断处理的过程中,外部中断0也 被触发了,那么是不是要发生中断嵌套?2如果定时器0发生中断的时候,进入中断处理程序, 这个时候外部中断1条件触发条件满足了。因为定时器0 自然优先级比外部中断1高,那么定时器0的中断处理程 序继续执行。假设定时器中断处理程序执行的过程中, 外部中断1的触发。条件消失了,那么等定时器0的中断 处理完后,程序还是会进入外部中断1处理程序吗? 答案1:在IP事先设置了外部中断0的优先级的情况下, CUP会中止定时器0的中断服务,进入外部中断0服务程 序,执行完以后再回到定时器0中断服务程序。否则不 会。答案2:肯定会进入中断的;外部中断1的触发条件满足 后会置位外部1的中断标志,即使后来外部中断1的触发 条件消失了,也不会清除已置位的中断标志,所以等定 时器0的中断处理完后,程序判断外部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论