可編程的定時器計數器8253_第1頁
可編程的定時器計數器8253_第2頁
可編程的定時器計數器8253_第3頁
可編程的定時器計數器8253_第4頁
可編程的定時器計數器8253_第5頁
已閱讀5頁,還剩40頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

微型計算機原理及其應用

——第九章:可編程的定時器/計數器8253濟南大學自動化與電氣工程學院1第九章:可編程的定時器/計數器8253定時器/計數器概述可編程的定時器/計數器82532第九章:可編程的定時器/計數器8253定時器/計數器概述可編程的定時器/計數器82533第九章:可編程的定時器/計數器8253——定時器/計數器概述定時器/計數器概述

在微機系統或智能化儀器儀表的工作過程中,經常需要使系統處于定時工作狀態,或者對外部過程進行計數。定時或計數的工作實質均體現為對脈沖信號的計數,如果計數的對象是標準的內部時鐘信號,由于其周期恒定,故計數值就恒定地對應于一定的時間,這一過程即為定時,如果計數的對象是與外部過程相對應的脈沖信號(周期可以不相等),則此時即為計數。4第九章:可編程的定時器/計數器8253——定時器/計數器概述定時和計數的實現方法軟件法:利用一段延時子程序來實現定時操作,特點,無需太多的硬設備,控制比較方便,但在定時期間,CPU不能從事其它工作,降低了機器的利用率。

硬件法:專門設計一套電路用以實現定時與計數,特點是需要花費一定硬設備,而且當電路制成之后,定時值及計數范圍不能改變。軟、硬件結合法:即設計一種專門的具有可編程特性的芯片,來控制定時和計數的操作,而這些芯片,具有中斷控制能力,定時、計數到時能產生中斷請求信號,因而定時期間不影響CPU的正常工作。5第九章:可編程的定時器/計數器8253——定時器/計數器概述可編程定時器/計數器基本工作原理CPU可訪問的寄存器:控制

寄存器、CR、OL;CPU不可訪問的寄存器:CECR:16位,存放計數初值,

可通過程序來設定??刂七壿嫞焊鶕獠克蛠淼?/p>

控制命令,輸出相應信號??刂萍拇嫫骺刂七壿婥RHCRLCEHCELOLHOLL計數初值寄存器CR計數執行單元CE計數輸出鎖存器OL6第九章:可編程的定時器/計數器8253——定時器/計數器概述可編程定時器/計數器基本工作原理CE:16位減1計數器,它的

初值便是計數初值寄存器

的內容,它只對CLK脈沖計

數。一旦計數器被啟動后,

每出現一個CLK脈沖,計數

執行單元中的計數值減1,

當減為零時,通道OUT輸出

指示信號,表明CE已為零。

控制寄存器控制邏輯CRHCRLCEHCELOLHOLL計數初值寄存器CR計數執行單元CE計數輸出鎖存器OL7第九章:可編程的定時器/計數器8253——定時器/計數器概述可編程定時器/計數器基本工作原理OL:通常跟隨計數CE的內容

而變化,當接收到CPU發來的

鎖存命令時,就鎖定當前的

計數值而不跟隨CE變化,直

到CPU從中讀取鎖存值后,才

恢復到跟隨CE變化的狀態,

從而避免了CPU直接讀CE時干

擾計數工作的可能??刂萍拇嫫鳎捍娣臗PU送來

的控制字,用來控制計數器

/定時器的工作方式,就是控

制CLK脈沖和GATE門控信號適

當配合來產生OUT端的輸出信

號的形狀??刂萍拇嫫骺刂七壿婥RHCRLCEHCELOLHOLL計數初值寄存器CR計數執行單元CE計數輸出鎖存器OL8第九章:可編程的定時器/計數器8253——定時器/計數器概述可編程定時器/計數器基本工作原理GATE:控制輸入端,它有多

種控制作用,如允許/禁止

計數、啟動/停止計數等。CLK:脈沖信號,減1計數的

觸發。OUT:輸出信號,計數/定時

完成時,用一定電平或脈沖

表示??刂萍拇嫫骺刂七壿婥RHCRLCEHCELOLHOLL計數初值寄存器CR計數執行單元CE計數輸出鎖存器OL9第九章:可編程的定時器/計數器8253定時器/計數器概述可編程的定時器/計數器825310第九章:可編程的定時器/計數器8253——8253可編程定時器/計數器8253Intel8253是8086微機系統常用的定時/計數器芯片,它具有定時與計數兩大功能。每個8253芯片有3個獨立的16位計數器通道;每個計數器通道都可以按照二進制或二—十進制(BCD碼)計數;每個計數器的計數速率可以高達2MHz;每個通道有6種工作方式,可以由程序設定和改變;所有的輸入、輸出電平都與TTL兼容。11第九章:可編程的定時器/計數器8253——82538253的內部結構12第九章:可編程的定時器/計數器8253——82538253的內部結構數據總線緩沖器:從總線接收或發送數據,寫入控制字,讀取計數值的通道。讀寫邏輯:接受來自總線的各種控制信號,產生內部控制命令。控制字寄存器(只寫):8位,存放CPU送來的控制字。計數器(0~2):3個16位的定時/計數器。3套相同且相互獨立的結構,每套內部有4個寄存器??刂萍拇嫫鳎?位,存放各自的控制字,初始化時寫入控制字寄存器的內容。計數初值寄存器:16位,存放計數初值,初始化時寫入。減1計數寄存器:16位減1計數器,計數初值由預置寄存器送來,每輸入一個計數脈沖,減1,減到0時輸出計數結束信號。輸出鎖存器:當接收到CPU讀命令時,鎖存當前計數值不跟隨計數器變化。13第九章:可編程的定時器/計數器8253——82538253的引腳功能D7D6D5D4D3D2D1D0CLK0OUT0GATE0GNDOUT1GATE1CLK1GATE2CLK2A0A1OUT2WRRDCSVCC8253PIT24232221201918171615141312345678910111214第九章:可編程的定時器/計數器8253——82538253的引腳功能(1)與系統總線連接的引腳D7~D0:數據線,雙

向三態,接數據總線;CS#:片選輸入,有效

時選中芯片,接譯碼器;RD#:讀出計數值,接

CB的讀信號;WR#:寫入命令或初值,

接CB的寫信號;A1,A0:地址輸入,接

AB的任兩位,用于選擇

內部四個端口之一。IOWIOR片選信號DBD7-D08253A1A0-WR-RD-CS計數器2計數器1計數器0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A0A1A0選擇00計數器001計數器110計數器211控制寄存器15第九章:可編程的定時器/計數器8253——82538253的引腳功能01000010010101001011001000010100110功能對計數器0設置計數初值CSRDA1A0WR對計數器1設置計數初值對計數器2設置計數初值設置控制字從計數器0讀出計數值從計數器1讀出計數值從計數器2讀出計數值16第九章:可編程的定時器/計數器8253——82538253的引腳功能(2)與計數通道連接的引腳的主要引線

CLKn:時鐘脈沖,輸入,

計數器的定時基準,用于

輸入定時基準脈沖或計數

脈沖。GATEn:門控信號,輸入,

控制計數器的啟停。OUTn:計數器輸出信號,

當計數器完成計數時,輸出

相應信號。不同工作方式下

產生不同波形。(n=0~2)IOWIOR片選信號DBD7-D08253A1A0-WR-RD-CS計數器2計數器1計數器0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A017第九章:可編程的定時器/計數器8253——82538253的引腳功能CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0譯碼器高位地址A15-A282538253占用4個接口地址:

計數器0

計數器1

計數器2

控制寄存器(決定8253的I/O地址)共三組接外設18第九章:可編程的定時器/計數器8253——82538253計數器的啟動方式軟件啟動:CPU對指定計數器編程后自動啟動計數,寫入計數初值后的第1個CLK脈沖的下降沿開始計數要求GATE保持高電平(GATE為低禁止計數)。硬件啟動:

CPU對指定計數器編程后并不馬上開始計數,而是在門控信號GATE的上升沿觸發下,才開始計數。19第九章:可編程的定時器/計數器8253——82538253的工作方式方式0——計數結束中斷方式1——硬件可重觸發的單穩態方式2——速率發生器方式3——方波發生器方式4——軟件觸發選通方式5——硬件觸發選通20第九章:可編程的定時器/計數器8253——82538253的工作方式——方式0計數結束中斷:典型的事件計數用法。軟件啟動,不自動重復計數。裝入初值后OUT端變低電平,計數結束OUT輸出高電平。(可作為中斷請求信號)①②⑤④⑥GATEOUTCLK

031244方式0WR21第九章:可編程的定時器/計數器8253——82538253的工作方式——方式0計數過程由軟件啟動,可以用寫入計數初值的時刻來控制啟動計數器的時刻。GATE起開放/禁止計數作用,計數過程中,應保持高電平。每寫入一次初值計數一個周期,然后停止計數。OUT端輸出是一個約(N+1)TCLK寬度的單個負脈沖。OUT變為高電平時,可作為中斷請求信號。計數過程中可隨時修改初值重新開始計數。22第九章:可編程的定時器/計數器8253——82538253的工作方式——方式1硬件可觸發單穩態方式:硬件啟動,不自動重復計數。裝入初值后OUT端變高電平,計數開始OUT端變為低電平,計數結束后又變高。①②⑤④⑥③GATEOUTCLK

031244方式1WR23第九章:可編程的定時器/計數器8253——82538253的工作方式——方式1門控信號GATE端的上跳變觸發計數,可重復觸發。OUT輸出可看作單穩態負脈沖,若下一次GATE上升沿提前到達,則OUT端負脈沖拉寬為兩次計數過程之和。計數過程中寫入新初值不影響本次計數??赏ㄟ^改變計數初值來產生不同輸出寬度的負脈沖。24第九章:可編程的定時器/計數器8253——82538253的工作方式——方式2速率發生器:OUT產生周期性定時信號。軟、硬件啟動,自動重復計數。裝入初值后OUT端變高電平,計數到最后一個CLK時OUT輸出負脈沖,并連續重復此過程。03124GATEOUTCLK

4方式2031240312403124WR①②⑤④⑥③25第九章:可編程的定時器/計數器8253——82538253的工作方式——方式2GATE為計數的控制信號:GATE變低計數停止,再變高時的下一個CLK下降沿,從初值開始重新計數。每個計數周期結束時(減到1時),OUT端輸出一個TCLK寬度的負脈沖。OUT端輸出信號頻率是CLK頻率的1/N,因此又叫N分頻方式。計數過程自動重復進行。計數過程中修改初值不影響本輪計數過程。改變計數初值,即可獲得不同頻率的OUT輸出脈沖,這就是頻率發生器名稱的由來。26第九章:可編程的定時器/計數器8253——82538253的工作方式——方式3方波發生器:OUT輸出方波。軟、硬件啟動,自動重復計數。裝入初值后OUT端變高電平,然后OUT連續輸出對稱方波:

前N/2或(N+1)/2個CLK,OUT為高,

后N/2或(N-1)/2個CLK,OUT為低。03124GATEOUTCLK

4方式3031244WR①②⑤④⑥③27第九章:可編程的定時器/計數器8253——82538253的工作方式——方式3OUT輸出方波,前半周期為高,后半周期為低。計數過程中修改初值不影響本半輪計數過程。其余的與方式2類似。28第九章:可編程的定時器/計數器8253——82538253的工作方式——方式4軟件觸發選通:軟件啟動,不自動重復計數。裝入初值后輸出端變高電平,計數結束輸出一個CLK寬度的負脈沖。GATEOUTCLK031244方式4WR①②⑤④⑥③29第九章:可編程的定時器/計數器8253——82538253的工作方式——方式4計數過程中,GATE端應保持高電平。(GATE為低禁止計數)。每寫入一次初值,計數一個周期,然后停止計數。每個計數周期結束時(減到0時),OUT端輸出一個TCLK寬度的負脈沖。計數過程中修改初值不影響本輪計數過程。方式4與方式0的區別:

方式0:OUT負脈沖寬度為N+1個CLK周期;

方式4:OUT的輸出需N+1個CLK周期后變低,負脈沖寬度為1個CLK周期。30第九章:可編程的定時器/計數器8253——82538253的工作方式——方式5硬件觸發選通:硬件啟動,不自動重復計數。OUT端波形和方式4一樣。GATEOUTCLK031244方式5WR①②⑤④⑥③31第九章:可編程的定時器/計數器8253——82538253的工作方式——方式5寫入初值時,GATE端應保持低電平。GATE每出現一次正跳變,計數一個周期,然后停止計數。每個計數周期結束時(減到0時),OUT端輸出一個TCLK寬度的負脈沖。計數過程中修改初值不影響本輪計數過程。方式5與方式1的區別:

方式1:OUT負脈沖寬度為N個CLK周期;

方式5:OUT的輸出需N個CLK周期后變低,負脈沖寬度為1個CLK周期。32第九章:可編程的定時器/計數器8253——82538253的工作方式

啟動計數中止計數自動重復更新初值OUT波形方式0軟件(暫停)GATE=0無立即有效

方式1硬件/

無下一輪有效

方式2軟/硬件GATE=0

有下一輪有效

方式3軟/硬件GATE=0有下半輪有效

方式4軟件(暫停)GATE=0

無下一輪有效

方式5硬件/

無下一輪有效

負的單個寬脈沖負的單個寬脈沖負的單個窄脈沖負的單個窄脈沖對稱方波周期性負脈沖33第九章:可編程的定時器/計數器8253——8253選通信號GATE的功能-初始化和計數-方式5允許計數-禁止計數方式4允許計數1.初始化和計數2.計數器重新裝入1.禁止計數2.使輸出立即變為高電平方式3允許計數1.初始化和計數2.計數器重新裝入1.禁止計數2.使輸出立即變為高電平方式2-1.初始化和計數2.下一個時鐘后輸出變為低電平-方式1允許計數-禁止計數方式0高電平上升沿低電平或進入低電平34第九章:可編程的定時器/計數器8253——82538253的初始化方式控制字:用于確定各計數器的工作方式。每個計數器都必須初始化一次。D7D6D5D4D3D2D1D0計數器選擇00011011計數器0計數器1計數器2無效讀/寫格式及鎖存命令00011011計數器鎖存讀/寫計數器低8位讀/寫計數器高8位先讀/寫低8位,再讀/寫高8位工作方式選擇000001×10×11方式0方式1方式2方式3100101方式4方式5計數制選擇01二進制計數BCD碼計數35第九章:可編程的定時器/計數器8253——82538253的初始化寫入方式控制字:按方式控制字格式編制控制字,寫入8253控制口(地址值最大的)。3個計數器使用同一個控制口,3個控制字寫入后存放在各自的控制寄存器中。寫入計數初值:按控制字中D5、D4的規定寫入計數初值??刂谱种蠨0位的值決定計數初值的進制。36第九章:可編程的定時器/計數器8253——82538253的初始化寫控制字寫計數值低8位寫計數值高8位*非必須寫入順序:可按計數器分別寫入控制字和初值。也可先寫所有計數器控制字,再寫入它們的初值。37第九章:可編程的定時器/計數器8253——82538253的初始化置計數初值:MOVDX,388H;CNT0MOVAX,2000;CR0OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,389H;CNT1MOVAL,200;低8位OUTDX,AL設置工作方式:MOVDX,38BH;控制口MOVAL,36H;OUTDX,ALMOVAL,56H;CNT1OUTDX,AL36H=00

11

0110CNT016位方式356H=01

01

0110CNT18位方式338第九章:可編程的定時器/計數器8253——82538253應用舉例用8253監視一個生產流水線。每通過50個工件,揚聲器響5秒鐘,頻率為2000Hz。驅動器CLK1OUT1CLK0GATE0GATE1OUT0INT+5V2.5MHz8255PA0揚聲器8253+5V光源工件R光敏電阻2000Hz39第九章:可編程的定時器/計數器8253——82538253應用舉例工作原理:工件從光源和光敏電阻間通過時,在晶體管的發射極產生一個脈沖,作CLK0。當CNT0計滿50后,OUT0輸出負脈沖,反相后作為8259A的一個請求。中斷服務程序中,啟動CNT1計數,OUT1輸出2000Hz方波,持續5秒停止。驅動器CLK1OUT1CLK0GATE0GATE1OUT0INT+5V2.5MHz8255PA0揚聲器8253+5V光源工件R光敏電阻2000Hz40第九章:可編程的定時器/計數器8253——82538253應用舉例設置:設CNT0方式2(計數),CNT1方式3(方波),GATE0=+5V,GATE1接8255PA0(控制位)。CNT0:方式2,2位BCD計數,計數初值為50

CW0=00010101B=15HCNT1:方式3,4位BCD計數,計數初值=2.5×106/2000=1250

CW1=01110111B=77H假設:8253口地址為40H、41H、42H、43H;8255PA口地址為80H。41第九章:可編程的定時器/計數器8253——82538253應用舉例——主程序段MOVAL,15H ;CNT0初始化

OUT43H,ALMOVAL,50H ;設置計數初值

OUT40H,ALMOVAL,77H;CNT1初始化OUT43H,ALM

溫馨提示

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

評論

0/150

提交評論