以晶振12MHZ為例:
可以得到:
TMOD=0x01;
TL0=0xb0;
TH0=0x3c;
至于怎么來的請看:
12M晶振每秒可產生1M個機器周期,1M個機器周期就是1000000個機器周期。一個機器周期為1us, 50ms就需要50000個機器周期,定時器在方式1工作,為16位,最大值為65536,所以需設初值為65536-50000=15536;
15536轉化為16進制得3cb0;故高位TH0=0x3c;TL0=0xb0;
不同頻率晶振產生的機器周期不一樣:
公式為:機器周期=晶振頻率/12。。。這是在該晶振頻率下每秒產生多少M機器周期。
比如當晶振頻率為11.0592M的晶振。則每秒可產生機器周期為11.0592/12=0.9216M的機器周期,也就是921600個機器周期。50ms等于0.05秒,所以需要921600*0.05=46080個機器周期;定時器在方式1工作,為16位,最大值為65536,所以需設初值為65536-46080=19456;轉為16進制為(4c00),所以高位TH0=0x4c; TL0=0x00;
---------------------
作者:92年程序員
來源:CSDN
原文:https://blog.csdn.net/qq_39790474/article/details/85034038
版權聲明:本文為博主原創文章,轉載請附上博文鏈接! |