(筆記總結)80C51的定時/計數器
實現定時功能,比較簡便的方法是利用微控制器內部的定時/計數器。也可以用以下三種方法:
1.軟體定時:軟體定時不佔用硬體資源,但是佔用CPU時間,降低了CPU的利用率。
2.採用時基電路定時:例如採用555電路,外接必要的元器件(電阻、電容),即可構成硬體定時電路。但是硬體連線好之後,定時值和定時範圍不能有軟體進行修改,即不可程式設計。
3.採用可程式設計晶片定時:這種定時晶片的定時值和定時範圍很容易用軟體修改和控制,這種晶片定時功能強,使用靈活。在微控制器定時/計數器不夠用時,可以考慮進行擴充套件。
定時計數器的結構和工作原理
結構
工作原理:加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=1。CPU響應中斷後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。