51单片机程序如下,问定时器为啥没工作,求改错。

 我来答
Qiuooooooo
2015-11-18
知道答主
回答量:26
采纳率:0%
帮助的人:28.5万
展开全部

TF0是什么?溢出中断请求标志位。       T0计数溢出时由硬件自动置TF0为1。CPU响应中断后TF0由硬件自动清0。   中断是什么意思? 就拿 你这里来说,就是暂停执行你这里的主函数,去执行中断里面 的函数。  

    你的程序过程是这样的:  定时器第一次计数,计数满后,TF0=1,进入中断(此时,就暂停执行主函数里面的东西),但是你中断里什么都没有(没有中断函数),然后硬件又直接将TF0置0,跳出中断,回到主函数,判断if(TF0==1)是否满足,这里不满足(因为TF0=0),所以 IF里面所有的东西都没有执行(包括定时器的重装),所以定时器只计数了一次,然后程序结束。

    

    你这里不能吧定时器0的重装数据放在主函数里面,这个过程要放在中断函数里面取处理,因此用定时器时,要开启定时器0中断。

   程序应该这么 写:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式