51单片机如何计算定时时间

51单片机如何计算定时时间

假设你的晶振频率是12MHz,比如你要定时1秒,那么选用定时器工作方式1的话,最大可以计65536次,每计一次就是一个时钟周期(12个晶振周期)即1us,
所以最大可以一次中断计时65.536ms,那么我们就可以让它一次中断50ms,然后中断20次就是1s,现在就可以设置计时器的初值了,
(65536-A)*(10^(-6)) = 50*(10^(-3))
所以A = 65536 - 50000; 所以TH0=A/256;TL0 = A%256;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-18
定时时间=(2^N-初值)*机器周期;
N=定时器位数,如果把初值换成当前计数值,也可以知道后面定时还剩多少时间。不过要取出当前计数值不太容易,而且误差很大。本回答被提问者采纳
第2个回答  2010-04-18
如果只是计算定时而无需理论根据,可下载一个MCUtool.exe小工具,可很方便地得出。此工具还有其它 如延时时间计算,波特率计算,汉字编码查询等诸多功能 。
第3个回答  2010-04-18
定时时间=(2^N-初值)*机器周期
第4个回答  2010-04-18
选12M的晶振比较好定时,定时为(65535-初值)/10^6