51单片机用T0计数器计算T1定时器的溢出次数,该如何实现?

51单片机用T0计数器计算T1定时器的溢出次数,该如何实现?,第1张

方法一:

只开T1定时器中断,在T1定时器中断子程序中对(TH0

TL0)做加一运算薯银。

方法二:

T1定时器模式,T0计数器模式,在T1定时器中断子程序中对某一固定引脚Px.x做“置1-清0-置卜册1” *** 数弊宴作,并将对应引脚连接在T0(P3.4)引脚。默认情况下T0中断比T1中断权限高,每次定时器T1溢出后,会在中断子程序内对引脚Px.x进行“置1-清0-置1”,过程中1到0的下降沿跳变会引起(TH0

TL0)加一;直到计数器T0溢出前的“置1-清0”时刻后“置1”时刻前,T0产生溢出中断,中断T1的中断子程序。

比较:

如果仅仅为了计算“T1定时器的溢出次数”的话,随便定义两个字节的“内部RAM数据存储器”就可以了,和方法一类似,在中断子程序中,对寄存器内数值加一,完全可以实现。

用T0算T1太浪费资源了!

定义“内部RAM数据存储器”计算“T1定时器的溢出次数”的程序:

可以用Keil仿真以下,能看出效果的!

你把脉冲输入接到p3.4(或者p3.5)上吧,然后把定时器0(或者定时器1)改成计数模式,最多能计数65536个脉冲,不知道能不能满足你的历携贺要求,如果不能满足,那就中断之隐塌后记下中断次数,定时器清0重新计数,最后65536乘上中断次数就行了

定时器/计数器计数的时候不会占用cpu的时间,所以只要不溢出中肢派断不会增加程序的运行时间,而且计数也准确啊

还有啊,看下你的ad是不是也可以接成中断的方式

1,cpu运行,和定时凳冲岩器是并行进行的.

2,cpu在工作中,得到了定时中断,那么它停止手头的工作去中断请求中服务,完成服务,返回原来的断点位置继续工作,

3,如果在中断服务中,定时器不关,那么在cpu执行服务判弊时,定时器是工作的.一枣御般建议关掉,执行完再打开.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12422930.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存