MCS-51中断系统中的复位问题

11-19| http://www.dianzi6.com | 单片机学习|人气:474

MCS-51中断系统中的复位问题
     INTEL公司的MCS-51系列单片机因其强大的功能和低廉的价格,在我国各个领域得到广泛的应用,特别是中断系统更加强了它处理突发事件的能力和响应速度。

      MCS-51系列单片机提供了多个中断源(8051提供5个,8052提供了6个中断源),每个中断源可编程两种级别的中断,高级中断请求和低级中断请求,因此可实现两级中断服务嵌套。即使同一级别的中断源,在同时请求中断时,CPU响应也有先后顺序的区别。因此MCS-51在实时系统,仪器仪表中使用十分广泛,中断系统的设计则是软件设计中的一个关键点,处理不好往往使软件达不到设计效果。

      下面是笔者在应用过程中曾遇到过的一个问题。
      我们设计的一台电力测量仪含有键盘和秒时钟,键盘中断采用INT0,秒时钟用T0,INT0设置为高优先级别中断,T0为低级别,秒中断服务占有约750ms。要求CPU对键盘具有很高的响应速度,而且一旦接收有效的键盘命令,使程序重新从等待处进入的测量状态,不再回到被键盘打断的地方。软件流程如图1所示。

                                                                                  最初的键盘服务程序末尾如下:     
 
                            

      在调试过程中,常常响应键盘中断后,不能正常进入秒中断,只在WAIT处等待循环,此时EA=1,TR0=1,TF0=1,可见EA=1,TR0=1,TF0=1不是中断T0响应的充要条件。

      经多方查询有关资料发现,MCS-51系列单片机的中断系统有两个不可寻址的优先状态触发器,它们的置位状态,一个指示CPU正在执行的高优先级中断服务程序,另一个指出正在执行低优先级中断服务,这两个触发器的置位状态分别屏蔽所有中断申请和同一优先级的其它中断请求。

      秒中断服务需要750ms,当按下键盘时有75%的机率正在执行秒中断服务程序,指示执行低优先级中断服务的触发器已置位。响应键盘中断后,指示执行高优先级中断服务的触发器置位,而整个过程中只执行了一次RETI指令,指示CPU正在执行T0中断的触发器没有复位,即使TR0=1,TF=1,EA=1,CPU仍认为程序已执行秒中断服务,因而不能再次进入秒中断服务,为此,笔者将原程序改为

      汇编装入系统后,一切正常。笔者进一步验证其它中断也有类似现象。


如果觉得 MCS-51中断系统中的复位问题这篇文章不错,可以推荐给朋友分享哦。
本文Tags:单片机开发,单片机原理,单片机教程,单片机学习,
相关单片机学习资料


温馨提示; 本站的资料全部免费下载,为方便下次找到本站记得将本站加入收藏夹哦,牢记网址http://www.dianzi6.com

此页提供MCS-51中断系统中的复位问题单片机开发,单片机原理,单片机教程, 单片机学习参考。本站还有更多的单片机学习相关资料分享。
Copyright© www.dianzi6.com Inc. All rights reserved 。 1 2 3 4 5 6 7 8