4.1 8253簡介
4.1.1 引腳詳解
(1)三態(tài)雙向數(shù)據(jù)口D0~D7:用于8253A與CPU的并行通信;
(2)計數(shù)脈沖輸入CLK0~CLK2:用于提供8253的計數(shù)脈沖;
(3)通道門控GATE0~GATE2:控制對應(yīng)通道的輸出;
(4)讀控制信號RD:低電平有效;
(5)寫控制信號WR:低電平有效;
(6)片選信號CS:低電平有效;
(7)地址選擇端A0,A1:用于選擇芯片內(nèi)部的寄存器。
4.1.2 內(nèi)部結(jié)構(gòu)框圖
4.1.3 工作模式
(1)工作模式0—計數(shù)結(jié)束產(chǎn)生中斷
在計數(shù)值減到0時輸出信號OUT將產(chǎn)生一個上升沿,這個上升沿作為CPU的中斷請求信號,當(dāng)CPU執(zhí)行完中斷處理程序時,如果希望再一次啟動計數(shù)器結(jié)束中斷功能,可以再次將計數(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ù)據(jù)裝載到減一計數(shù)器中重復(fù)計數(shù),第一次運行時有一個額外的下裝脈沖,而后續(xù)的重復(fù)計數(shù)沒有這個額外脈沖,它的下裝脈沖直接用上一次計數(shù)的最后一個脈沖,所以,當(dāng)計數(shù)值設(shè)為N時,第一次要N+1個脈沖,后面重復(fù)計數(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:二進(jìn)制與BCD碼選擇
0:二進(jìn)制形式
1:BCD碼形式
4.1.5 端口地址計算
8253通過引腳CS、RD、WR、A0和A1五個端口的電平?jīng)Q定芯片內(nèi)部的寄存器,地址對應(yīng)如下表所示。
CS | RD | WR | A1 | A0 | 功能 |
---|---|---|---|---|---|
0 | 1 | 0 | 0 | 0 | 設(shè)置計數(shù)器0的初值 |
0 | 1 | 0 | 0 | 1 | 設(shè)置計數(shù)器1的初值 |
0 | 1 | 0 | 1 | 0 | 設(shè)置計數(shù)器2的初值 |
0 | 1 | 0 | 1 | 1 | 設(shè)置控制字或命令 |
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ù)器,所以當(dāng)計數(shù)的時間超出計數(shù)器的范圍時可以考慮用兩個計數(shù)器級聯(lián)達(dá)到目的。
4.3 源代碼
例題:利用8253A芯片產(chǎn)生一個500ms,占空比50%的方波。
解析過程:由于硬件電路設(shè)計時利用1MHz作為計數(shù)器的時鐘脈沖,所以計數(shù)器的一個脈沖的時間應(yīng)該是1us,由于需要產(chǎn)生一個20ms的高電平,所以需要計數(shù)20000次才可以,但是由于8位的計數(shù)器數(shù)據(jù)范圍是255,所以采用兩個計數(shù)器級聯(lián)的方式達(dá)到目的,將兩個計數(shù)器均設(shè)置為模式3(即方波發(fā)生器),另外,根據(jù)硬件連接,A0連接在地址端的A3,A1連接在地址端的A4,片選CS接地,所以,對應(yīng)計數(shù)器0的初值設(shè)置地址應(yīng)該是0000 H,計數(shù)器1的初值設(shè)置地址應(yīng)該是0008 H,控制字的地址為0018 H。經(jīng)過上述分析,源代碼如下圖所示。
注:由于設(shè)定的計數(shù)器工作在模式3,所以計數(shù)脈沖會自動在中間產(chǎn)生脈沖
-
信號
+關(guān)注
關(guān)注
11文章
2807瀏覽量
77130 -
Out
+關(guān)注
關(guān)注
0文章
31瀏覽量
13150 -
單穩(wěn)態(tài)電路
+關(guān)注
關(guān)注
0文章
16瀏覽量
15327
發(fā)布評論請先 登錄
相關(guān)推薦
定時器電路圖工作原理(聲光提示定時器電路/555定時器電路/相片曝光定時器電路)
![<b class='flag-5'>定時器</b>電路圖工作原理(聲光提示<b class='flag-5'>定時器</b>電路/555<b class='flag-5'>定時器</b>電路/相片曝光<b class='flag-5'>定時器</b>電路)](https://file.elecfans.com/web2/M00/1B/87/pYYBAGGE4USAHHRlAAB0U6W6NF4291.jpg)
基于硬件定時器的軟件定時器
![基于硬件<b class='flag-5'>定時器</b>的軟件<b class='flag-5'>定時器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32-通用定時器-定時器中斷
![STM32-通用<b class='flag-5'>定時器</b>-<b class='flag-5'>定時器</b>中斷](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32定時器學(xué)習(xí)---基本定時器
![STM32<b class='flag-5'>定時器</b>學(xué)習(xí)---基本<b class='flag-5'>定時器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
SysTick 定時器
![SysTick <b class='flag-5'>定時器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
31章-定時器
![31章-<b class='flag-5'>定時器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
什么是軟件定時器?軟件定時器的實現(xiàn)原理
定時器中斷是什么意思,定時器中斷的工作原理
使用555定時器的可調(diào)雙定時器電路
![使用555<b class='flag-5'>定時器</b>的可調(diào)雙<b class='flag-5'>定時器</b>電路](https://file1.elecfans.com/web2/M00/C1/D8/wKgaomXa6PqABqXTAABhX_zgqZw100.png)
評論