回覆列表
  • 1 # 陶白

    以晶振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;

  • 中秋節和大豐收的關聯?
  • 郭德綱為什麼離婚?