标题: 新人,想请教各位一个关于单片机定时器中断的问题 [打印本页]

作者: 日本人孙笑川    时间: 2019-2-1 22:47
标题: 新人,想请教各位一个关于单片机定时器中断的问题
目的是实现1s间隔的led闪烁 第一张图是标准程序 第二张里我把i作为全局变量提到大循环中 为什么就无法实现(灯一直亮)

11.png (21.78 KB, 下载次数: 84)

11.png

22.png (15.09 KB, 下载次数: 83)

22.png

作者: xuyaqi    时间: 2019-2-2 07:41
非自动重装定时器,中断后要加一句TR0=1;才会继续定时。
作者: HC6800-ES-V2.0    时间: 2019-2-2 08:47
第一:以后直接贴程序,不要贴这个图,如果要修改,很不方便,可能就没人理你了
第二:你的第二个程序,要把time()函数放在主循环while(1)之前啊,在主循环内,每次都重新设置定时器,当然就是你现在的结果哦。
第三:if (i==1000)这句,最好把条件改为i>=1000
作者: nb5858    时间: 2019-2-2 09:54
两位老兄对程序都很精通;
作者: suuy79    时间: 2019-2-2 15:45
主要是没有自动重载造成的!两个办法:
1、设置自动重载
2、中断内再加载一次初值
作者: #include51.h    时间: 2019-2-2 18:04
将代码上上来,大家调着看看,光一个图片说明不了什么.如果你这么小器就没有去帮的了你
作者: 日本人孙笑川    时间: 2019-2-2 23:03
#include51.h 发表于 2019-2-2 18:04
将代码上上来,大家调着看看,光一个图片说明不了什么.如果你这么小器就没有去帮的了你

新人不懂规矩 下次会注意的 问题已经解决啦
作者: 日本人孙笑川    时间: 2019-2-2 23:04
HC6800-ES-V2.0 发表于 2019-2-2 08:47
第一:以后直接贴程序,不要贴这个图,如果要修改,很不方便,可能就没人理你了
第二:你的第二个程序,要 ...

好的 新人不懂规矩 下次会注意的 谢谢老哥 问题已经解决了
作者: shuisheng60    时间: 2019-2-3 20:36
同规矩没什么关系,只是别人拿到你代码能快速调试,早些找出问题
作者: 还有谁?    时间: 2019-2-10 15:14
是啊,相互进步,不存在什么
作者: lgrandstar    时间: 2019-2-10 21:03
如果说你定时器的初始化函数放在while()里,那么你就一直在进行初始化,定时器不会走时的
作者: lgrandstar    时间: 2019-2-10 21:04
你的定时器在while里一直初始化,导致定时器无法正常走时,它的预装载寄存器数一直没变




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1