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