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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)常用功能模塊的使用 Part4. 定時(shí)器

          單片機(jī)常用功能模塊的使用 Part4. 定時(shí)器

          作者: 時(shí)間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
          51 單片機(jī)編程經(jīng)常要求對時(shí)間進(jìn)行某種操作,比如數(shù)碼管的動態(tài)掃描顯示、延時(shí)等等……對于定時(shí)或延時(shí),一般有三種方法實(shí)現(xiàn):

          ①、軟件定時(shí):如常用的延時(shí)程序 Delay(),在定時(shí)過程中,CPU 循環(huán)測試延時(shí)變量是否滿足條件,此時(shí) CPU 利用率低下;

          本文引用地址:http://www.ex-cimer.com/article/201611/315368.htm

          ②、硬件定時(shí):如外部芯片555 時(shí)基電路,通過外部阻容,達(dá)到一定的延時(shí)功能,改變阻容大小可以改變延時(shí)長度,這種定時(shí)器取決于硬件,設(shè)定好以后不能通過軟件更改;

          ③、定時(shí)器:利用單片機(jī)內(nèi)部定時(shí)器,實(shí)現(xiàn)對時(shí)間的操作。

          1、定時(shí)器功能:

          (1)、定時(shí):產(chǎn)生一個(gè)標(biāo)準(zhǔn)的時(shí)間間隔:如 20 ms,100 ms 等,單片機(jī)使用這種方式可以產(chǎn)生一個(gè)符合某一要求的脈沖方波;

          (2)、計(jì)數(shù):對外部的事件(脈沖)進(jìn)行統(tǒng)計(jì),很明顯外部事件的發(fā)生是隨機(jī)的,單片機(jī)不可能預(yù)知外部事件何時(shí)發(fā)生,但可以進(jìn)行統(tǒng)計(jì),當(dāng)達(dá)到所要求的數(shù)值時(shí),單片機(jī)進(jìn)行相應(yīng)的操作。

          2、四種工作模式:

          模式 0:13 位計(jì)數(shù)器模式

          在某一個(gè)初值的基礎(chǔ)上加 1 計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)滿為全“1”,再來一個(gè)計(jì)數(shù)脈沖時(shí),就產(chǎn)生一個(gè)“溢出中斷信號”TF1=1。
          注:由于低 8 位計(jì)數(shù)器中的高三位沒有參與工作,故填裝初值時(shí)應(yīng)“避開”此三位。

          模式 1:16 位定時(shí)/計(jì)數(shù)模

          類同于模式 0,由于兩個(gè)計(jì)數(shù)器為完整的 8 位,故將計(jì)算好的 16 位初值可直接填裝到 TH、TL 中。

          模式 2:8 位自動重裝初值模式

          TL 做計(jì)數(shù)器,TH 做初值寄存器,工作前 TL1,TH1 分別預(yù)置相同的初值,TL1 計(jì)數(shù)時(shí),產(chǎn)生溢出的同時(shí),將 TH1 中的初值自動重裝 TL1,TL1 繼續(xù)計(jì)數(shù)。

          模式 3:組合擴(kuò)展模式(僅適用于 T0)

          將 T0 和 T1 重新進(jìn)行“拆分、組合”,將 T0 變?yōu)橛?TH0,TL0 組成的兩個(gè)獨(dú)立的 8 位定時(shí)/計(jì)數(shù)器。

          補(bǔ)充:四種模式比較:

          3、定時(shí)器參數(shù):

          (1)、定時(shí)器的個(gè)數(shù):網(wǎng)上見到的 51 單片機(jī)教程都說定時(shí)器有 2 個(gè):定時(shí)器 0 和定時(shí)器 1,實(shí)際上有的單片機(jī)有 3 個(gè)定時(shí)器,如博主買的開發(fā)板上的單片機(jī):STC89C54RD+,因此,編程時(shí)注意看好有幾個(gè)定時(shí)器……

          (2)、TL,TH:初值寄存器,分別是低 8 位,高 8 位,后邊加上一個(gè)數(shù)字 0 或 1,代表定時(shí)器 0 或定時(shí)器 1

          (3)、TMOD:模式控制寄存器,屬于 SFR 特殊功能寄存器,地址:89H,決定定時(shí)/計(jì)數(shù)器的四種工作模式,8 位

          GATE 選通門:GATE=0 時(shí),只要 TR=1,計(jì)數(shù)器就開始工作

                 GATE=1 時(shí),只有 INT=TR=1 時(shí),計(jì)數(shù)器工作(用來測量 INT 腳高電平脈沖的寬度)

          C/T:計(jì)數(shù)器輸入脈沖選擇開關(guān),決定著計(jì)數(shù)器的“定時(shí)”或“計(jì)數(shù)”的兩種工作方式

             C/T=0:定時(shí)方式:計(jì)數(shù)器接收內(nèi)部時(shí)鐘信號 fosc

             C/T=1:計(jì)數(shù)方式:計(jì)數(shù)器接收引腳上的外部信號

          M1、M0 模式選擇:確定 4 種工作模式

          (4)、TCON:控制寄存器,屬于 SFR 特殊功能寄存器,地址:88H,8 位

          TF:定時(shí)器溢出標(biāo)志,計(jì)數(shù)器溢出時(shí)硬件自動置位,即 TF=1,進(jìn)入中斷后再由硬件自動清除(TF=0)

          TR:計(jì)數(shù)器的控制位

             TR=1:計(jì)數(shù)器開始工作

             TR=0:計(jì)數(shù)器停止計(jì)數(shù)

          IE:外部中斷 INT 的請求標(biāo)志

            當(dāng)單片機(jī)檢測到 INT 引腳上有下降沿時(shí),IE=1 申請中斷,進(jìn)入中斷服務(wù)程序時(shí),硬件自動清除 IE 標(biāo)志

          IT:外中斷觸發(fā)類型控制

            IT=1 時(shí),外中斷信號的下降沿觸發(fā) IE 標(biāo)志

            IT=0 時(shí),外中斷信號的低電平觸發(fā) IE 標(biāo)志

          (5)、作為“定時(shí)器”使用時(shí),“定時(shí)”與“初值”的關(guān)系如下:

             T = ( M - TC ) ×t

          其中:T:定時(shí)時(shí)間

             M:計(jì)數(shù)器的模

             TC:計(jì)數(shù)初值

             t:計(jì)數(shù)器計(jì)數(shù)脈沖的周期(t = fosc / 12)

          注:具體計(jì)算實(shí)例,參見前面“四種模式比較”中的第二張圖……



          評論


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