4.1 8253簡介
4.1.1 引腳詳解
(1)三態(tài)雙向數(shù)據口D0~D7:用于8253A與CPU的并行通信;
(2)計數(shù)脈沖輸入CLK0~CLK2:用于提供8253的計數(shù)脈沖;
(3)通道門控GATE0~GATE2:控制對應通道的輸出;
(4)讀控制信號RD:低電平有效;
(5)寫控制信號WR:低電平有效;
(6)片選信號CS:低電平有效;
(7)地址選擇端A0,A1:用于選擇芯片內部的寄存器。
4.1.2 內部結構框圖
4.1.3 工作模式
(1)工作模式0—計數(shù)結束產生中斷
在計數(shù)值減到0時輸出信號OUT將產生一個上升沿,這個上升沿作為CPU的中斷請求信號,當CPU執(zhí)行完中斷處理程序時,如果希望再一次啟動計數(shù)器結束中斷功能,可以再次將計數(shù)值送給它。
(2)工作模式1—可編程單穩(wěn)態(tài)輸出方式
計數(shù)初值寫入到8253A后必須等待GATE信號的觸發(fā)才能開始計數(shù),觸發(fā)后使輸出信號OUT變低,計數(shù)到0時,OUT信號又回到高電平,這類似于數(shù)字電路中的單穩(wěn)態(tài)電路,而低電平的寬度由計數(shù)脈沖的個數(shù)決定,所以這種工作方式又稱為可編程單穩(wěn)態(tài)輸出方式。
(3)工作模式2—頻率發(fā)生器/分頻器
該模式在計數(shù)器減到0的時候會重新自動地把原來的初值寄存器中的數(shù)據裝載到減一計數(shù)器中重復計數(shù),第一次運行時有一個額外的下裝脈沖,而后續(xù)的重復計數(shù)沒有這個額外脈沖,它的下裝脈沖直接用上一次計數(shù)的最后一個脈沖,所以,當計數(shù)值設為N時,第一次要N+1個脈沖,后面重復計數(shù)的值皆為N。
(4)工作模式3—方波發(fā)生器
模式3與模式2基本相似,不同之處在于計數(shù)值如果為偶數(shù),OUT輸出的高電平寬度與低電平寬度相等,稱為方波發(fā)生器,如果計數(shù)值為奇數(shù),高電平比低電平多一個CLK的脈沖寬度。
(5)工作模式4—軟件觸發(fā)的選通信號發(fā)生器
模式4除OUT的波形與模式0不同,計數(shù)過程中GATE和計數(shù)初值發(fā)生變化對OUT的影響與模式0一樣。
(6)工作模式5
模式5除了OUT的波形與模式1不同之外,計數(shù)過程中GATE和計數(shù)初值發(fā)生變化對OUT的影響與模式1一樣
4.1.4 控制字格式
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
SC1 | SC0 | RW1 | RW0 | M2 | M1 | M0 | BCD |
控制字的具體描述如下表所示:
計數(shù)器選擇 |
---|
SC1 |
0 |
0 |
1 |
1 |
計數(shù)器操作方式控制 |
---|
RW1 |
0 |
0 |
1 |
1 |
計數(shù)器工作模式選擇 |
---|
M2 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
D0:二進制與BCD碼選擇
0:二進制形式
1:BCD碼形式
4.1.5 端口地址計算
8253通過引腳CS、RD、WR、A0和A1五個端口的電平決定芯片內部的寄存器,地址對應如下表所示。
CS | RD | WR | A1 | A0 | 功能 |
---|---|---|---|---|---|
0 | 1 | 0 | 0 | 0 | 設置計數(shù)器0的初值 |
0 | 1 | 0 | 0 | 1 | 設置計數(shù)器1的初值 |
0 | 1 | 0 | 1 | 0 | 設置計數(shù)器2的初值 |
0 | 1 | 0 | 1 | 1 | 設置控制字或命令 |
0 | 0 | 1 | 0 | 0 | 讀取計數(shù)器0的計數(shù)值 |
0 | 0 | 1 | 0 | 1 | 讀取計數(shù)器1的計數(shù)值 |
0 | 0 | 1 | 1 | 0 | 讀取計數(shù)器2的計數(shù)值 |
4.2 8253初始化流程
(1)將控制字寫入8253A
(2)對8253A中的某個計數(shù)器寫入初值
(3)啟動計數(shù)器
注意:由于8253A是一個16位的計數(shù)器,所以當計數(shù)的時間超出計數(shù)器的范圍時可以考慮用兩個計數(shù)器級聯(lián)達到目的。
4.3 源代碼
例題:利用8253A芯片產生一個500ms,占空比50%的方波。
解析過程:由于硬件電路設計時利用1MHz作為計數(shù)器的時鐘脈沖,所以計數(shù)器的一個脈沖的時間應該是1us,由于需要產生一個20ms的高電平,所以需要計數(shù)20000次才可以,但是由于8位的計數(shù)器數(shù)據范圍是255,所以采用兩個計數(shù)器級聯(lián)的方式達到目的,將兩個計數(shù)器均設置為模式3(即方波發(fā)生器),另外,根據硬件連接,A0連接在地址端的A3,A1連接在地址端的A4,片選CS接地,所以,對應計數(shù)器0的初值設置地址應該是0000 H,計數(shù)器1的初值設置地址應該是0008 H,控制字的地址為0018 H。經過上述分析,源代碼如下圖所示。
注:由于設定的計數(shù)器工作在模式3,所以計數(shù)脈沖會自動在中間產生脈沖
-
信號
+關注
關注
11文章
2853瀏覽量
78298 -
Out
+關注
關注
0文章
31瀏覽量
13397 -
單穩(wěn)態(tài)電路
+關注
關注
0文章
16瀏覽量
15465
發(fā)布評論請先 登錄
定時器電路圖工作原理(聲光提示定時器電路/555定時器電路/相片曝光定時器電路)

基于硬件定時器的軟件定時器

STM32-通用定時器-定時器中斷

STM32定時器學習---基本定時器

SysTick 定時器

31章-定時器
什么是軟件定時器?軟件定時器的實現(xiàn)原理
定時器中斷是什么意思,定時器中斷的工作原理
使用555定時器的可調雙定時器電路

評論