1时钟周期=1/晶振频率M
1机器周期=12(51系列12T,若1T则为1)X时钟周期 = 12(1)X(1/晶振频率M) = 1 us(1/12 us)
1us机器周期脉冲数=晶振频率f/12
假设12MHZ晶振工作在51单片机12T模式下,需要使用定时器进行50MS定时操作,定时器工作在方式1;
12M的晶振每秒(s)可产生1M(10^6 us)个机器周期
50ms就需要50×1000 us × 1us(1机器周期)个机器周期 = 50000
定时器在方式1工作,是16位计数器,最大值为65536(2^16),也就是能进行最大65536次计数
50ms定时操作需要50000个机器周期,1个机器周期=1us,所以需要50000次计数操作
为了计数器定时器工作,需要预先填充定时器初值(初值=定时器计数最大计数次数 - 所需定时计数次数)
所以需设置定时器初值15536 = 65536 -50000,即3CB0H(10进制15536转换成16进制数3CB0),所以TH0=0x3c,TL0=0xb0,高位就是TH0的值,低位为TL0的值
若假设使用11.0592MHZ的晶振,其他条件不变
11.0592M的晶振每秒可产生0.9216M个机器周期,50ms就需要46080个机器周期
定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值19456 = 65536 - 46080,即4C00H
所以TH0&#