51單片機---定時器 計數器

2021-01-08 電子產品世界

8051系列單片機有兩個定時器:T0和T1,分別稱為定時器和定時器T1,這兩個定時器都是16位的定時器/計數器;8052系列單片機增加了第三個定時器/計數器T2;它們都有定時或事件計數功能,常用於時間控制、延時、對外部時間計數和檢測等場合;

二、定時器/計數器的結構

8051單片機的兩個定時器T0和T1分別都由兩個特殊功能寄存器組成;T0由特殊功能寄存器TH0和TL0構成,而T1則是由TH1和TL1構成;

作為定時器使用時,定時器計數8051單片機片內振蕩器輸出經過12分頻後的脈衝個數,即:每個機器周期使定時器T0/T1的寄存器值自動累加1,直到溢出,溢出後繼續從0開始循環計數;所以,定時器的解析度是時鐘振蕩頻率的1/12;

作為計數器使用時,通過引腳T0(P3.4)或T1(P3.5)對外部

脈衝信號

進行計數,當輸入的外部脈衝信號發生從1到0的負跳變時,計數器的值就自動加1;計數器的最高頻率一般是時鐘振蕩頻率的1/24;

由此可知,不論是定時器還是計數器工作方式,定時器T0和T1均不佔用CPU的時間,除非定時器/計數器T0和T1溢出,才可能引起CPU中斷,轉而去執行中斷處理程序;所以說,定時器/計數器是單片機中效率高而工作靈活的部件;

三、定時器/計數器的工作模式

除了可選擇定時器和計數器的這兩種工作方式外,每個定時器/計數器都有4種工作模式;

在模式0、1和2時,T0和T1的工作模式相同;在模式3時,兩個定時器/計數器的工作模式不同;

工作模式0:

由TL0的低5位和TH0的全部8位共同構成一個13位的定時器/計數器;定時器/計數器啟動後,定時或計數脈衝個數加到TL0上,從預先設置的初值(時間常數)開始累加,不斷遞增1;當 TL0計滿後,向TH0進位,直到13位寄存器計滿溢出;溢出時,定時器/計數器硬體會自動地把13位的寄存器值清0,中斷標記TF0置1;如果需要進一步定時/計數,需要使用相關指令重置時間常數,並把定時器/計數器的中斷標記TF0置0;工作模式0的結構如下圖:

工作模式1:

模式1與模式0幾乎完全相同,唯一的區別就是,模式1中的寄存器TH0和TL0共同構成的是一個16位定時器/計數器來參與操作,因此比模式0中的定時/計數範圍更大;工作模式1的結構如下圖:

工作模式2:

這種模式又稱為自動再裝入預置

數模

式;當定時器/計數器的寄存器TH0/TL0的值溢出時,定時器/計數器硬體設備會自動把寄存器TH0/TL0的值清0,以重新開始操作;但是有時候,我們的定時/計數操作是需要多次重複定時/計數的,如果溢出時不做任何處理,那麼,在第二輪定時/計數時就是從0開始定時/計數了,而這並不是我們想要的;所以,要保證每次溢出之後,在重新開始定時/計數的操作是我們想要的,那就要把預置數(時間常數)重新裝入某個地方;而重新裝入預置數的操作是硬體設備自動完成的,不需要人工幹預所以,這種工作模式就叫自動再裝入預置數方式;既然需要重新裝入預置數,那麼預置數就必須要存放在某個地方,才能保證重裝操作成功;在工作模式2中,把自動重裝入的預置數存放在定時器/計數器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0參與定時/計數操作;顯然,定時/計數的方位小了很多;

注:這個工作模式常用於波特率發生器(串口通訊),T1工作在串口模式2;用於這種方式時,定時器就是為了提供一個時間基準;計數溢出之後,不需要做太多的事情,只做一件事就可以,就是重新裝入預置數,再開始重新計數,而且中間不需要任何延時;工作模式2的結構如下圖:

工作模式3:

由於定時器/計數器T1沒有工作模式3,如果把定時器/計數器T0設置為工作模式3,那麼TL0和TH0將被分割成兩個相互獨立的8位定時器/計數器;工作模式3的結構如下圖:

四、定時器/計數器的定時/計數範圍

工作方式0:13位定時器/計數器工作模式,最多可計數2的13次方次,即:8192次,[0,8191];

工作方式1:16位定時器/計數器工作模式,最多可計數2的16次方次,即:65536次,[0,65535];

工作方式2:8位定時器/計數器工作模式,最多可計數2的8次方次,即:256次,[0,255];

工作方式3:8位定時器/計數器工作模式,最多可計數2的8次方次,即:256次,[0,255];

預置數的計算公式:預置數=最大值-需要計數的次數;

五、定時器/計數器的控制寄存器

8051

單片機設計

了兩個8位的特殊功能寄存器來控制定時器/計數器的工作狀態;這兩個特殊功能寄存器分別是TMOD和TCON;它倆都在特殊功能寄存器區;

1、工作模式控制寄存器TMOD(89h):

2、工作狀態控制寄存器TCON(88H):

六、定時器/計數器的初始化

1、設置定時器/計數器的工作模式TMOD(常用的是模式1:TMOD=0x01);

2、裝入預置數到THx和TLx中(THx=TLx=MAX(8192/65536/256)-計數次數);

3、如果工作在中斷方式,則需要開定時器/計數器的中斷TCON中的標誌位:TF0/TF1=0/1;

4、啟動定時器/計數器:TR0/TR1=1;

注:由於8051單片機的定時器/計數器使用的時鐘脈衝是外部晶振(12MHZ)經過12分頻(12MHZ/12=1MHZ)之後的頻率,所以,一個時鐘脈衝就是1微秒;所以,8192個脈衝=8192微秒=8.192毫秒; 65536個脈衝=65536微秒=65.536毫秒; 256個脈衝=256微秒=0.256毫秒;

相關焦點

  • 51單片機計數器與定時器的區別
    在51單片機的學習過程中,我們經常會發現中斷、計數器/定時器、串口是學習單片機的難點,對於初學者來說,這幾部分的內容很難理解。
  • 51單片機定時器/計數器的結構和原理
    定時器/計數器簡稱定時器,其作用主要包括產生各種時標間隔、記錄外部事件的數量等,是微機中最常用、最基本的部件之一。803l單片機有2個16位的定時器/計數器:定時器0(T0)和定時器1(T1)。
  • 通過51單片機定時器/計數器實現精確延時
    MCS-51單片機內部共有兩個16位可編程定時器,計數器,即TO、Tl。既有定時功能,又有計數的功能。每個定時器都是由兩個8位的特殊功能寄存器THi和TLi組成(i=0、1)。TMOD是TO和Tl的工作方式控制寄存器,TCON是TO和Tl的運行狀態控制寄存器。
  • 單片機定時器計數器初值的計算
    1.計數器初值的計算把計數器計滿為零所需要的計數值設定為C,計數初值設定為TC,由此可得到公式:TC=M-C式中,M為計數器模值,該值和計數器工作方式有關。
  • 單片機定時器/計數器基本原理
    打開APP 單片機定時器/計數器基本原理 發表於 2019-06-17 09:19:32 單片機定時器/計數器基本原理
  • 單片機原理|定時器/計數器的工作原理及應用作業
    單片機的定時器T0用作計數方式時是( )。單片機的定時器T0用作定時方式時是 ( )。A、 外部中斷0B、 外部中斷1C、 定時器0中斷D、 定時器1中斷我的答案:A 得分: 2.3分 28MCS-51單片機定時器溢出標誌是( )。
  • 單片機中各種周期的關係與定時器原理
    在標準的51單片機中,一般情況下,一個機器周期等於12個時鐘周期,也就是機器周期=12*時鐘周期,(上面講到的原因)如果是12MHZ,那麼機器周期=1微秒。單片機工作時,是一條一條地從RoM中取指令,然後一步一步地執行。單片機訪問一次存儲器的時間,稱之為一個機器周期,這是一個時間基準。
  • 51單片機定時器初值的計算
    我們學習的8051單片機的時鐘範圍是1.2MHz-12MHz。 在8051單片機中把一個時鐘周期定義為一個節拍(用P表示),二個節拍定義為一個狀態周期(用S表示)。機器周期在計算機中,為了便於管理,常把一條指令的執行過程劃分為若干個階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。
  • 51單片機測變周期脈衝信號的簡便方法
    對等周期的脈衝信號的測量比較容易,只需測量任一脈衝寬度或周期就可以了,近年來已有許多MCS-51用戶利用測量脈衝信號的基本參數而開發新產品,如山東大學的「ZBCY—I型智能標槍速度測試儀」就是利用測量一個脈衝寬度來獲得標槍在某一飛行距離內的平均速度。
  • 單片機定時器周期計算公式
    打開APP 單片機定時器周期計算公式 發表於 2018-01-22 15:59:10 定時器是單片機的重要功能模塊之一,在檢測、控制領域有廣泛應用。
  • 6位LED顯示單片機控制電子鐘/計數器
    我們能提供的完整的彙編語言源程序清單及電路原理設計圖有助於學習者進行分析和進行實驗驗證產品1:6位LED顯示單片機控制電子鐘/計數器成品板成品每套84元本文引用地址:http://www.eepw.com.cn/article/201611/317464
  • 利用單片機PWM信號進行舵機控制[圖]
    脈衝計數可以利用51單片機的內部計數器來實現,但是從軟體系統的穩定性和程序結構的合理性看,宜使用外部的計數器,還可以提高CPU的工作效率。實驗後從精度上考慮,對於FUTABA系列的接收機,當採用1MHz的外部晶振時,其控制電壓幅值的變化為0.6mV,而且不會出現誤差積累,可以滿足控制舵機的要求。
  • 通過51單片機來控制直流電機
    );----------------------------------------------;名稱:51單片機來控制直流電機 ;主頻 6M晶震 51系列單片機;編譯環境:keil c51編譯通過;www.51hei.com單片機教程網原創,可以任意修改和作為學習測試用途;備註 :程序的關鍵部分是 T1定時中段程序裡面
  • 如何利用MCS-51單片機對周期波頻率進行測量
    本文介紹了用目前應用比較廣泛的MCS-51系列單片機對周期波頻率進行測量,並通過LED以數字形式直觀地示出頻率,實現測量的智能化,省去間接對頻率計算的麻煩與錯誤。文章對其測量原理,設計和實現作了說明,介紹了主要程序,並進行了誤差分析。 目前單片機廣泛應用到國民經濟建設和日常生活的許多領域,成為測控技術現代化不可缺少的重要工具。
  • 一個定時器生成多路PWM波形的原理和方法
    圖 1在微處理器,如單片機中,實現一個定時器生成多路PWM的方法如下。這兩個定時器功能非常簡單,基本上和SysTick 定時器相當。但是我在使用的時候確是費了一番周折才調試通過,所以還是應該將這兩個定時器的使用方法好好的寫一寫。基本定時器TIM6和TIM7各包含一個16位自動裝載計數器,由各自的可編程預分頻器驅動。簡單的說兩個定時器是從0計數到N(由自動裝載計數器來確定N的具體值),然後復位回0 重新計數。
  • STC12系列單片機PCA模塊應用
    STC12C5系列單片機屬於增強性單片機,有多強呢?帶有SPI接口,PCA模塊,定時器輸出,16K+的片上ROM,越來越妖孽了!前面見識了定時器輸出功能,現在來領教一下STC12C5A60S單片機的PCA捕捉比較模塊,後面有心情再看看SPI模塊。
  • 定時器
    定時器是一項偉大的發明,它可以對相當多需要精準時間控制的工作變得簡單了許多。現在我們已經將定時器用在了軍事方面,製成了定時炸彈,定時雷管。       定時器主要分為五種類型:    1.接通延時類定時器:這類定時器主要運用在PLC中;是最常見最基本的定時器,我們稱為SD型定時器。
  • 關於51單片機定時/計數器初值的計算
    2 個獨立的 8 位計數器,所以 TH0 、 TL0 的 M 均為 256 。    因為 MCS-51 的兩個定時器均為加 1 計數器,當初到最大值( 00H 或 0000H )時產生溢出,將 TF 位置 1 ,可發出溢出中斷,因此計數器初值 X 的計算式為: X=M- 計數值式中的 M 由操作模式確定,不同的操作模式計數器的長不相同,故M值也不相同。而式中的計數值與定時器的工作方式有關。
  • 51單片機軟體產生PWM驅動直流電機,頻率佔空比可調
    做了一個實例,以前都是用AVR直接硬體生成PWM,方便快捷,幾條語句的問題,驅動能力還強,從來沒仔細想過如何用51單片機軟體方法做一個,現在非要用51單片機做,那就直接開始製作,首先硬體焊接,軟體編程,只說程序部分
  • 單片機低頻脈衝發生器的開發及應
    鑑此我們研製成功了採用單片機技術並具有4位數碼顯示、可連續調頻的方波脈衝發生器 。 2 系統設計思想 我們對本單片機低頻脈衝發生器的設計原則是:在保證系統可靠工作、頻率穩定的條件下,力圖減小尺寸、降低成本。