中断显示怪现象?

2019-03-24 19:29发布

我现在用单片机处理一个128*64的液晶屏,我把显示函数放在主函数的while(1)里面,信息能够在屏上显示,但是当我把显示函数放在时间这1S的定时中断里面后,屏上就不会有显示了,其实这也是相当于1S刷屏呀,这是什么原因呀?我在主函数里面进行显示后再延时1S,其实效果应该是一样的呀?求原因 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
jishuaihu
2019-03-25 00:04
我没有见过有51的定时器定时能达到1S的。普通51单片机12MHz晶振最多是65535uS,折合65.535mS。当然你可以通过加变量实现1S的计时。
用中断处理显示函数显然是不合适的,中断处理的数据应该尽量的少,实际使用的时候一般都是设置一个标志位,在中断函数里面对标志位进行操作,跳出中断后再执行所需函数。你的问题可能是显示函数还没有执行完毕下一个中断就到了,造成一直出于中断状态,显示函数永远没有完整的执行过一次,液晶自然也就不能显示了。还有你现在的中断函数进入中断后应该是没有关闭中断,如果关闭中断的话应该也可以显示的,但不建议这样用。再看一下程序吧!

一周热门 更多>