定時(shí)器和計(jì)數(shù)器1_第1頁(yè)
定時(shí)器和計(jì)數(shù)器1_第2頁(yè)
定時(shí)器和計(jì)數(shù)器1_第3頁(yè)
定時(shí)器和計(jì)數(shù)器1_第4頁(yè)
定時(shí)器和計(jì)數(shù)器1_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、圖11.1 3控制寄存器 接收 CPU 寫(xiě)入的方式控制字,對(duì) 3 個(gè)計(jì)數(shù)器的工作方式進(jìn)行定義,它只能接收 CPU 的寫(xiě)入信息,不能讀出。 4計(jì)數(shù)器 8253 的 3 個(gè)獨(dú)立的計(jì)數(shù)器通道,計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2,結(jié)構(gòu)完全相同,每個(gè)計(jì)數(shù)器內(nèi)有一個(gè) 16 位的預(yù)制寄存器,存放初值;一個(gè) 16 位的輸出鎖存器,在寫(xiě)入了鎖存命令時(shí),鎖定計(jì)數(shù)器的當(dāng)前值;一個(gè) 16 位的能進(jìn)行預(yù)制值的減法計(jì)數(shù)器,其值不斷遞減,計(jì)到0 時(shí),從 OUT 端輸出一個(gè)脈沖信號(hào)。 8253 由 24 根引腳組成的雙列直插式芯片,圖11.2。 (1)數(shù)據(jù)線 D7D0 :雙向三態(tài),連接 CPU 的數(shù)據(jù)總線。 (2)讀信號(hào) :輸入線

2、,低電平有效,輸入有效的低電平時(shí),CPU 從 8253 中讀取數(shù)據(jù)。 (3)寫(xiě)信號(hào) :輸入線,低電平有效,輸入有效的低電平時(shí),CPU 可向 8253 寫(xiě)入數(shù)據(jù)、或?qū)懭朊钭帧?(4)片內(nèi)寄存器選擇信號(hào)A1 、A0 :輸入線,對(duì) 8253 內(nèi)部的 3 個(gè) 計(jì)數(shù)器、1 個(gè)控制寄存器進(jìn)行選擇,見(jiàn)表 11.1 。 (5)片選信號(hào) :輸入線,低電平有效,輸入有效的低電平時(shí)選中 8253。 (6)電源線 VCC:接 +5 V 的電源。地線 GND 。 RDWRCS 圖11.2 (7)輸入脈沖信號(hào) CLK:計(jì)數(shù)器對(duì)這個(gè)引腳的脈沖數(shù)目進(jìn)行計(jì)數(shù),通道每收到 1 個(gè)脈沖,通道的計(jì)數(shù)器值減 1。 (8)門(mén)控制信號(hào)

3、GATE :輸入有效的高電平時(shí),允許計(jì)數(shù)器計(jì)數(shù);輸入無(wú)效的低電平時(shí),計(jì)數(shù)器停止計(jì)數(shù)工作。 (9)輸出信號(hào) OUT:當(dāng)通道的計(jì)數(shù)器計(jì)到 0 時(shí),通道對(duì)應(yīng)此引腳向外輸出一個(gè)脈沖,用于實(shí)現(xiàn)控制,波形取決于定義的工作方式。返回本章目錄 見(jiàn)11.3 (4)D7D6 計(jì)數(shù)器選擇位:3 個(gè)通道共用一個(gè)控制寄存器,地址為 A1A0 = 11,用此決定寫(xiě)入的控制字是哪個(gè)通道的控制字;D7D6 = 00 時(shí),為 通道0,選擇 計(jì)數(shù)器0;D7D6 = 01時(shí),為 通道1,選擇 計(jì)數(shù)器1;D7D6 = 10 時(shí),為 通道2,選擇 計(jì)數(shù)器2。返回本章目錄 (6)通道的 計(jì)數(shù)器減到 0 時(shí) :一次計(jì)數(shù)過(guò)程結(jié)束,OUT 端

4、口輸出一個(gè)脈沖。對(duì)于 方式0、方式1、方式4、方式5,一般情況下計(jì)數(shù)器停止工作,當(dāng)提供硬件啟動(dòng)信號(hào)、或重新設(shè)定初值計(jì)數(shù)器才重新開(kāi)始工作;對(duì)于 方式2、方式3 計(jì)數(shù)器計(jì)數(shù)到 0 后,預(yù)制寄存器自動(dòng)將初值送到 減1計(jì)數(shù)器,進(jìn)入下次計(jì)數(shù)過(guò)程,通過(guò)寫(xiě)入控制字來(lái)停止計(jì)數(shù)器的工作。 1方式0:計(jì)數(shù)結(jié)束中斷,圖 11.4 當(dāng)一個(gè)計(jì)數(shù)器通道設(shè)置為 方式0 后( 上升沿),通道對(duì)應(yīng)的 OUT 輸出低電平,寫(xiě)入 計(jì)數(shù)初值后,計(jì)數(shù)器開(kāi)始計(jì)數(shù),OUT 仍輸出低電平,以后 CLK 引腳每輸入一個(gè)時(shí)鐘下降沿,計(jì)數(shù)器減 1,直到 計(jì)數(shù)器 計(jì)數(shù)0 時(shí),OUT 輸出高電平,作為中斷請(qǐng)求信號(hào),OUT 的高電平保持到下一次計(jì)數(shù)開(kāi)始

5、。 GATE 輸入信號(hào)可用來(lái)控制計(jì)數(shù)過(guò)程,高電平時(shí),才允許計(jì)數(shù),低電平時(shí),暫停計(jì)數(shù),GATE 升為高電平時(shí),接著重新計(jì)數(shù)。計(jì)數(shù)期間,給計(jì)數(shù)器裝入新的計(jì)數(shù)初值,則按新值重新開(kāi)始計(jì)數(shù)過(guò)程。WR 2方式1:可編程序的單拍脈沖,見(jiàn)圖 11.5。 當(dāng) CPU 寫(xiě)入控制字( 上升沿),OUT 輸出高電平,CPU 繼續(xù)寫(xiě)入初值,等待 GATE 控制啟動(dòng)脈沖信號(hào),若高電平啟動(dòng)后,GATE 立即變?yōu)榈碗娖?,OUT 輸出低電平,計(jì)數(shù)器開(kāi)始計(jì)數(shù),直到 計(jì)數(shù)為 0,OUT 輸出一個(gè)脈沖信號(hào),發(fā)出一次中斷信號(hào),這次計(jì)數(shù)過(guò)程完畢。 3方式2:頻率發(fā)生器,見(jiàn)圖 11.6 當(dāng) CPU 輸入 方式2 控制字后,OUT 為高電平

6、,寫(xiě)入初始值,計(jì)數(shù)器開(kāi)始對(duì)時(shí)鐘個(gè)數(shù)計(jì)數(shù),OUT 保持高電平,計(jì)數(shù)到 1 時(shí),OUT 變?yōu)榈碗娖?,?jīng)過(guò) 1 個(gè) CLK 脈沖,又變?yōu)楦唠娖?,且重新開(kāi)始計(jì)數(shù),如此反復(fù)連續(xù)工作,OUT 的輸出,將時(shí)鐘脈沖分頻。 WR 4方式3:方波發(fā)生器,圖 11.7 方式3 與 方式2 類似,方式3 一半高電平,一半低電平,因此,方式3 的 OUT 輸出一個(gè)方波。CPU 設(shè)置控制字,寫(xiě)入初值,計(jì)數(shù)器開(kāi)始計(jì)數(shù),到一半時(shí),OUT 輸出由高電平變?yōu)榈碗娖?,繼續(xù) 計(jì)到 0,由低電平變?yōu)楦唠娖?,重新開(kāi)始計(jì)數(shù),反復(fù)進(jìn)行。 5方式4:軟件觸發(fā)選通信號(hào),圖 11.8 寫(xiě)入 方式4 后,OUT 輸出高電平,寫(xiě)入計(jì)數(shù)值開(kāi)始計(jì)數(shù)(即軟

7、件啟動(dòng));計(jì)數(shù)器 計(jì)到0 時(shí),OUT 輸出低電平,經(jīng)過(guò)一個(gè) CLK 時(shí)鐘后,OUT又變?yōu)楦唠娖?,?jì)數(shù)器停止工作;本次計(jì)數(shù)完成。重新輸入計(jì)數(shù)值后,才開(kāi)始下一次的計(jì)數(shù)。 6方式5:硬件觸發(fā)選通信號(hào),見(jiàn)圖 11.9 寫(xiě)入 方式5 后,OUT 輸出高電平,寫(xiě)入計(jì)數(shù)值,GATE 上升沿啟動(dòng)計(jì)數(shù)過(guò)程(硬件啟動(dòng)),計(jì)數(shù)到 0 后,OUT 輸出低電平,經(jīng)過(guò)一個(gè) CLK 脈沖,OUT 恢復(fù)高電平,停止計(jì)數(shù)。返回本章目錄 2鎖存的方法 8253 在計(jì)數(shù)過(guò)程中,CPU 可用輸入指令,讀取 8253 的任一通道的當(dāng)前計(jì)數(shù) 16位值,分兩次來(lái)讀取進(jìn)行鎖存,瞬間計(jì)數(shù)值會(huì)發(fā)生變化 (1)利用GATE 信號(hào)使計(jì)數(shù)過(guò)程暫停,然

8、后再讀取。 (2)向 8253 控制字地址送一個(gè)計(jì)數(shù)鎖存命令,然后再讀取 例如:讀取 通道2 的計(jì)數(shù)值 程序段為: MOV AL,80H ;計(jì)數(shù)器1的鎖存命令,對(duì)照?qǐng)D11.3 OUT 0FBH,AL ;寫(xiě)入控制字寄存器中 IN AL,0F9H ;讀取低8位 MOV CL,AL ;讀出的值存入CL中 IN AL,0F9H ;讀取高8位 MOV CH,AL ;讀出的值存入CH中 需要說(shuō)明,計(jì)數(shù)值鎖存命令是控制字的一種特殊形式,D7D6 決定通道號(hào),D5D4= 00,鎖存標(biāo)志低 4 位全 0,因此,通道0 的鎖存命令為 00H,通道1 的鎖存命令為 40H,通道2 的鎖存命令為 80H。返回本章目錄

9、 OUT0 的輸出頻率為 1.19318MHZ / 65536 = 18.206HZ 的方波,GATE0 接 +5,OUT0 輸出方波不斷產(chǎn)生,連接到 IRQ0 用于中斷請(qǐng)求,即每秒產(chǎn)生 18.206 次中斷,實(shí)現(xiàn)日時(shí)鐘計(jì)時(shí)功能,18 次中斷計(jì)時(shí) 1 秒。 2計(jì)數(shù)器1 實(shí)現(xiàn) DRAM 動(dòng)態(tài)刷新,圖 11.10 PC 機(jī)要求 2ms 內(nèi)對(duì) DRAM 芯片的 128 行,進(jìn)行全部刷新,因此,2ms/128 = 15.6S 發(fā)一次刷新信號(hào),將 計(jì)數(shù)器2 設(shè)置成 方式2,計(jì)數(shù)初值 18,每隔 180.838S =15.084S 產(chǎn)生一次刷新脈沖(1個(gè) CLK脈沖 =1/1.19318MHZ = 0.8

10、38S),就能滿足要求。 初始化程序段為: MOV AL,54H ; 01010100B,計(jì)數(shù)器1,工作方式2 ,二進(jìn)制 OUT 43H,AL ;寫(xiě)入方式控制字 MOV AL,18H ;計(jì)數(shù)值 OUT 41H,AL ;寫(xiě)入計(jì)數(shù)值 3計(jì)數(shù)器2實(shí)現(xiàn)揚(yáng)聲器發(fā)聲,圖 11.10 計(jì)數(shù)器2 的 OUT2 輸出連接揚(yáng)聲器,只要輸出一定頻率的方波,濾波后產(chǎn)生正弦波,能推動(dòng)揚(yáng)聲器發(fā)聲,并行接口 PB1 位控制發(fā)聲,此時(shí),計(jì)數(shù)器2 不工作,OUT2 輸出高電平,PB0 位通過(guò) GATE2 控制 計(jì)數(shù)器2 的計(jì)數(shù)過(guò)程,輸出 OUT2 信號(hào)產(chǎn)生揚(yáng)聲器發(fā)聲的聲調(diào),子程序?yàn)椋築EEP PROC MOV AL,10110

11、110B ;計(jì)數(shù)器2,工作方式3,二進(jìn)制 OUT 43H,AL ;先低后高寫(xiě)入16位計(jì)數(shù)值 MOV AX,0533H ; 1.19318MHZ/1331D= 896HZ OUT 42H,AL MOV AL,AH OUT 42H,AL ;高8位 IN AL,61H ;讀并行接口8255B MOV AH,AL OR AL,03H ;8255的PB0、PB1置1 OUT 61H,AL ;PB1的端口地址61H SUB CX,CX DELAY:LOOP DELAY ;延時(shí) DEC BL ;發(fā)聲長(zhǎng)短 JNZ DELAY MOV AL,AH ;恢復(fù)8255B口 OUT 61H,AL RETBEEP END

12、P本章結(jié)束返回目錄 CS RD WR A1 A0 操作選擇、寄存器選擇 0 1 0 0 0 寫(xiě)入 數(shù)器0 0 1 0 0 1 寫(xiě)入 數(shù)器1 0 1 0 1 0 寫(xiě)入 數(shù)器2 0 1 0 1 1 寫(xiě)入 制器 0 0 1 0 0 讀取 數(shù)器0 0 0 1 0 1 讀取 數(shù)器1 0 0 1 1 0 讀取 數(shù)器2 返回5 GATE CLK0 GATE0 OUT0 D7-D0 CLK2 GATE2 OUT2 RD WR A0 A1 CS CLK1 GATE1 OUT1 計(jì)數(shù)器內(nèi)部結(jié)構(gòu) 數(shù)據(jù)總線 緩沖器 計(jì)數(shù)器 1 計(jì)數(shù)器 2 預(yù)制寄存器 減 1 計(jì)數(shù)器 輸出鎖存器 讀寫(xiě)控制 邏輯 數(shù)據(jù)總線 緩沖器 計(jì)數(shù)

13、器 1 內(nèi) 部 總 線 返回3返回4 VCC WR RD CS A1 A0 CLK2 OUT2 GATE2 CLK1 OUT1 GATE1 D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE0 GND 1 24 2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14 12 13 返回5返回6 D7 D6 D5 D4 D3 D2 D1 D0 進(jìn)制選擇 選擇通道工作方式 數(shù)據(jù)讀寫(xiě)格式 選擇計(jì)數(shù)器 返回7返回8返回15 返回16 WR CLK GATE OUT 3 2 1 0 4 3 2 1 0 4 方式 0 3 返回11 4 3 2 1 0 4 3 2 1 0 WR CLK GATE OUT 4 方式 1 返回12 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 4 方式 2 WR CLK GATE OUT 返回12 4 3 2 1 0 方式 3 WR CLK GATE OUT 4 3 2 1 0 4 3 2 1 0 4 返回13 3 2 1 0 WR CLK GATE OUT 4 3 2 1 0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論