51单片机程序如下,问定时器为啥没工作,求改错。
1个回答
展开全部
TF0是什么?溢出中断请求标志位。 T0计数溢出时由硬件自动置TF0为1。CPU响应中断后TF0由硬件自动清0。 中断是什么意思? 就拿 你这里来说,就是暂停执行你这里的主函数,去执行中断里面 的函数。
你的程序过程是这样的: 定时器第一次计数,计数满后,TF0=1,进入中断(此时,就暂停执行主函数里面的东西),但是你中断里什么都没有(没有中断函数),然后硬件又直接将TF0置0,跳出中断,回到主函数,判断if(TF0==1)是否满足,这里不满足(因为TF0=0),所以 IF里面所有的东西都没有执行(包括定时器的重装),所以定时器只计数了一次,然后程序结束。
你这里不能吧定时器0的重装数据放在主函数里面,这个过程要放在中断函数里面取处理,因此用定时器时,要开启定时器0中断。
程序应该这么 写:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询