1. 程式人生 > >(筆記總結)80C51的定時/計數器

(筆記總結)80C51的定時/計數器

實現定時功能,比較簡便的方法是利用微控制器內部的定時/計數器。也可以用以下三種方法:

1.軟體定時:軟體定時不佔用硬體資源,但是佔用CPU時間,降低了CPU的利用率。

 

2.採用時基電路定時:例如採用555電路,外接必要的元器件(電阻、電容),即可構成硬體定時電路。但是硬體連線好之後,定時值和定時範圍不能有軟體進行修改,即不可程式設計。

 

3.採用可程式設計晶片定時:這種定時晶片的定時值和定時範圍很容易用軟體修改和控制,這種晶片定時功能強,使用靈活。在微控制器定時/計數器不夠用時,可以考慮進行擴充套件。

 

定時計數器的結構和工作原理

結構

:定時/計數器的實質是加1計數器(16位),由高8位和低8位兩個暫存器組成。TMOD是定時/計數器的工作方式暫存器,確定工作方式和功能。TCON是定時/計數器的控制暫存器,控制T0,T1的啟動和停止及設定溢位標誌。

 

工作原理:加1計數器輸入的計數脈衝有兩個來源,一個是由系統的時鐘振盪器輸出脈衝經12分頻後送來。另一個是T0、T1引腳輸入的外部脈衝源。每來一個脈衝計數器加1,當加到計數器全1時,在輸入一個脈衝使計數器回零。且計數器的溢位時TCON中的TF0或TF1置1,向CPU發出中斷請求(定時/計數器中斷允許時)。如果定時/計數器工作於定時模式,表示定時時間已到。如果定時/計數器工作於計數模式,表示計數值已滿。

由溢位時計數器的值減去計數器的初值才是加1計數器的計數值。

設定為定時器模式時,加1計數器是對內部機器週期計數(一個機器週期等於十二個振盪週期,即計數頻率是晶振頻率的1/12)

設定為計數器模式時,外部事件計數脈衝由T0或T1引腳輸入到計數器。

 

定時/計數器的控制

80C51微控制器的定時/計數器的工作由兩個特殊功能暫存器控制,分別是TMOD(工作方式暫存器)用來設定其工作方式。TCON(控制暫存器)用來控制其啟動和中斷申請。

TMOD(工作方式暫存器)

低4位用於T0,高4位用於T1。格式如下

GATE:門控位。GATE=0時,只需要用軟體使TCON中的TR0或TR1為1,就可以啟動定時/計數器工作。當GATE=1時,需要用軟體使TCON中的TR0或TR1為1,並且同時外部中斷引腳INT0/1也為高電平時,才能啟動定時/計數器工作。

 

C/T:定時/計數模式選擇位。等於0時,為定時模式。等於1時,為計數模式。

 

M1M0:工作方式設定位。定時/計數器有四種工作方式。

M1M0 工作方式 說明
00 方式0 13位定時/計數器
01 方式1 16位定時/計數器
10 方式2 8位自動重灌定時/計數器
11 方式3 T0分為兩個8位定時/計數器,T1此方式停止計數

 

TCON(控制暫存器)

低4位用於控制外部中斷,高四位用於定時/計數器的啟動和中斷申請。格式如下:

TF1(TCON.7)T1溢位中斷請求標誌位。T1計數溢位時將由硬體自動置TF1=1CPU響應中斷後TF1由硬體自動清零T1工作時,CPU可以隨時查詢TF1的狀態,所以TF1可以作為查詢測試的標誌。TF1也可以用軟體置1清零,和硬體的效果是一樣的。

 

TR1(TCON.6)T1執行控制位。TR1置1時,T1開始工作。TR1置0時,T1停止工作。TR1由軟體控制置1置0,所以,用軟體可以控制定時計數器的啟動和關閉。

 

TF0  (TCON.5)T0溢位中斷請求標誌位。類似於TF1。

 

TR0  (TCON.5)T0執行控制位。類似於TR1。