單片機開發 --- 定時/計數器

單片機開發 — 定時/計數器

一、定時/計數器概要

  • 51單片機有兩組定時器/計數器,因爲既可以定時,
    又可以計數,故稱之爲定時器/計數器。
  • 定時器/計數器和單片機的CPU是相互獨立的。定時器/計數器工作的過程是自動完成的,不需要CPU的參與。
  • 51單片機中的定時器/計數器是根據機器內部的時鐘或者是外部的脈衝信號對寄存器中的數據加1。
  • 有了定時器/計數器之後,可以增加單片機的效率,一些簡單的重複加1的工作可以交給定時器/計數器處理。CPU轉而處理一些複雜的事情。同時可以實現精確定時作用。

二、控制寄存器(TCON)

在這裏插入圖片描述

  • TF1:T1溢出中斷請求標誌位。T1計數溢出時由硬件自動置TF1爲1。CPU響應中斷後TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態。所以,TF1可用作查詢測試的標誌。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。
  • TR1:T1運行控制位。
    • TR1置1時,T1開始工作;
    • TR1置0時,T1停止工作。
    • TR1由軟件置1或清0。所以,用軟件可控制定時/計數器的啓動與停止。
  • TF0:T0溢出中斷請求標誌位,其功能與TF1類同。
  • TR0:T0運行控制位,其功能與TR1類同。

三、定時/計數器工作方式控制寄存器(TMOD)

在這裏插入圖片描述

  • 寄存器TMOD用於設置定時/計數器的工作方式,低四位用於T0,高四位用於T1。
  • GATE是門控位
    • GATE=0時,用於控制定時器的啓動是否受外部中斷源信號的影響。只要用軟件使TCON寄存器中的TR0或TR1爲1,就可以啓動定時/計數器工作;
    • GATA=1時,要用軟件使TR0或TR1爲1,同時外部中斷引腳INT0/1也爲高電平時,才能啓動定時/計數器工作。
  • C/T :定時/計數模式選擇位。
    • C/T =0爲定時模式;
    • C/T =1爲計數模式。
  • M1M0:工作方式設置位。

四、定時/計數器工作方式(M1M0控制)

在這裏插入圖片描述

五、Timer寄存器

計算定時器溢出,觸發中斷

  • TH0、TL0 - 定時器0的Timer寄存器的高八位和低八位
  • TH1、TL1 - 定時器1的Timer寄存器的高八位和低八位

六、定時、計數器初始化工作

  • 對TMOD賦值,以確定T0和T1的工作方式。
  • 計算初值,並將其寫入TH0、TL0或TH1、TL1。
  • 中斷方式時,則對EA賦值,開放定時器中斷。
  • 使TR0或TR1置位,啓動定時/計數器定時或計數。

七、計數器初值

以12M的晶振爲例,機器週期爲1us,1ms的初值初值=65535-1000+1(因爲實際上計數器計數到66636才溢出)=64536=FC18H(工作方式爲1)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章