51单片机定时器寄存器TH0和TL0初值的计算方法

时间:2024-02-17 06:56:08

前提:

   1. 频率:频率是单位时间内完成周期性变化的次数
   2.一个时钟周期 = 12 个机器周期

计算方式:

  假设我们单片机的晶振是11.0592MHz,那么一秒钟可产生的机器周期数  11.0592MHz / 12 = 921600 个,
  如果我们要定时50 ms,即0.05 s,所以需要921600 * 0.05 = 46080个机器周期。而如果我们的定时器工作
  在16位定时器/计数器模式,那么最大值为 2^16=65536,所以初值设置为  65536-46080 = 19456。
  十六进制写法为:
        TH0 = 0X4c;
        TL0 = 0x00;
  十进制写法为:
        TH0 = (65536-46080)/256;
        TL0 = (65536-46080)%256;
        (16位二进制数对256求模得到的是高八位,同理求余得到的是低八位)

注:初学,大神勿喷!!