Page 69 -
P. 69
第六章 計時/計數器
6-1 計時/計數器的功能
在 8051 單晶片的內部有 2 個計時/計數器,可接收外界輸入的驅動信號,而能產生
一個輸出信號以供讀取外界輸入信號發生的次數。如果這個外界輸入信號代表某一事件
發生的次數,則計時/計數器即是在作事件的計數;如果這個外界輸入信號是一個固定頻
率的信號,則計時/計數器則可用以作計算時間的工作。因此,8051 單晶片的計時/計數
器為一體兩面,完全取決於驅動信號的特質而定。
6-2 計時/計數器的驅動與使用
Timer0 與 Timer1 是 8051 單晶片的兩個 16 位元計時/計數器,其計數值是存放於兩
個 8 位元暫存器中,Timer0 的計數是由 TH0(High byte)及 TL0(Low byte)來執行,Timer1
的計數是由 TH1(High byte)及 TL1(Low byte)來執行。其位址分別位於 SFR 內部記憶體
的 8CH、8AH、8DH 及 8BH 中,如第四章之 SFR 記憶體圖所示。在程式撰寫上,編輯
器允許直接使用暫存器的名稱 TH0、TL0、TH1 及 TL1,亦可直接使用其暫存器位址,
來作直接定址。
在 使 用 8051 單 晶 片 計 時 / 計 數 器 前 須 先 設 定 計 時 / 計 數 器 模 式 控 制 暫 存 器
(Timer/counter Mode Control Register , 簡 稱 TMOD) 及 計 時 / 計 數 器 控 制 暫 存 器
(Timer/counter Control Register,簡稱 TCON)兩個暫存器,此二暫存器分別用來決定
Timer0 及 Timer1 的工作模式及中斷執行的控制設定。
6-3 TMOD 模式控制暫存器之設定
Timer 的計時時脈來源有兩種,一種是 8051 單晶片的內部時脈,一種是從 T0 與 T1
接腳所輸入的外部時脈。在 8051 單晶片接收時脈計時/計數時,會在每個機械週期值由
〝1〞變為〝0〞時,將 Timer 的值累加 1。而 8051 單晶片對時脈來源的選擇是由 TMOD
暫存器中的 C/T 位元來決定。當 C/T 設定為 1 時,Timer 使用外部時脈;當 C/T 設定為
0 時,Timer 使用內部時脈。TMOD 的結構如下: