8254控制字和工作模式
這裡我們將瞭解8254可程式設計定時器晶片的控制字和工作模式。
在討論其工作模式和控制字特性之前,我們應該瞭解該晶片的一些重要事實。
晶片上電時,狀態未定義。此時模式、計數值和輸出均未定義。
每個計數器在使用前必須進行程式設計。我們不需要對一些未使用的計數器進行程式設計。
計數器透過寫入控制字然後寫入初始計數來進行程式設計。
計數器的結構如下:
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SC1 | SC0 | RW1 | RW2 | M2 | M1 | M0 | BCD/二進位制 |
我們可以透過SC1和SC0選擇計數器。
| SC1 | SC0 | 選擇 |
|---|---|---|
| 0 | 0 | 計數器0 |
| 0 | 1 | 計數器1 |
| 1 | 0 | 計數器2 |
| 1 | 1 | 讀取回返狀態 |
RW1和RW2的值用於表示讀寫操作。
| RW1 | RW0 | 選擇 |
|---|---|---|
| 0 | 0 | 計數器鎖存命令 |
| 0 | 1 | 讀取或寫入低位元組 |
| 1 | 0 | 讀取或寫入高位元組 |
| 1 | 1 | 先讀取或寫入低位元組,然後是高位元組 |
M2、M1和M0的三個位用於決定程式設計模式。如下所示
| M2 | M1 | M0 | 工作模式 |
|---|---|---|---|
| 0 | 0 | 0 | 模式0 |
| 0 | 0 | 1 | 模式1 |
| X | 1 | 0 | 模式2 |
| X | 1 | 1 | 模式3 |
| 1 | 0 | 0 | 模式4 |
| 1 | 0 | 1 | 模式5 |
控制字的最後一位 (LSb) 用於選擇計數是二進位制還是BCD。如果為0,則充當二進位制計數器,否則充當BCD計數器。
現在讓我們看看8254晶片的六種工作模式
| 模式 | 型別 | 描述 |
|---|---|---|
| 模式0 | 中斷和終端計數 | 這用於事件計數。寫入控制字後,OUT最初為低電平。它將保持低電平,直到計數器達到0,在每個時鐘週期後遞減1。然後OUT變為高電平,並保持高電平,直到出現新的計數或新的模式0控制字被寫入計數器。GATE = 1表示啟用計數,0表示停用計數。 |
| 模式1 | 硬體可重新觸發的單次脈衝 | OUT最初為高電平,在觸發開始單次脈衝後的時鐘脈衝上變為低電平。它將保持為0,直到計數器達到0。 |
| 模式2 | 頻率發生器 | 最初OUT為低電平。啟用計數時,它變為高電平。此過程週期性地重複。此模式用作分頻器。 |
| 模式3 | 方波發生器 | 如果GATE為1,則啟用計數,否則停用計數。此模式用於生成方波。週期等於計數。如果計數為偶數,則波形的導通時間為count/2。否則導通時間為(count+1)/2,關斷時間為(count-1)/2。 |
| 模式4 | 軟體觸發的脈衝 | 如果GATE為1,則啟用計數,否則停用計數。初始OUT值為高電平,當計數處於最後階段時變為低電平。對於後續的時鐘脈衝,計數器將再次重新載入。 |
| 模式5 | 硬體觸發的脈衝 | 最初OUT為高電平。計數由GATE的上升沿觸發。當初始計數到期時,OUT變為低電平一個時鐘脈衝,然後再次變為高電平。寫入控制字和初始計數後,計數器將不會載入,直到一個觸發後的時鐘脈衝。 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP