不管你使用多大的晶振,使用51單片機,一般都是12分頻出來,也就可以得出一個機器周期
機器周期=12/n(n指晶振頻率),假設你要定時的時間為M
那么定時的初值為:
M/機器周期=初值;
TH0=(65536-初值)%256;
TL0=(65536-初值)/256;
將(65536-初值)所得的值化成16進制,其高位就是TH0的值,低位為TL0的值
例如用12M晶振做1ms定時計算如下:
機器周期=12/12*10^6=1us(微秒)
定時初值=(1*10^-3)/(1*10^-6)=1000;
所以:TH0=(65536-1000)%256;
TL0=(65536-1000)/256;
將65536-1000=64536化為16進制為:0xFC18
TH0=0xFC;
TL0=0X18;
當然也可以用軟件計算。呵呵