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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機定時器工作模式TMOD設(shè)置

          單片機定時器工作模式TMOD設(shè)置

          作者: 時間:2013-06-08 來源:網(wǎng)絡(luò) 收藏

          TMOD:/計數(shù)器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)

          /計數(shù)器模式控制寄存器TMOD是一個逐位定義的8位寄存器,但只能使用字節(jié)尋址,其字節(jié)地址為89H。

          其格式為:

          單片機定時器工作模式TMOD設(shè)置

          TMOD結(jié)構(gòu)圖

          ==============================================

          其中低四位定義定時器/計數(shù)器T0,高四位定義定時器/計數(shù)器T1,各位的說明:

          Ⅰ,GATE——門控制。

          ●GATE=1時,由外部中斷引腳INT0、INT1來啟動定時器T0、T1。

          當(dāng)INT0引腳為高電平時TR0置位,啟動定時器T0;

          當(dāng)INT1引腳為高電平時TR1置位,啟動定時器T1。

          ●GATE=0時,僅由TR0,TR1置位分別啟動定時器T0、T1。

          Ⅱ,C/T——功能選擇位

          C/T=0時為定時功能,C/T=1時為計數(shù)功能。

          置位時選擇計數(shù)功能,清零時選擇定時功能。

          Ⅲ,M0、M1——方式選擇功能

          由于有2位,因此有4種工作方式

          ==============================

          M1M0 工作方式 計數(shù)器模式 TMOD(設(shè)置定時器模式)

          0 0 方式0 13位計數(shù)器 TMOD=0x00

          0 1 方式1 16位計數(shù)器 TMOD=0x01

          1 0 方式2 自動重裝8位計數(shù)器 TMOD=0x02

          1 1 方式3 T0分為2個8位獨立計數(shù)器,T1為無中斷重裝8位計數(shù)器 TMOD=0x03

          定時器0設(shè)置為工作方式1為TMOD=0x01;定時器1設(shè)置工作方式1時TMOD=0x10

          沒有用到的定時器一般設(shè)置為0

          =============================

          初始化定時器0

          TH0=(65535-50000)/256;Tl0=(65535-50000)%256;

          在51中,如果你的定時器0選擇的是“方式一”,則表示定時器0的計數(shù)器從0開始加到50000,其中每加一次的時間為你的晶振頻率的倒數(shù)。如12MHz,則每加一個數(shù)的時間為 1*12/12000000 秒。你的公式中是加50000次,即 50000*1*12/12000000 = 50MS。注:數(shù)值只能從0加到65535,否則就會溢出。如果需要定時的時間長,可在定時器中斷函數(shù)中,使用全局變量計數(shù)。如使用你的公式進行定時器初始化,想要實現(xiàn)1S的定時,則等到全局變量從0加至20時,即定時器0發(fā)生20次中斷,就可以了。



          評論


          相關(guān)推薦

          技術(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); })();