單片機定時器/計數(shù)器的基本結(jié)構(gòu)及工作原理
本文主要學習定時器/計數(shù)器的基本結(jié)構(gòu)。對結(jié)構(gòu)的學習首先要明確定時器/計數(shù)器的功能,可參考第一節(jié)的內(nèi)容來理解。目前常用的單片機中往往都配備了定時器/計數(shù)器。在AT89S52芯片內(nèi)包含有三個16位的定時器/計數(shù)器:T0、T1和T2,其核心是加1計數(shù)器。我們主要要求掌握T0和T1的結(jié)構(gòu)和功能。學習中要注意從電路結(jié)構(gòu)上來理解功能的實現(xiàn)。定時器/計數(shù)器方式寄存器TMOD和定時器/計數(shù)器控制寄存器TCON是用以設(shè)定定時器/計數(shù)器的工作方式、定時或計數(shù)功能,控制啟動或停止以及產(chǎn)生溢出中斷的重要模塊,應(yīng)該對這兩個寄存器中的逐位的定義和功能進行學習和掌握。 一、定時器/計數(shù)器的功能AT89S52單片機定時器/計數(shù)器的基本部件是兩個8位的計數(shù)器(T1計數(shù)器分為高8位TH1和低8位TL1,T0計數(shù)器的高8位是TH0,低8位是TL0)。如圖1所示。
圖1 T0和T1的基本構(gòu)成
定時器/計數(shù)器的核心是一個加1計數(shù)器,在作定時器使用時,它對機器周期進行計數(shù),每過一個機器周期計數(shù)器加1,直到計數(shù)器計滿溢出。
當它用作對外部事件計數(shù)時,計數(shù)器接相應(yīng)的外部輸入引腳T0(P3.4)或T1(P3.5)并在每個機器周期的S5P2時采樣,當采樣到1—0的負跳變時,計數(shù)器加1。
二、定時器/計數(shù)器的結(jié)構(gòu)AT89S52單片機內(nèi)部的定時/計數(shù)器的結(jié)構(gòu)如圖2所示。定時器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)構(gòu)成,定時器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)構(gòu)成。每個寄存器均可單獨訪問。
圖2 定時器/計數(shù)器的內(nèi)部結(jié)構(gòu) 三、TMOD和TCON
AT89S52的定時器/計數(shù)器是一種可編程部件,在定時器/計數(shù)器開始工作之前,CPU必須將一些命令(控制字)寫入定時/計數(shù)器。
例如:選擇哪一個定時器/計數(shù)器在何種工作方式下工作?
是用作定時器計時功能還是用作計數(shù)器的計數(shù)功能?
是否啟動定時器/計數(shù)器的運行?
……
這些設(shè)置的功能是通過對特殊功能寄存器TMOD和TCON的設(shè)置來實現(xiàn)。在初始化過程中,要將工作方式控制字寫入方式寄存器(初始化工作的一部分),工作狀態(tài)字寫入控制寄存器,CPU就會按設(shè)定的工作方式獨立運行。
1.定時器/計數(shù)器方式寄存器TMOD
定時器/計數(shù)器方式控制寄存器TMOD在特殊功能寄存器中,字節(jié)地址為89H。TMOD不能進行位尋址,只能用字節(jié)傳送指令設(shè)置定時器工作方式,低半字節(jié)定義為定時器/計數(shù)器0,高半字節(jié)定義為定時器/計數(shù)器1。復(fù)位時,TMOD所有位均為0。TMOD的格式
如下表所示。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
GATE | C/ | M1 | M0 | GATE | C/ | M1 | M0 |
T1方式控制字 | T0方式控制字 |
M1、M0:工作方式選擇位。用來定義定時器/計數(shù)器的四種工作方式。
C/:功能選擇位:C/位為定時器方式或計數(shù)器方式選擇位。C/=1時,為計數(shù)器方式;C/=0時,為定時器方式。
GATE:門控制位,確定定時器的開啟與關(guān)閉。當GATE=0時,只要定時器控制寄存器TCON中的TR0(或TR1)被置1時,T0(或T1)被允許開始計數(shù)(TCON各位含義見后面敘述)。
當GATE=1時,外部中斷引腳或的輸入電平控制T0或T1的開啟與關(guān)閉。
2.定時器/計數(shù)器控制寄存器TCON
TCON是T0和T1的控制寄存器,它同時也用來鎖存T0、T1的溢出中斷請求源和外部中斷請求源。TCON寄存器復(fù)位時為00H,可以進行位尋址。定時器/計數(shù)器控制寄存器TCON字節(jié)地址為88H。TCON寄存器各位定義如下表
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
用于外部中斷 |
TCON中各標志位的功能是:
TF1(D7):定時器1溢出標志位。當T1計滿溢出時,由硬件使TF1置1,申請中斷。進入中斷服務(wù)程序后,由硬件自動清0,在查詢方式下用軟件清0。
TR1(D6):定時器1運行控制位。TR1置1,啟動定時器1;TR1置0則停止工作。TR1由軟件置1或清零
TF0(D5):定時器0溢出標志。其功能及操作情況同TF1。
TR0(D4):定時器0運行控制位。其功能及操作情況同TR1。
IE1(D3):外部中斷1中斷請求標志。IT1=1時,外部中斷1引腳上的電平由1變0時,IE1由硬件置位,外部中斷1請求中斷。當CPU響應(yīng)中斷并轉(zhuǎn)向該中斷服務(wù)程序執(zhí)行時,由內(nèi)部硬件自動清0。
IT1(D2):外部中斷1()電平觸發(fā)方式或者脈沖觸發(fā)方式控制位。IT1=1時,外部中斷1為負邊沿觸發(fā)方式,引腳上的電平從高到低負跳變有效。IT1=0時,外部中斷1為電平觸發(fā)方式。上輸入低電平有效。
IE0(D1):外部中斷0中斷請求標志。如果IT0置1,則當上的電平由1變0時,IE0由硬件置位。在CPU把控制轉(zhuǎn)到中斷服務(wù)程序時由硬件使IE0復(fù)位。
IT0(D0):外部中斷源0觸發(fā)方式控制位,其含義同IT1。
3.TMOD和TCON的控制功能可以通過一個具體的電路結(jié)構(gòu)來加強理解
圖3TMOD和TCON控制功能的實現(xiàn)
在圖3中,清楚的表示了TMOD和TCON中的控制位對工作方式、定時/計數(shù)模式、啟動、溢出中斷的控制的實現(xiàn)。
編輯:admin 最后修改時間:2018-05-08