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