51重新开定时器遇到问题_编程中常常遇到了定时器不工作的问题分析

编程中遇到定时器不工作时,往往是由于对定时器特性的误解。本文通过实例分析了定时器在51单片机中未按预期计时的原因,指出定时器必须在扫描周期内正确接收上升沿变化才能工作。解决方案包括增加置位前的限制条件,使用定时中断或软定时器,并注意CPU扫描周期对定时器状态的影响。在使用软定时器时,还需考虑CPU重启后的复位问题。
摘要由CSDN通过智能技术生成

我们日常编程中在使用定时器后,发现定时器并没有按照自己的意图去计时,出现了不计时的错误,进而怀疑是否是硬件故障,CPU是否正常等等,浪费了很多的时间去排查,实际上就是由于我们对定时器的特性不了解所造成的误解,下面我们来看看几个例子:

9bf983172b82c8165918f75d2058a7b2.png

程序设计的本意是:I4.2的上升沿触发T50和T60定时器,并在T60定时结束后复位M12.0。

可是在仿真发现,I4.2可以触发T50和T60定时器,但有时即使I4.2再次将M12.0置位为1,但T50不计时,现象如下图:

9bf983172b82c8165918f75d2058a7b2.png

问题分析:首先明确不是硬件故障,也不是语句错误引起的,而是定时器使用不正确引起的:

1 某个扫描周期:I4.2的上升沿置位M12.0,I4.2恢复为0

2 数个扫描周期后,假设第N个扫描周期,当T60计时到时,网络2中的M12.0被复位(注意在SD T50语句的后面),此扫描周期末M12.0由1变为0。网络3中的T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值