第九章計(jì)數(shù)定時(shí)技術(shù)_第1頁
第九章計(jì)數(shù)定時(shí)技術(shù)_第2頁
第九章計(jì)數(shù)定時(shí)技術(shù)_第3頁
第九章計(jì)數(shù)定時(shí)技術(shù)_第4頁
第九章計(jì)數(shù)定時(shí)技術(shù)_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第九章計(jì)數(shù)定時(shí)技術(shù)16.1 概述概述q實(shí)現(xiàn)定時(shí)的三種方法:實(shí)現(xiàn)定時(shí)的三種方法: 1. 軟件定時(shí)軟件定時(shí) 由CPU執(zhí)行指令序列所花費(fèi)的時(shí)間來構(gòu)成一定的時(shí)間間隔,從而達(dá)到定時(shí)的目的。 例如: MOV CX , H HERE: LOOP HEREq優(yōu)點(diǎn):不需要專門的硬件設(shè)備。q缺點(diǎn): 浪費(fèi)了寶貴的CPU資源。2.不可編程的硬件定時(shí)不可編程的硬件定時(shí) 時(shí)序波形時(shí)序波形 穩(wěn)態(tài)穩(wěn)態(tài) td觸發(fā)信號(hào) 暫穩(wěn)態(tài)單穩(wěn)態(tài)單穩(wěn)態(tài) 電路電路3. 可編程計(jì)數(shù)器可編程計(jì)數(shù)器/定時(shí)器定時(shí)器q 可用軟件的方法(通過初始化編程)設(shè)定或調(diào)整定時(shí)范圍。q 典型產(chǎn)品: Zilog Z80-CTC Intel 8253(8254)16.2

2、 可編程計(jì)數(shù)器可編程計(jì)數(shù)器/定時(shí)器定時(shí)器825316.2.1 8253 的主要功能的主要功能 (1)具有三個(gè)獨(dú)立的16位計(jì)數(shù)通道; (2)每個(gè)計(jì)數(shù)通道可按二進(jìn)制或二十進(jìn)制計(jì)數(shù); (3)每個(gè)計(jì)數(shù)通道的計(jì)數(shù)速率可達(dá)2MHz; (4)每個(gè)計(jì)數(shù)通道有六種工作方式; (5)全部輸入輸出都與TTL電平兼容。 16.2.2 8253的結(jié)構(gòu)的結(jié)構(gòu)q 8253的內(nèi)部結(jié)構(gòu)框圖如圖所示。q 由圖可見,它由與CPU的接口、內(nèi)部控制電路以及三個(gè)計(jì)數(shù)器通道所組成。數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器讀讀/寫寫邏輯邏輯控制字控制字寄存器寄存器D7D0計(jì)數(shù)器計(jì)數(shù)器0計(jì)數(shù)器計(jì)數(shù)器1計(jì)數(shù)器計(jì)數(shù)器2RDWRA0A1CS內(nèi)部總線CLK0GA

3、TE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2圖圖16.1 8253內(nèi)部結(jié)內(nèi)部結(jié)構(gòu)框圖構(gòu)框圖1. 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器q 這是8253與CPU的數(shù)據(jù)總線(DD)連接的8位雙向三態(tài)緩沖器。q CPU用輸入輸出指令對(duì)8253進(jìn)行讀寫操作時(shí)的所有信息都通過這個(gè)緩沖器傳送。2. 讀讀/寫邏輯寫邏輯q 這是8253內(nèi)部操作的控制電路,它從系統(tǒng)控制總線上接收輸入信號(hào),然后轉(zhuǎn)換成8253內(nèi)部操作的各種控制信號(hào)。 3. 控制字寄存器控制字寄存器q 當(dāng)?shù)刂沸盘?hào)A1和A0都為1時(shí),訪問控制字寄存器。q 控制字寄存器從數(shù)據(jù)總線上接收CPU送來的控制字,并由控制字的D7、D6兩位的編碼決定

4、控制字寫入哪個(gè)通道的控制寄存器中去。q 由寄存在每個(gè)通道內(nèi)的控制寄存器的內(nèi)容決定該通道的工作方式,選擇計(jì)數(shù)器是按二進(jìn)制還是BCD數(shù)計(jì)數(shù),并確定每個(gè)計(jì)數(shù)器初值的寫入順序。4. 計(jì)數(shù)器計(jì)數(shù)器0、計(jì)數(shù)器、計(jì)數(shù)器1、計(jì)數(shù)器、計(jì)數(shù)器2q 這是三個(gè)計(jì)數(shù)器/定時(shí)器通道,每一個(gè)都由16位的可設(shè)置計(jì)數(shù)初值的減法計(jì)數(shù)器構(gòu)成。q 三個(gè)通道的操作是完全獨(dú)立的。每個(gè)通道都有兩個(gè)輸入引腳CLK和GATE以及一個(gè)輸出引腳OUT。q 從編程的角度看,從編程的角度看,8253的結(jié)構(gòu)框圖如圖所示。的結(jié)構(gòu)框圖如圖所示。 數(shù)據(jù)總線數(shù)據(jù)總線地址譯碼RDWRIO/MVCCGNDCLK0GATE0OUT0CLK1GATE1OUT1CLK2

5、GATE2OUT2D7D0RDWRCSA1A0控制寄存器(控制寄存器(8位)位)高8位低8位高8位低8位計(jì)數(shù)器計(jì)數(shù)器0高8位低8位計(jì)數(shù)初值寄存器計(jì)數(shù)初值寄存器(CR)計(jì)數(shù)執(zhí)行部件計(jì)數(shù)執(zhí)行部件(CE)輸出鎖存器(輸出鎖存器(OL)計(jì)數(shù)器計(jì)數(shù)器1計(jì)數(shù)器計(jì)數(shù)器2圖圖16.2 8253計(jì)數(shù)通道結(jié)構(gòu)計(jì)數(shù)通道結(jié)構(gòu) q “控制寄存器控制寄存器”及及“計(jì)數(shù)初值寄存器計(jì)數(shù)初值寄存器(CR)”可由可由CPU寫寫入;入;q “輸出鎖存器輸出鎖存器(OL)”可由可由CPU讀出。讀出。16.2.3 8253的引腳的引腳q 8253的引腳如圖所示。的引腳如圖所示。8253D7D6D5D4D3D2D1D0CLK0OUT0G

6、ATE0GND1234567891011122423222120191817 16 15 14 13VccWRRDCSA1A0CLK2GATE2OUT2CLK1GATE1OUT116.3 8253的引腳圖的引腳圖16.2.4 8253 的工作方式的工作方式q8253的每個(gè)通道均可以通過編程選擇6種工作方式之一:方式方式0計(jì)數(shù)到零產(chǎn)生中斷請求計(jì)數(shù)到零產(chǎn)生中斷請求 (Interrupt on Terminal Count)方式0的操作時(shí)序圖如圖所示。CLKGATE(高)(高)01234CWN4WRN1個(gè)個(gè)OUT圖圖16.4 方式方式0的時(shí)序圖的時(shí)序圖方式方式0的主要特點(diǎn)是:的主要特點(diǎn)是:計(jì)數(shù)器只計(jì)

7、一遍而不能自動(dòng)重復(fù)工作。計(jì)數(shù)器只計(jì)一遍而不能自動(dòng)重復(fù)工作。q當(dāng)減1計(jì)數(shù)到零時(shí),并不自動(dòng)恢復(fù)計(jì)數(shù)初值重新開始計(jì)數(shù),且OUT輸出保持為高電平。q只有CPU再次寫入一個(gè)新的計(jì)數(shù)值(即使計(jì)數(shù)值相同也需再次寫入),OUT才變?yōu)榈碗娖剑?jì)數(shù)器按新寫入的計(jì)數(shù)值重新開始計(jì)數(shù)。q或者CPU重新對(duì)8253設(shè)置方式0控制字,它的OUT輸出也可以立即變?yōu)榈碗娖剑⒌仍俅螌懭胗?jì)數(shù)初值后重新開始計(jì)數(shù)。(2) CPU向向CR寄存器寫入計(jì)數(shù)初值后的第一個(gè)寄存器寫入計(jì)數(shù)初值后的第一個(gè)CLK脈沖脈沖(即圖中用斜線標(biāo)出的那個(gè)脈沖),將(即圖中用斜線標(biāo)出的那個(gè)脈沖),將CR的內(nèi)容送入的內(nèi)容送入CE,從此之后計(jì)數(shù)器才開始減,從此之后計(jì)

8、數(shù)器才開始減1計(jì)數(shù)。計(jì)數(shù)。q 這第一個(gè)CLK脈沖不包括在減1計(jì)數(shù)過程中。q 如果設(shè)置計(jì)數(shù)初值為N,則輸出OUT是在N+1個(gè)CLK脈沖之后才變?yōu)楦唠娖健?3) 在計(jì)數(shù)過程中,可由在計(jì)數(shù)過程中,可由GATE信號(hào)控制暫停計(jì)數(shù)。信號(hào)控制暫停計(jì)數(shù)。q 當(dāng)GATE變低時(shí),計(jì)數(shù)暫停;q 當(dāng)GATE變高后又接著計(jì)數(shù)。q 其工作波形如圖所示。CLKGATE12223N3CWWROUT圖圖16.5 方式方式0計(jì)數(shù)過程中改變計(jì)數(shù)過程中改變GATE信號(hào)信號(hào)0(4) 在計(jì)數(shù)過程中也可改變計(jì)數(shù)值。在計(jì)數(shù)過程中也可改變計(jì)數(shù)值。q 在寫入新的計(jì)數(shù)值后,計(jì)數(shù)器將立即按新的計(jì)數(shù)值重新開始計(jì)數(shù),即改變計(jì)數(shù)值是立即有效的。q 當(dāng)按新

9、的計(jì)數(shù)值減1計(jì)數(shù)到0時(shí),輸出OUT變?yōu)楦唠娖?。其工作波形如圖所示。CLKGATE(高)12123CWN3WROUT圖圖16.6 方式方式0計(jì)數(shù)過程中改變計(jì)數(shù)值計(jì)數(shù)過程中改變計(jì)數(shù)值0N22. 方式方式1硬件可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器硬件可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 ( Programmable one-shot)q 方式1的時(shí)序圖如圖所示。 CLKGATE圖圖16.7 方式方式1的時(shí)序圖的時(shí)序圖CWN2WR112OUT020q 在方式1,當(dāng)CPU輸出控制字后(WR的上升沿),OUT輸出變?yōu)楦唠娖?若原為高電平,則保持為高電平);q 在CPU寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不開始計(jì)數(shù),直至門控信號(hào)GATE上升沿

10、(即門控觸發(fā)信號(hào)即門控觸發(fā)信號(hào))出現(xiàn),并在其下一個(gè)CLK脈沖的下降沿,CR的內(nèi)容送入CE,同時(shí)使OUT輸出變?yōu)榈碗娖剑缓箝_始對(duì)隨后的CLK脈沖進(jìn)行減1計(jì)數(shù)。 q 在計(jì)數(shù)過程中,OUT一直維持為低電平,直至減1計(jì)數(shù)到0時(shí),OUT輸出變?yōu)楦唠娖?。q 即由于GATE上升沿的觸發(fā),使使OUT輸出端產(chǎn)生一個(gè)輸出端產(chǎn)生一個(gè)寬度為寬度為N個(gè)個(gè)CLK周期的負(fù)脈沖。周期的負(fù)脈沖。q 此后,若再次由GATE上升沿觸發(fā),則輸出再次產(chǎn)生一個(gè)同樣寬度的負(fù)脈沖。 方式方式1的主要特點(diǎn)是:的主要特點(diǎn)是:(1) 若設(shè)置計(jì)數(shù)初值為N,則輸出負(fù)脈沖的寬度為輸出負(fù)脈沖的寬度為N個(gè)個(gè)CLK脈沖周期。脈沖周期。(2) 當(dāng)計(jì)數(shù)到零時(shí),

11、可再次由GATE上升沿觸發(fā),輸出同樣寬度的負(fù)脈沖,而不必重新寫入計(jì)數(shù)初值。(3) 在計(jì)數(shù)過程中(輸出負(fù)脈沖期間),可由GATE上升沿再觸發(fā)。并使計(jì)數(shù)器從計(jì)數(shù)初值開始重新作減1計(jì)數(shù),減至0時(shí),OUT輸出變?yōu)楦唠娖健 其效果是使輸出負(fù)脈沖的寬度比原來加寬了。(4) 在計(jì)數(shù)過程中,CPU可改變計(jì)數(shù)初值,這時(shí)計(jì)數(shù)過程不受影響,計(jì)數(shù)到零后輸出變高。q 當(dāng)再次觸發(fā)時(shí),計(jì)數(shù)器才按新輸入的計(jì)數(shù)值計(jì)數(shù)。q 即改變計(jì)數(shù)值是下次有效的。改變計(jì)數(shù)值是下次有效的。3. 方式方式2分頻器分頻器 (Rate Generator)q 在方式2,當(dāng)CPU輸出控制字后,OUT輸出為高。在寫入計(jì)數(shù)初值后,計(jì)數(shù)器將自動(dòng)對(duì)輸入時(shí)鐘C

12、LK計(jì)數(shù)。q 在計(jì)數(shù)過程中OUT輸出為高,直至計(jì)數(shù)器減到1(注意,不是減到0)時(shí),OUT輸出變低,經(jīng)過一個(gè)CLK周期,輸出恢復(fù)為高,且計(jì)數(shù)器將自動(dòng)重新開始計(jì)數(shù)。q 這種方式可作脈沖速率發(fā)生器或用來產(chǎn)生實(shí)時(shí)時(shí)鐘中斷信號(hào)。q 方式方式2的時(shí)序圖如圖所示。的時(shí)序圖如圖所示。CLKGATE(高)23123CWN3WROUT圖圖16.8 方式方式2時(shí)序圖時(shí)序圖13方式方式2的主要特點(diǎn)是:的主要特點(diǎn)是: (1) 不用重新設(shè)置計(jì)數(shù)值,通道能連續(xù)工作,輸出固定頻不用重新設(shè)置計(jì)數(shù)值,通道能連續(xù)工作,輸出固定頻率的脈沖。率的脈沖。q如果計(jì)數(shù)初值為N,則每輸入N個(gè)CLK脈沖,輸出一個(gè)負(fù)脈沖。q負(fù)脈沖寬度為1個(gè)CLK

13、周期,重復(fù)周期為N倍的CLK周期。(2) 計(jì)數(shù)過程可由計(jì)數(shù)過程可由GATE信號(hào)控制。信號(hào)控制。q當(dāng)GATE信號(hào)變低時(shí),立即暫?,F(xiàn)行計(jì)數(shù);q當(dāng)GATE信號(hào)又變高后,從計(jì)數(shù)初值開始重新計(jì)數(shù)。(3) 如果在計(jì)數(shù)過程中,CPU重新寫入計(jì)數(shù)值,則對(duì)于正在進(jìn)行的計(jì)數(shù)無影響,而是從下一個(gè)計(jì)數(shù)操作周期開始按新的計(jì)數(shù)值改變輸出脈沖的頻率。4. 方式方式3方波發(fā)生器方波發(fā)生器(Square Wave Rate Generator)q 方式3和方式2的工作情況類似,兩者的主要區(qū)別是輸出波形的形式。q 對(duì)于方式3,OUT輸出是對(duì)稱方波或基本對(duì)稱的矩形波。即在一個(gè)計(jì)數(shù)周期內(nèi),若計(jì)數(shù)初值N為偶數(shù)為偶數(shù),則OUT輸出將有N

14、/2個(gè)CLK周期為高電平,N/2個(gè)CLK周期為低電平,輸出為對(duì)稱方波,其周期為N個(gè)CLK周期;q 若若N為奇數(shù)為奇數(shù),則OUT輸出將有(N+1)/2個(gè)CLK周期為高電平,(N-1)/2個(gè)CLK周期為低電平,輸出為基本對(duì)稱的矩形波,其周期也為N個(gè)CLK周期。 q 在方式3,當(dāng)CPU設(shè)置控制字后,輸出將為高,在寫完計(jì)數(shù)初值N后計(jì)數(shù)器就自動(dòng)開始計(jì)數(shù),輸出保持為高。q 當(dāng)計(jì)數(shù)到N/2(或(N+1)/2)時(shí),輸出變低,直至計(jì)數(shù)到0,使輸出變高。同時(shí)又重新裝入計(jì)數(shù)值開始新的計(jì)數(shù)。q 計(jì)數(shù)過程周而復(fù)始重復(fù)進(jìn)行。q 這種方式常用來產(chǎn)生一定頻率的方波。q 方式3的時(shí)序圖如圖所示。 CWN4(N=5)GATE(高

15、)24124OUT(N4時(shí)UT(N5時(shí))圖圖16.9 方式方式3時(shí)序圖時(shí)序圖WRCLK方式方式3的主要特點(diǎn)是:的主要特點(diǎn)是:(1) 若計(jì)數(shù)初值N為偶數(shù),則輸出波形是周期為N個(gè)CLK周期的對(duì)稱方波;若計(jì)數(shù)初值N為奇數(shù),則輸出波形是周期為N個(gè)CLK周期的基本對(duì)稱矩形波,其高電平持續(xù)時(shí)間比低電平持續(xù)時(shí)間多一個(gè)CLK周期。(2) 如果在計(jì)數(shù)過程中,GATE信號(hào)變低,則暫?,F(xiàn)行計(jì)數(shù)過程,直到GATE再次有效,將從計(jì)數(shù)初值開始重新計(jì)數(shù)。(3) 如果要求改變輸出方波的頻率,則CPU可在任何時(shí)候重新寫入新的計(jì)數(shù)初值,并從下一個(gè)計(jì)數(shù)操作周期開始改變輸出方波的頻率。5. 方式方式4軟件觸

16、發(fā)選通軟件觸發(fā)選通(Software Triggered Strobe)q 在方式4,當(dāng)寫入控制字后,OUT輸出為高。當(dāng)寫入計(jì)數(shù)初值后計(jì)數(shù)器即開始計(jì)數(shù)(相當(dāng)于軟件觸發(fā)啟動(dòng)),當(dāng)計(jì)數(shù)到0后,輸出變低,經(jīng)過1個(gè)CLK周期,輸出又變高。q 方式4不能自動(dòng)重復(fù)計(jì)數(shù),即這種方式計(jì)數(shù)是一次性的。q 每次啟動(dòng)計(jì)數(shù)都要靠重新寫入計(jì)數(shù)值,所以稱為“軟件觸發(fā)選通”。q 當(dāng)8253工作于方式4時(shí),可用作軟件觸發(fā)的選通信號(hào)發(fā)生器。q 方式4的時(shí)序圖如圖所示。GATE(高)CLKWRCWN30123OUT圖圖16.10 方式方式4時(shí)序圖時(shí)序圖方式方式4的主要特點(diǎn)是:的主要特點(diǎn)是: (1)若設(shè)置計(jì)數(shù)初值為N,則在寫入計(jì)數(shù)

17、初值后的N+1個(gè)CLK脈沖,才輸出一個(gè)負(fù)脈沖。負(fù)脈沖的寬度為1個(gè)CLK周期。(2) GATE為高時(shí),允許計(jì)數(shù);GATE為低時(shí),禁止計(jì)數(shù)。所以,要實(shí)現(xiàn)軟件啟動(dòng),GATE應(yīng)為高。(3) 若在計(jì)數(shù)過程中改變計(jì)數(shù)值,則按新的計(jì)數(shù)值重新開始計(jì)數(shù),即改變計(jì)數(shù)值是立即有效的。q 方式方式4可應(yīng)用于這樣一種情況:可應(yīng)用于這樣一種情況: q CPU經(jīng)輸出端口發(fā)送并行數(shù)據(jù)給接收系統(tǒng),經(jīng)過一段時(shí)間延遲后,再發(fā)送一個(gè)選通信號(hào),利用該選通信號(hào)將并行數(shù)據(jù)打入到接收系統(tǒng)的緩沖寄存器中。q 通過改變計(jì)數(shù)初值N,可以方便地調(diào)整發(fā)出選通信號(hào)的可以方便地調(diào)整發(fā)出選通信號(hào)的延遲時(shí)間。延遲時(shí)間。6. 方式方式5硬件觸發(fā)選通硬件觸發(fā)選通

18、 (Hardware Triggered Strobe)q 在方式5,設(shè)置了控制字后,輸出為高。q 在設(shè)置了計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而是由門控信號(hào)GATE的上升沿觸發(fā)啟動(dòng)。 q 當(dāng)計(jì)數(shù)到0時(shí),輸出變低,經(jīng)過一個(gè)經(jīng)過一個(gè)CLK周期周期,輸出恢復(fù)為高,并停止計(jì)數(shù)。q 要等到下次門控GATE信號(hào)的觸發(fā)才能再計(jì)數(shù),即方式5的計(jì)數(shù)是一次性的。q 方式5的時(shí)序圖如圖所示。CLKGATE0123CWN3WROUT圖圖16.11 方式方式5時(shí)序圖時(shí)序圖方式方式5的主要特點(diǎn)是:的主要特點(diǎn)是:(1) 若設(shè)置計(jì)數(shù)初值為N,則在門控GATE上升沿觸發(fā)后,經(jīng)過N+1個(gè)CLK脈沖,才輸出一個(gè)負(fù)脈沖。(2) 若

19、在計(jì)數(shù)過程中再次出現(xiàn)門控GATE觸發(fā)信號(hào),則將使計(jì)數(shù)器從計(jì)數(shù)初值開始重新計(jì)數(shù),但OUT輸出的高電平不受影響。(3) 若在計(jì)數(shù)過程中改變計(jì)數(shù)值,只要在計(jì)數(shù)到0之前不出現(xiàn)新的門控觸發(fā)信號(hào),則原計(jì)數(shù)過程不受影響;等計(jì)數(shù)到0并出現(xiàn)新的門控發(fā)信號(hào)后,再按新的計(jì)數(shù)值計(jì)數(shù)。 若在寫入了新的計(jì)數(shù)值后,在未計(jì)數(shù)到0之前有門控觸發(fā)信號(hào)出現(xiàn),則立即按新的計(jì)數(shù)值重新開始計(jì)數(shù)。 7. 8253工作方式小結(jié)工作方式小結(jié) (1) 方式2(分頻器)、方式4(軟件觸發(fā)選通)和方式5(硬件觸發(fā)選通),它們的輸出波形相同,都是寬度為它們的輸出波形相同,都是寬度為1個(gè)個(gè)CLK周期的負(fù)脈沖周期的負(fù)脈沖。 區(qū)別是區(qū)別是,方式2是自動(dòng)重復(fù)

20、工作的,而方式4需由軟件(設(shè)置計(jì)數(shù)值)觸發(fā)啟動(dòng),方式5需由門控GATE信號(hào)觸發(fā)啟動(dòng)。 (2) 方式5(硬件觸發(fā)選通)與方式1(硬件觸發(fā)單穩(wěn)),觸發(fā)觸發(fā)信號(hào)相同,但輸出波形不同信號(hào)相同,但輸出波形不同.q 方式1輸出為寬度是N個(gè)CLK周期的負(fù)脈沖(計(jì)數(shù)過程中輸出為低);q 方式5輸出為寬度是1個(gè)CLK周期的負(fù)脈沖(計(jì)數(shù)過程中輸出為高)。(3) 在6種工作方式中,只有方式只有方式0,在寫入控制字后輸在寫入控制字后輸出為低;出為低; 其余5種方式,都是在寫入控制字后輸出為高。(4) 6種工作方式中的任一種方式,只有在寫入計(jì)數(shù)初值后才能開始計(jì)數(shù)。q 方式方式0、2、3、4都是寫入計(jì)數(shù)初值后,計(jì)數(shù)過程就

21、開始了。q 方式方式1、5在寫入計(jì)數(shù)初值后,需由外部GATE信號(hào)的觸發(fā)啟動(dòng),才能開始計(jì)數(shù)過程。(5) 6種工作方式中,只有方式只有方式2(分頻器分頻器)和方式和方式3(方波發(fā)方波發(fā)生器生器)為自動(dòng)重復(fù)工作方式,其他4種方式都是一次性計(jì)數(shù),要繼續(xù)工作需要重新啟動(dòng)。16.2.5 8253的初始化編程的初始化編程1. 內(nèi)部寄存器的尋址內(nèi)部寄存器的尋址q 8253有三個(gè)獨(dú)立的計(jì)數(shù)器通道,每個(gè)通道可以被CPU訪問的部件有:q 8位的控制寄存器,它只能寫入,不能讀出; q 16位的計(jì)數(shù)初值寄存器CR,它只能寫入,不能讀出;q 16位的輸出鎖存器OL,它只能讀出,不能寫入。q 8253芯片是否被選中,決定于

22、片選信號(hào)CS,通常CS接自地址譯碼器輸出。 q 一片8253占用四個(gè)連續(xù)的端口地址,分別對(duì)應(yīng)于三個(gè)計(jì)數(shù)初值寄存器端口和一個(gè)控制寄存器端口。q 由輸入信號(hào)A1和A0的四種編碼來選擇四個(gè)端口之一。q 每個(gè)通道都各自有獨(dú)立的控制寄存器,但三個(gè)通道的控制寄存器都共用一個(gè)端口地址,即A1和和A0都為都為1時(shí)時(shí)的端口地址的端口地址。它是三個(gè)通道共同使用的控制寄存器端口地址。 q 為了能夠?qū)⒚總€(gè)通道的控制字寫入它們各自的控制寄存器中,使用控制字的使用控制字的D7和和D6的編碼,來標(biāo)志此控制的編碼,來標(biāo)志此控制字是寫入哪個(gè)通道的控制寄存器中。字是寫入哪個(gè)通道的控制寄存器中。q 8253內(nèi)部寄存器的尋址如表內(nèi)部

23、寄存器的尋址如表16-1所示所示 。(P558)2.初始化編程順序初始化編程順序 注意:必須按控制字D5,D4位規(guī)定的格式進(jìn)行寫入。 設(shè)置控制字寫入計(jì)數(shù)初值3. 8253的控制字的控制字SC1SC0RL1RL0M2M1M0BCD00 通道001 通道102 通道211 無效通道選擇通道選擇:00 計(jì)數(shù)器鎖存命令01 只讀/寫計(jì)數(shù)器低8位10 只讀/寫計(jì)數(shù)器高8位11 先讀/寫計(jì)數(shù)器低8位 后讀/寫計(jì)數(shù)器高8位讀讀/寫格式:寫格式:計(jì)數(shù)制計(jì)數(shù)制:0 二進(jìn)制計(jì)數(shù)1 十進(jìn)制計(jì)數(shù)工作方式:工作方式:000 方式0001 方式1x10 方式2x11 方式3100 方式4101 方式5圖圖16.12 82

24、53 控制字控制字格式格式需要說明的是:需要說明的是:q 當(dāng)采用二進(jìn)制計(jì)數(shù)時(shí)當(dāng)采用二進(jìn)制計(jì)數(shù)時(shí),如果是8位二進(jìn)制計(jì)數(shù)位二進(jìn)制計(jì)數(shù)(計(jì)數(shù)值256),則在8253初始化編程的傳送指令“MOV AL, n”中,n可以寫成任何進(jìn)制數(shù)任何進(jìn)制數(shù)(二進(jìn)制、十進(jìn)制或十六進(jìn)制)的形式;q 如果是16位二進(jìn)制計(jì)數(shù)位二進(jìn)制計(jì)數(shù)(計(jì)數(shù)值65536),一種方法是先把計(jì)算得到的十進(jìn)制計(jì)數(shù)初值n轉(zhuǎn)換成4位十六進(jìn)制數(shù)(即16位二進(jìn)制),然后分兩次寫入8253的指定端口。 q 另一種方法是先把該十進(jìn)制計(jì)數(shù)初值先把該十進(jìn)制計(jì)數(shù)初值n直接傳送給直接傳送給AX,然后分兩次寫入然后分兩次寫入8253指定端口指定端口,即: q MOV

25、 AX , n q OUT PORT, AL ;先寫低8位(PORT為端口號(hào))q MOV AL, AH q OUT PORT, AL ; 后寫高8位q 當(dāng)采用十進(jìn)制(當(dāng)采用十進(jìn)制(BCD碼)計(jì)數(shù)時(shí)碼)計(jì)數(shù)時(shí),必須在8253初始化編程中把計(jì)算得到的十進(jìn)制計(jì)數(shù)初值n加上后綴H, 以便在相應(yīng)的傳送指令執(zhí)行后能夠在AL(或AX)中得到十進(jìn)制數(shù)n的BCD碼表示形式。 例如例如n=50,則應(yīng)按如下方式寫入:,則應(yīng)按如下方式寫入: MOV AL, 50H OUT PORT, AL 如果如果n=1250, 則需分兩次寫入,即:則需分兩次寫入,即: MOV AL, 50H OUT PORT, AL ; 先寫低8

26、位 MOV AL, 12H OUT PORT, AL ; 后寫高8位 也可按如下方法兩次寫入:也可按如下方法兩次寫入: MOV AX, 1250H OUT PORT, AL ; 先寫低8位 MOV AL, AH OUT PORT, AL ; 后寫高8位4.初始化編程舉例初始化編程舉例例例 若用8253的計(jì)數(shù)通道1,工作在方式0,按8位二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為128,則初始化編程如下: (1) 確定通道控制字確定通道控制字-50H (2) 8位計(jì)數(shù)初值位計(jì)數(shù)初值-80H 設(shè)8253的端口地址為48H4BH,則初始化程序段為: MOV AL, 50H OUT 4BH, AL ; 設(shè)置通道1控制字 M

27、OV AL, 80H OUT 49H, AL ; 寫通道1計(jì)數(shù)初值,只寫低8位 例例16.2 若用通道0,工作在方式1,按十進(jìn)制(BCD碼)計(jì)數(shù),計(jì)數(shù)初值為2010,則初始化編程如下: (1) 確定通道控制字確定通道控制字-33H (2) 計(jì)數(shù)初值低計(jì)數(shù)初值低8位為位為10,高,高8位為位為20。 若8253的端口地址同例1,則初始化程序段為: MOV AL, 33H OUT 4BH,AL ; 設(shè)置通道0控制字 MOV AL,10H OUT 48H,AL ; 寫通道0計(jì)數(shù)初值低8位 MOV AL,20H OUT 48H,AL ; 寫通道0計(jì)數(shù)初值高8位16.2.6 8253的讀出操作的讀出操作

28、 1.讀之前先暫停計(jì)數(shù) 2.讀之前先發(fā)鎖存命令16.3 8253的應(yīng)用的應(yīng)用例例16.4 8253用作脈沖信號(hào)發(fā)生器。用作脈沖信號(hào)發(fā)生器。q 可用8253產(chǎn)生如圖16.14(a)所示的周期性脈沖信號(hào),其重復(fù)周期為5s,脈沖寬度為1s。q 設(shè)CLK信號(hào)頻率為2MHz。 1s5s(a) 信號(hào)波形圖8253CLK0GATE0OUT0CLK1GATE1OUT1方式方式1方式方式25V時(shí)鐘F=2MHz(b) 連接圖圖圖16.14 8253用作脈用作脈沖信號(hào)發(fā)生器沖信號(hào)發(fā)生器 MOV AL,00010010B ; 設(shè)置計(jì)數(shù)器0為方式1(單穩(wěn)),只寫低8位,二進(jìn)制計(jì)數(shù) OUT 86H,AL ; MOV AL

29、,02H ; 設(shè)置計(jì)數(shù)器0的計(jì)數(shù)初值為2 OUT 80H AL ; MOV AL,01010100B ; 設(shè)置計(jì)數(shù)器1為方式2(分頻器),只寫低8位,二進(jìn)制計(jì)數(shù) OUT 86H,AL ; MOV AL,0AH ; 設(shè)置計(jì)數(shù)器1的計(jì)數(shù)初值為10 OUT 82H,AL ;例例 q 用8253實(shí)現(xiàn)生產(chǎn)流水線上的工件計(jì)數(shù),每通過100個(gè)工件,揚(yáng)聲器便發(fā)出頻率為1000Hz的音響信號(hào),持續(xù)時(shí)間為5秒。INTR(中斷請求)5V時(shí)鐘時(shí)鐘2MHz8255A PA0GATE1CLK1GATE0OUT08253CLK0OUT1驅(qū)動(dòng)電路揚(yáng)聲器5V光敏電阻工件工件光源圖圖16.13 8253用于工用于工件計(jì)數(shù)件計(jì)數(shù)q

30、 設(shè)8253的端口地址為40H43H, 8255A的端口地60H63H, 則實(shí)現(xiàn)本例功能的程序段如下: q 主程序:主程序: MOV AL, 00010001B ; 8253計(jì)數(shù)通道計(jì)數(shù)通道0初始化:初始化: 方式方式0,只,只 寫低寫低8位,位,BCD計(jì)數(shù)計(jì)數(shù). OUT 43H, AL MOV AL, 99H ; 寫計(jì)數(shù)通道0的計(jì)數(shù)初值 OUT 40H, AL MOV AL, 10000000B ; 8255A初始化:初始化: A口方式口方式0輸輸出出 OUT 63H, AL STI ; CPU開中斷HERE:JMP HERE ; 等待中斷q 中斷服務(wù)程序:中斷服務(wù)程序: MOV AL, 01H ;8255A的PA0輸出高電平,啟動(dòng)8253計(jì)數(shù)通道1工作OUT 60H, AL MOV AL, 01110111B ;8253計(jì)數(shù)通道1初始化: 先寫低8位,后寫高8位OUT 4

溫馨提示

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

評(píng)論

0/150

提交評(píng)論