<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機定時器定時計算方法

          單片機定時器定時計算方法

          作者: 時間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
          對12MHz 1個機器周期 1us 12/fosc = 1us

          方式0 13位定時器最大時間間隔 = 2^13 = 8.192ms
          方式1 16位定時器最大時間間隔 = 2^16 = 65.536ms
          方式2 8位定時器最大時間間隔 = 2^8 = 0.256ms =256 us

          定時5ms,計算計時器初值 M = 2^K-X*Fosc/12 12MHz
          方式0: K=13,X=5ms,Fosc=12MHz 則 M = 2^13 - 5*10^(-3)*12*10^6/12= 3192 = 0x0C78
          THx = 0CH,TLx = 78H,
          方式1: K=16,X=5ms,Fosc=12MHz 則 M = 2^16 - 5*10^(-3)*12*10^6/12= 60536 = 0xEC78
          THx = ECH,TLx = 78H,

          50ms 12MHz THx = 3CH,TLx = B0H,
          10ms THx = D8H,TLx = F0H,
          方式2: 最大時間 2^8Fosc/12 = 0.256ms

          十進制數(shù)是怎么來的?
          6MHz 一個機器周期 12/6 = 2us
          定時1ms 計數(shù)初值x
          (2^16-x)*2us = 1000us
          x = 2^16 - 500 ,TH,TL 可置 -500

          12MHz 一個機器周期 12/12 = 1us
          12MHz 一個機器周期 12/12 = 1us
          定時50ms 計數(shù)初值x
          (2^16-x)*1us = 50000us
          x = 2^16 - 50000 ,TH,TL 可置 -500

          定時器 計內(nèi)部晶振頻率
          計數(shù)器 計外部輸入CPU腳上的脈沖個數(shù) P3.4(T0) P3.5(T1) 負跳變加一
          當(dāng)晶振為6MHz時,最高計數(shù)頻率500KHz

          寄存器
          1 TH TL
          2 TCON
          TR0 TR1 其他位是中斷控制位

          TMOD
          GATE C/T1 M1 M0 GATE C/T0 M1 M0


          C8051F00X
          定時器:每個時鐘加1 時鐘可為系統(tǒng)時鐘或系統(tǒng)時鐘的1/12
          CKCON

          當(dāng)引腳上出現(xiàn)電平時啟動T0 當(dāng)不滿足時,停止T0,讀出以后清零 。


          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();