打印

单片机的中断优先级?

[复制链接]
1656|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beckham|  楼主 | 2007-7-24 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前一直以为51单片机在响应高优先级中断的时候,如果有低优先级的中断再来,CPU当时不响应,既便在执行完高优先级的中断服务程序后也不会去执行刚才的低优先级中断的服务程序,结果用PROTEUS做了仿真,发现,CPU在执行完高优先级的中断服务程序后,竟然又自动执行那个低优先级的中服,然后才回到主程序。究竟是PROTEUS仿真出了问题,还就是这个样子的?

相关帖子

沙发
wtfshxkj| | 2007-7-24 17:29 | 只看该作者

阁下理解错误

   对于MCS-51而言:
      假定优先级 INT_X > INT_Y
   1) 若两者同时申请中断,则CPU优先处理INT_Y中断;
      此时INT_X暂时被挂起,直至INT_Y中断服务程式执行完毕,
      INT_X才得以响应;
   2) 若INT_Y中断服务程式正在执行过程中,LSI产生INT_X中断请求;
      则CPU将如同1)一样处理之;
   3) 若INT_X中断服务程式正在执行过程中,LSI产生INT_Y中断强求;
            并且,此时总中断及INT_Y中断未被禁止;
      那么CPU将立即暂停对INT_X的处理,转而执行INT_Y中断服务程
      式(即产生中断嵌套);
      待INT_Y处理完毕后,CPU才随之转入未完成的INT_X中断函数,继续
      运行。

使用特权

评论回复
板凳
wtfshxkj| | 2007-7-24 17:29 | 只看该作者

建议再仔细研读以下Datasheet

使用特权

评论回复
地板
beckham|  楼主 | 2007-7-24 21:30 | 只看该作者

谢谢,PROTEUS仿真结果是对的。

因为满足中断响应的基本条件,低优先级的中断标志位也被置1,只不过暂时不能执行中服。待高优先级的中服执行完后才能执行。对于边沿触发的外部中断0或1,CPU在响应中断后由硬件自动清除其中断标志位IE0或IE1,无需采取其它措施。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

238

帖子

1

粉丝