×
  • 登录

注册账号 |  忘记密码

微信账号登录
定时器初值怎么计算

定时器初值怎么计算(图1)

定时中断初值计算方法是: 1、确定定时时间化为微妙t。

2、晶振频率以M为单位f。3、计算初值:s=65536-t*f/12 比如11.0592M晶振,定时10毫秒。t=10*1000=10000us f=11.0592 s=65536-10000*11.0592/12=65536-9216 4、给定时寄存器赋值。THn=s/256 Tln=s%256

定时器计数最大值为65535,再计一次则溢出,产生中断。

也就是说初值设置成65535(65536-1)时,定时1个机器周期。

所以正确答案是65536-1000,此时定时1000个机器周期,12M晶振1个机器周期为1微秒,1000个就是1ms啦!

计算初值


初值 = 最大定时时间 - 定时时间


实例1


已知单片机的晶振是6Mhz,定时0.5ms,计算T0在方式1和方式2的初值。


(2)计算初值:计数值 = 定时时间/机器周期 = 500us/2us = 250


方式1初值 = 最大计数长 - 计数值 = 2^16 - 250 = 65286 = 0ff06H(TH0= 0ffH,TL0= 06H)


方式2初值 = 最大计数长 - 计数值 = 2^8 - 250 = 6 = 06H (TH0=TL0=06H)

假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期就是1us。如果用定时器方式一来定时50ms的话,那么就要先给TH1和TL1装一个初始值,在这个初始值的基础上计50000个数后,定时器溢出,此时刚好就是50ms中断一次,这样便可精确控制定时时间了。要计50000个数时,TH1和TL1中应该装入总数是65536-50000=15536,把15536对256求模:15536/256=60装入TH1中,把15536对256求余:15536%256=176装入TL1中。

总结:当用定时器方式一时,设机器周期为Tcy,定时器产生一次中断的时间为t,那么需要计数的个数N=t/Tcy,装入THx和TLx中的数分别为

THx=(65536-N)/256

TLx=(65536-N)%256

以上就是关于“定时器初值怎么计算”的全部内容,希望能帮到你!


本站所载信息仅供交流参考,不代表本站赞同其观点或证实其内容的真实性。对信息的准确性、完整性及时效性不作任何保证,用户应自行判断并承担风险。访问本站即视为同意本声明。如发现内容错误或侵犯您的权益,请及时联系 349188881@qq.com,我们将在24小时内核实处理。


相关推荐