微機原理第9章-計數(shù)器和定時器_第1頁
微機原理第9章-計數(shù)器和定時器_第2頁
微機原理第9章-計數(shù)器和定時器_第3頁
微機原理第9章-計數(shù)器和定時器_第4頁
微機原理第9章-計數(shù)器和定時器_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

定時與計數(shù)技術(shù)及應用定時/計數(shù)器——8253本章內(nèi)容了解定時/計數(shù)技術(shù)的應用情況掌握8253的連接與編程學習目的熟習8253的工作方式9.1概述定時計數(shù)技術(shù)在計算機中具有極為重要的作用。微機控制系統(tǒng)中,常要按一定的采樣周期對處理對象進行采樣或定時檢測某些參數(shù)等,用計數(shù)器對外部事件計數(shù),即記錄外設(shè)提供的脈沖個數(shù)。在實時操作系統(tǒng)和多任務(wù)操作系統(tǒng)中,可以利用定時器產(chǎn)生的定時中斷進行進程調(diào)度。

定時器和計數(shù)器都由數(shù)字電路中的計數(shù)電路構(gòu)成。前者記錄高精度晶振脈沖信號,因此可以輸出準確的時間間隔,稱為定時器,而當記錄外設(shè)提供的具有一定隨機性的脈沖信號時,它主要反映脈沖的個數(shù),稱為計數(shù)器。

定時的方法有3種:軟件定時、不可編程的硬件定時和可編程的定時。一、定時和計數(shù)1.軟件定時

根據(jù)CPU執(zhí)行每條指令需要一定的時間,重復執(zhí)行一些指令就會占用一段固定的時間,通過適當?shù)剡x取指令和循環(huán)次數(shù)便很容易實現(xiàn)定時功能,這種方法不需要增加硬件,可通過編程來控制和改變定時時間,靈活方便,節(jié)省費用。缺點是CPU重復執(zhí)行的這段程序的本身并沒有什么具體目的,僅為延時,從而降低了CPU利用率。2.不可編程的硬件定時

這種方法采用數(shù)字電路中的分頻器將系統(tǒng)時鐘進行適當?shù)姆诸l產(chǎn)生需要的定時信號;也可以采用單穩(wěn)電路或簡易定時電路(如常用的555定時器)由外接RC電路控制定時時間。但是,這種定時電路在硬件接好后,定時范圍不易由程序來改變和控制,使用不甚方便,而且定時精度也不高。3.可編程的定時

在微機系統(tǒng)中,常采用軟件、硬件相結(jié)合的方法,用可編程定時計數(shù)器芯片構(gòu)成一個方便靈活的定時計數(shù)電路。這種電路不僅定時值和定時范圍可用程序確定和改變,而且具有多種工作方式,可以輸出多種控制信號,它由微處理器的時鐘信號提供時間基準,故計時也精確穩(wěn)定。如Intel8253。

二、8253的基本功能和內(nèi)部結(jié)構(gòu)(1)3個獨立的16位計數(shù)器,最大計數(shù)范圍為0~65535;(2)每個計數(shù)器均可以按二進制或二—十進制計數(shù);(3)計數(shù)器速率可達2MHz;(4)可編程6種不同的工作方式;(5)所有輸入和輸出都與TTL兼容。

8253具有較好的通用性和使用靈活性,幾乎適合于任何一種微處理器組成的系統(tǒng)。

1.8253PIT的基本功能2.8253的內(nèi)部結(jié)構(gòu)

8253的內(nèi)部結(jié)構(gòu)如圖9.1所示,由數(shù)據(jù)總線緩沖器、控制寄存器、讀/寫控制邏輯和計數(shù)器等部分組成。

圖9.18253的內(nèi)部結(jié)構(gòu)示意圖(1)數(shù)據(jù)總線緩沖器

該緩沖器為8位雙向三態(tài)的緩沖器,可直接掛在數(shù)據(jù)總線上。CPU通過8位數(shù)據(jù)總線D0~D7傳送如下信息:

①向控制寄存器寫入控制字。②向某計數(shù)器寫入計數(shù)初值。③CPU通過緩沖器讀取計數(shù)器的當前計數(shù)值(2)讀/寫控制邏輯

決定三個計數(shù)器和控制字寄存器中哪一個能進行工作,并控制內(nèi)部總線上數(shù)據(jù)傳送的方向。

①CS片選信號,低電平有效(此時CPU才能對8253進行讀寫操作),由地址總線經(jīng)I/O端口譯碼電路產(chǎn)生。

②RD讀信號,低電平有效,此時表示CPU正在讀取所選定的計數(shù)器通道中的內(nèi)容。

③WR寫信號,低電平有效,此時表示CPU正在將計數(shù)初值寫入所選中的計數(shù)通道中或?qū)⒖刂谱謱懭肟刂萍拇嫫髦?。④A1A0端口選擇信號,8253內(nèi)部有3個計數(shù)器通道和一個控制寄存器端口。當A1A0=00,01,10時表示分別選中計數(shù)器通道0,1,2,當A1A0=11時選中控制寄存器端口。(3)控制寄存器

接收從CPU來的控制字,并由控制字的D7、D6位的編碼決定該控制字寫入哪個計數(shù)器的控制寄存器,控制寄存器只能寫入,不能讀出。

(4)計數(shù)器當8253用作計數(shù)器時,加在CLK引腳上脈沖的間隔可以是不相等的;當它用作定時器時,則在CLK引腳應輸入精確的時鐘脈沖,8253所能實現(xiàn)的定時時間,取決于計數(shù)脈沖的頻率和計數(shù)器的初值,即:定時時間=時鐘脈沖周期Tc×預置的計數(shù)初值n。

對8253來講,外部輸入到CLK引腳上的時鐘脈沖頻率不能大于2MHZ,否則需分頻后才能送到CLK端。

圖9.2計數(shù)器內(nèi)部邏輯圖控制單元初值寄存器減1計數(shù)器輸出鎖存器內(nèi)部總線CLKGATEOUT控制單元初值寄存器減1計數(shù)器輸出鎖存器內(nèi)部總線CLK三、8253的引腳信號圖9.38253PIT管腳圖計

數(shù)

0計

數(shù)

1計

數(shù)

2數(shù)

據(jù)

線控

線電

8253是一片具有3個獨立通道的16位計數(shù)器/定時器芯片,使用單一+5V電源,24引腳雙列直插式封裝,如圖9.3所示1.與CPU的接口信號(1)D0~D7——三態(tài)雙向數(shù)據(jù)線。與CPU數(shù)據(jù)總線相連, 用于傳遞CPU與8253之間的數(shù)據(jù)信息、控 制信息和狀態(tài)信息;(2)CS——片選信號(ChipSelect),輸入,低電平有效;(3)WR——寫信號,輸入,低電平有效,用于控制CPU對 8253的寫操作,可與A1,A0信號配合以決定 是寫入控制字還是計數(shù)初值;(4)RD——讀信號,輸入,低電平有效。用于控制CPU 對8253的讀操作,可與A1,A0信號配合讀取 某個計數(shù)器的當前計數(shù)值;(5)A0,A1-——地址輸入線。用于8253內(nèi)部尋址的4個 端口,即3個計數(shù)器和一個控制字寄存 器。一般與CPU低位的地址線相連

。A1A0寄存器選擇和操作000000001011110000×100001111×100110011××01010101××寫入計數(shù)器0寫入計數(shù)器1寫入計數(shù)器2寫入控制字寄存器讀計數(shù)器0讀計數(shù)器1讀計數(shù)器2無操作

禁止使用無操作CSRDWR表9.18253讀/寫操作邏輯表

2.與外部設(shè)備的接口信號(1)CLK0(CLK1,CLK2)——時鐘脈沖輸入端,用于輸入定時脈沖或計數(shù)脈沖信號。CLK可以是系統(tǒng)時鐘脈沖,也可以是由其他脈沖源提供。8253規(guī)定加在CLK引腳的輸入時鐘周期不得小于380ns;(2)GATE0(GATE1,GATE2)——門控輸入端,用于外部控制計數(shù)器的啟動或停止計數(shù)的操作。當GATE為高電平時,允許計數(shù)器工作,當GATE為低電平時,禁止計數(shù)器工作;(3)OUT0(OUT1,OUT2-)-——計數(shù)輸出端。在不同工作方式中,當計數(shù)器計數(shù)到0時,OUT引腳上必輸出相應的信號。

9.28253的工作方式8253是一種面向微機系統(tǒng)的專用接口芯片,它的每一個計數(shù)器都可以按照控制字的規(guī)定有6種不同的工作方式,

每種工作方式中都有以下三種情況:*

正常計數(shù)的波形圖;*

正在計數(shù)過程中改變門控信號GATE后對整個計

數(shù)工作的影響;*

正在計數(shù)的過程中改變計數(shù)值對整個計數(shù)工作的

影響。方式0——計數(shù)結(jié)束中斷方式(InterruptonTerminalCount)方式0的工作時序如圖9.4(a)(b)(c)所示。圖9.4(a)方式0正常計數(shù)CW=10LSB=3WRCLKGATEOUT322210FFCW=10LSB=3WRCLKGATEOUT322210FF圖9.4(b)方式0時GATE信號的作用圖9.4(c)方式0時計數(shù)過程中改變計數(shù)值注意8253寫計數(shù)值是由CPU的WR信號控制的,在WR信號的上升沿,計數(shù)值被送入對應計數(shù)器的計數(shù)值寄存器,在WR信號上升沿之后的下一個CLK脈沖才開始計數(shù)。如果設(shè)置計數(shù)初值N,輸出OUT是在寫入命令執(zhí)行后,第N+1個CLK脈沖之后,才變?yōu)楦唠娖降?。后面的方?、2、4、5也有同樣的特點。2.方式1——可編程的單穩(wěn)態(tài)觸發(fā)器(ProgrammableOneShort)方式1的工作波形如圖9.5(a)、(b)、(c)所示。

圖9.5(a)方式1正常計數(shù)LSB=3WRCLKGATEOUT3210FF32CW=12LSB=3WRCLKGATEOUT3210FF32CW=12圖9.5(b)方式1時GATE信號的作用LSB=3WRCLK321321CW=120GATEOUT圖9.5(c)方式1時計數(shù)過程中改變計數(shù)值LSB=2WRCLKGATEOUT4210FF3FECW=12LSB=4LSB=2WRCLKGATEOUT4210FF3FECW=12LSB=43.方式2——比率發(fā)生器、分頻器(RateGenerator)方式2用門控信號達到同步計數(shù)的目的,波形圖如圖9.6(a)、(b)、(c)、(d)所示。圖9.6(a)方式2正常計數(shù)圖9.6(b)方式2時GATE信號的作用4CW=14LSB=5WRCLKGATEOUT3214534CW=14LSB=4LSB=5WRCLKGATEOUT321453圖9.6(c)方式2時計數(shù)過程中改變計數(shù)值4.方式3——方波發(fā)生器(SquareWaveGenerator)方式3的工作過程同方式2,只是輸出的脈寬不同,波形如圖9.7(a)、(b)、(c)、(d)所示。圖9.7(a)方式3計數(shù)值為偶數(shù)時的波形圖9.7(b)方式3計數(shù)值為奇數(shù)時的波形圖9.7(c)方式3GATE信號的作用圖9.7(d)方式3計數(shù)過程中改變計數(shù)值5.方式4——軟件觸發(fā)選通方式(SoftwareTriggeredStrobe)用方式4工作時,GATE門控信號只是用來允許或不允許定時操作的,定時的執(zhí)行過程由裝入的初值決定,波形圖如圖9.8(a)、(b)、(c)所示。圖9.8(a)方式4正常計數(shù)圖9.8(b)方式4GATE信號的作用圖9.8(c)方式4計數(shù)過程中改變計數(shù)值6.方式5——硬件觸發(fā)選通方式(HardwareTriggeredStrobe)方式5為硬件觸發(fā)選通方式,完全由GATE端引入的觸發(fā)信號控制定時和計數(shù),波形圖如圖9.9(a)、(b)、(c)所示。圖9.9(a)方式5正常計數(shù)OUTLSB=3WRCLKGATECW=1A3210FF3圖9.9(b)方式5時GATE信號的作用圖9.9(c)方式5時計數(shù)過程中改變計數(shù)值9.38253的控制字與初始化編程1.8253的控制字8253的控制字有4個主要功能:*

選擇計數(shù)器;*

確定計數(shù)器數(shù)據(jù)的讀寫格式;*

確定計數(shù)器的工作方式;*

確定計數(shù)器計數(shù)的數(shù)制。

控制字的格式如圖9.10所示D7D6D5D4D3D2D1D0計數(shù)器

讀/寫格式

工作方式

數(shù)制0—二進制1—二―十進制(BCD)000

方式0001

方式110方式211方式3100

方式4101

方式500

計數(shù)器鎖存命令10

只讀/寫高8位01

只讀/寫低8位11

首先寫低8位

然后寫高8位00選擇計數(shù)器001選擇計數(shù)器110選擇計數(shù)器211非法選擇圖9.108253控制字格式注:圖中×可以是0,也可以是1,一般取0

2.8253的初始化編程

剛接通電源時,8253芯片通道都處于未定義狀態(tài),在使用之前,必須用程序把它們初始化為所需的特定模式,這個過程稱為初始化編程。

(1)寫入控制字

用輸出指令向控制字寄存器寫入一個控制字,以選定計數(shù)器通道,規(guī)定該計數(shù)器的工作方式和計數(shù)格式。

(2)寫入計數(shù)初值

用輸出指令向選中的計數(shù)器端口地址中寫入一個計數(shù)初值,初值設(shè)置時要符合控制字中有關(guān)格式的規(guī)定。若是8位數(shù),只要用一條輸出指令就可完成初值的設(shè)置。如果是16位數(shù),則必須用兩條輸出指令來完成,而且規(guī)定先送低8位數(shù)據(jù),后送高8位數(shù)據(jù)。注意,計數(shù)初值為0時,也要分成兩次寫入,因為在二進制計數(shù)時它表示65536,在BCD計數(shù)時它表示10000。

8253工作過程中,CPU可用輸入指令讀取任一通道的計數(shù)值。CPU讀到的是執(zhí)行輸入指令瞬間計數(shù)器的當前值。但8253的計數(shù)器是16位,所以要分2次讀至CPU。因此,若不鎖存的話,在前后兩次執(zhí)行輸入指令的過程中,計數(shù)值可能已經(jīng)變化了。鎖存當前計數(shù)值有下面兩種方法:①利用GATE信號使計數(shù)過程暫停。②向8253寫入一個方式控制字,

令8253通道的鎖存器鎖存。例如,在某微機系統(tǒng)中,8253的3個計數(shù)器的端口地址分別為3F0H、3F2H和3F4H,控制字寄存器的端口地址為3F6H,要求8253的通道0工作于方式3,BCD計數(shù),并已知對它寫入的計數(shù)初值n=1234(十進制數(shù)),則初始化程序為:

MOVAL,00110111B;控制字:選擇通道0,先讀/寫低字節(jié),

;

后高字節(jié),方式3,BCD計數(shù)MOVDX,3F6H;指向控制口OUTDX,AL;送控制字MOVAL,34H;計數(shù)值低字節(jié),代表00110100BCDMOVDX,3F0H;指向計數(shù)器0端口OUTDX,AL;先寫入低字節(jié)MOVAL,12H;計數(shù)值高字節(jié),代表0001010BCDOUTDX,AL;后寫入高字節(jié)例9.19.4應用舉例1.8253定時功能的應用

在計算機應用中,經(jīng)常會遇到隔一定時間重復某一個動作的應用。

設(shè)某應用系統(tǒng)中,系統(tǒng)提供一個頻率為10kHz的時鐘信號,要求每隔100ms采集一次數(shù)據(jù)。在系統(tǒng)中,采用8253定時器的通道0來實現(xiàn)這一要求。將8253芯片的CLK0接到系統(tǒng)的10kHz時鐘上,OUT0輸出接到CPU的中斷請求線上,8253的端口地址為10H~13H,如圖9.11所示。中斷請求信號CPU總線OUT0圖9.118253用于定時中斷(1)選擇工作方式

由于系統(tǒng)每隔100ms定時中斷一次,則采樣頻率為10Hz,可選用方式2來實現(xiàn)。當8253定時器工作在方式2時,在寫入控制字與計數(shù)初值后,定時器就啟動工作,每到100ms時間,即計數(shù)器減到1時,輸出端OUT0輸出一個CLK周期的低電平,向CPU申請中斷,CPU在中斷服務(wù)程序中完成數(shù)據(jù)采集,同時按原設(shè)定值重新開始計數(shù),實現(xiàn)了計數(shù)值的自動重裝。

(2)確定計數(shù)初值

已知

fCLK0=10kHz,則TCLK0=0.1ms,所以,計數(shù)初值

N=TOUT0/TCLK0=100ms/0.1ms=1000=03E8H

(3)初始化編程根據(jù)以上要求,可確定8253通道0的方式控制字為00110100B,即34H。

初始化程序段如下:

MOVAL,34H;通道0,16位計數(shù),方式2,二進制計數(shù)OUT13H,AL;寫入方式控制字到控制字寄存器MOVAL,0E8H;計數(shù)初值低8位OUT10H,AL;寫入計數(shù)初值低8位到通道0MOVAL,03H;計數(shù)初值高8位OUT10H,AL;寫入計數(shù)初值高8位到通道0例9.22.8253計數(shù)功能的應用

通過PC機系統(tǒng)總線在外部擴展一個8253,利用其通道0記錄外部事件的發(fā)生次數(shù),每輸入一個高脈沖表示事件發(fā)生1次。當事件發(fā)生100次后就向CPU提出中斷請求(邊沿觸發(fā)),假設(shè)8253片選信號的I/O地址范圍為200H~203H,如圖9.12。

外部事件產(chǎn)生A0A1A3~A9譯碼電路圖9.128253用于外部事件的計數(shù)

根據(jù)要求,可以選擇方式0來實現(xiàn),計數(shù)初值N=100。8253初始化程序段如下:

MOVDX,203H;設(shè)置方式控制字地址MOVAL,10H;設(shè)定通道0為工作方式0,二進制計數(shù),只寫入

;低字節(jié)計數(shù)值OUTDX,AL

MOVDX,20

溫馨提示

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

評論

0/150

提交評論