求助,关于51单片机 同时使用外部中断和定时中断 会发生冲突 导致定时中断停止的问题

2019-07-15 08:13发布

       首先,版主删帖能不能说明下原因。本人是菜鸟,不太懂论坛的规矩,你说明下原因我下次可以注意。否则,帖子删了,都不知道为什么。如何改进?       本人前几天发过一个“电子时钟”的求助帖子。(不知道是不是把所有程序贴上才被删了,这次我就不贴程序了,大体编程思路说一下)

       1、编程思路说明:
             用的是单片机学习板,通过外部中断控制时间的设定,定时中断控制时间的累加;外部中断被触发时,定时中断停止。用的是动态数码管显示。

       2、遇到的问题:
             每次设定完时间以后,时钟开始运行,但是没多久(每次时长都不同)时间就不动了。显示依然是正常显示。我程序看了好几遍应该是没问题的。
       3、网上查找到的答复:
            查了下网上的相似问题。答复是外部中断时长不能太长,或者说把定时中断优先级提高。.......外部中断不长,怎么设定时间,而且边设定边秒钟自己在跳也不好啊。
       4、本人的求教:
             关于上面提到的外部中断时间不能太长。这到底是为什么?能不能有大神仔细讲解一下,单片机内部运算过程中,外部中断时长过长会产生什么问题,最终导致定时中断停止。
       5、其他:
             也可能我上面的理解不对,请大神指教。
       6、顿首!顿首!顿首!顿首!


补充内容 (2018-7-5 15:24):
程序和电路图在7、8楼 请各位大神帮忙!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
nbpip1
2019-07-15 16:23
       昨天又试验了一下。在外部中断开始时,把定时中断的TMOD、TCON、IE全都置零。等外部中断结束,重新置1。正常运行的时间增加了。但是坚持了两个多小时还是停掉了。
       个人认为,应该是外部中断时改变了RAM中的某些值,最终导致TFx无法置1。但是,具体是一个怎么的过程就不明白了。
       请大神不吝赐教。

一周热门 更多>