2019-03-24 19:29发布
原帖由 jiangjieqazwsx 于 2011-12-21 22:26 发表 我现在用单片机处理一个128*64的液晶屏,我把显示函数放在主函数的while(1)里面,信息能够在屏上显示,但是当我把显示函数放在时间这1S的定时中断里面后,屏上就不会有显示了,其实这也是相当于1S刷屏呀,这是什么原 ...
检查是不是有其它高优先级中断那些,影响了LCD的操作。
可以在进入定时中断后,关闭总中断,待定时中断中,对LCD的操作完成后,再重新开启中断。
最多设置5个标签!
用中断处理显示函数显然是不合适的,中断处理的数据应该尽量的少,实际使用的时候一般都是设置一个标志位,在中断函数里面对标志位进行操作,跳出中断后再执行所需函数。你的问题可能是显示函数还没有执行完毕下一个中断就到了,造成一直出于中断状态,显示函数永远没有完整的执行过一次,液晶自然也就不能显示了。还有你现在的中断函数进入中断后应该是没有关闭中断,如果关闭中断的话应该也可以显示的,但不建议这样用。再看一下程序吧!
检查是不是有其它高优先级中断那些,影响了LCD的操作。
可以在进入定时中断后,关闭总中断,待定时中断中,对LCD的操作完成后,再重新开启中断。
只要满足中断条件就会进入中断,定时器没有关就不会停,中断没有关有中断请求就会进入中断入口地址。具体的看C8051F数据手册里面的定时器和中断部分的原理吧,我没用过这个片子,也说不清。
再有一个,显示不应该这么用。中断里面处理的东西要尽量少,最好只做标记,不做处理。等跳出中断后再根据标志位进行相应处理!
一周热门 更多>