8253(8254的使用說明講義)_第1頁(yè)
8253(8254的使用說明講義)_第2頁(yè)
8253(8254的使用說明講義)_第3頁(yè)
8253(8254的使用說明講義)_第4頁(yè)
8253(8254的使用說明講義)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第9章計(jì)數(shù)器和定時(shí)器電路Intel8253/8254-PIT在控制系統(tǒng)中,常常要求有一些實(shí)時(shí)時(shí)鐘以實(shí)現(xiàn)定時(shí)或延時(shí)控制,如定時(shí)中斷、定時(shí)檢測(cè)、定時(shí)掃描等,也往往要求有計(jì)數(shù)器能對(duì)外部事件計(jì)數(shù)。要實(shí)現(xiàn)定時(shí)或延時(shí)控制,有三種主要方法:軟件定時(shí)、不可編程的硬件定時(shí)、可編程的硬件定時(shí)器。軟件定時(shí)即讓計(jì)算機(jī)執(zhí)行一個(gè)程序段,這個(gè)程序段本身沒有具體的執(zhí)行目的,但由于執(zhí)行每條指令都需要時(shí)間,則執(zhí)行一個(gè)程序段就需要一個(gè)固定的時(shí)間。通過正確地挑選指令和安排循環(huán)次數(shù)很容易實(shí)現(xiàn)軟件定時(shí),但軟件定時(shí)占用了CPU的時(shí)間,降低了CPU的利用率。不可編程的硬件定時(shí)可以采用小規(guī)模集成電路器件如555,外接定時(shí)部件電阻和電容構(gòu)成。這

2、樣的定時(shí)電路簡(jiǎn)單,而且利用改變電阻和電容,可以使定時(shí)在一定的范圍內(nèi)改變。但是,這種定時(shí)電路在硬件連接好以后,定時(shí)值及定時(shí)范圍不能由程序(軟件)來控制和改變,由此就生產(chǎn)了可編程的定時(shí)器電路??删幊潭〞r(shí)器電路的定時(shí)值及其范圍,可以很容易地由軟件來確定和改變。所以,功能較強(qiáng),使用靈活。本章就介紹這種定時(shí)器電路。9.1概述Intel系列的計(jì)數(shù)器/定時(shí)器電路為可編程序間隔定時(shí)器PIT(ProgrammableIntervalTimer),型號(hào)為8253,改進(jìn)型為8254。Intel8253具有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道,使用單一5V電源,它是24個(gè)引腳的雙列直插式器件。9.1.18253-PIT的主要功

3、能Intel8253-PIT具有以下主要功能:(1) 一個(gè)芯片上有三個(gè)獨(dú)立的16位計(jì)數(shù)器通道;(2) 每個(gè)計(jì)數(shù)器都可以按照二進(jìn)制或二十進(jìn)制計(jì)數(shù);(3) 每個(gè)計(jì)數(shù)器的計(jì)數(shù)速率可高達(dá)2MHz。(82C54-2計(jì)數(shù)頻率可達(dá)到10MHz);(4) 每個(gè)通道有6種工作方式,可由程序設(shè)置和改變;(5) 所有的輸入輸出都與TTL兼容。9.1.28253-PIT的內(nèi)部結(jié)構(gòu)8253的內(nèi)部結(jié)構(gòu)如圖9-1所示。1. 數(shù)據(jù)總線緩沖器這是8253與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器OCPU用輸入輸出指令對(duì)8253進(jìn)行讀寫的所有信息,都是通過這8條總線傳送的。包括:(1) CPU在初始化編程時(shí),寫入8253的控制字;

4、(2) CPU向某一通道寫入的計(jì)數(shù)值;(3)CPU從某一個(gè)通道讀取的計(jì)數(shù)值。2. 讀/寫邏輯這是8253內(nèi)部操作的控制部分。首先有選片信號(hào)CS的控制部分,當(dāng)CS為高電平(無效)時(shí),數(shù)據(jù)總線緩沖器處在三態(tài),與系統(tǒng)的數(shù)據(jù)總線脫開,故不能進(jìn)行編程,也不能進(jìn)行讀寫操作。其次,由這部分選擇讀寫操作的端口(三個(gè)計(jì)數(shù)器及控制字寄存器),也由這部分控制數(shù)據(jù)傳送的方向,讀數(shù)據(jù)由8253傳向CPU,寫數(shù)據(jù)由CPU傳向8253。3. 控制字寄存器在8253的初始化編程時(shí),由CPU寫入控制字以決定通道的工作方式。此寄存器只能寫入而不能讀出。4. 計(jì)數(shù)器0,計(jì)數(shù)器1,計(jì)數(shù)器2這是三個(gè)計(jì)數(shù)器/定時(shí)器通道,每一個(gè)都是由一個(gè)

5、16位的可預(yù)置值的減法計(jì)數(shù)器構(gòu)成。這三個(gè)通道的操作是完全獨(dú)立的。每個(gè)通道都是對(duì)輸入脈沖CLK按二進(jìn)制或二一十進(jìn)制,從預(yù)置值開始減1計(jì)數(shù)。當(dāng)預(yù)置值減到零時(shí),從OUT輸出端輸出一信號(hào)。計(jì)數(shù)器/定時(shí)器電路的本質(zhì)是一個(gè)計(jì)數(shù)器。若計(jì)數(shù)器對(duì)頻率精確的時(shí)鐘脈沖計(jì)數(shù),則計(jì)數(shù)器就可作為定時(shí)器。計(jì)數(shù)頻率取決于輸入脈沖的頻率。在計(jì)數(shù)過程中,計(jì)數(shù)器受到門控信號(hào)GATE的控制。計(jì)數(shù)器的輸入與輸出以及與門控信號(hào)之間的關(guān)系,取決于工作方式。計(jì)數(shù)器的初值必須在開始計(jì)數(shù)之前,由CPU用輸出指令預(yù)置。在計(jì)數(shù)過程中,CPU隨時(shí)可用輸入指令讀取任一計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值,這一操作對(duì)計(jì)數(shù)沒有影響。9.1.38253-PIT的引線Intel

6、8253-PIT的引線如圖9-2所示。8253-PIT與CPU接口的引線,除了沒有復(fù)位信號(hào)RESET引腳外,其他與8255并行輸入輸出接口芯片相同(請(qǐng)參閱本書第10章)。每一個(gè)通道有三條引線:CLK:輸入脈沖線。計(jì)數(shù)器就是對(duì)這個(gè)脈沖計(jì)數(shù)。8253規(guī)定,加在CLK引腳的輸入時(shí)鐘周期不能小于380ns。GATE:門控信號(hào)輸入引腳。這是控制計(jì)數(shù)器工作的一個(gè)外部信號(hào)。當(dāng)GATE引腳為低電平(無效)時(shí),通常都是禁止計(jì)數(shù)器工作;只有當(dāng)GATE為高電平時(shí),才允許計(jì)數(shù)器工作。OUT:輸出引腳。當(dāng)計(jì)數(shù)到“0”時(shí),OUT引線上必然有輸出,輸出信號(hào)的波形取決于工作方式。8253內(nèi)部端口的選擇是由引線A1和A0決定的

7、,它們通常接至地址總線的A1和A0。各個(gè)通道的讀/寫操作的選擇,如表9-1所示。9.28253-PIT的控制字在8253的初始化編程中,由CPU向8253的控制字寄存器寫入一個(gè)控制字,它規(guī)定了8253的工作方式。其格式如圖9-3所示。1計(jì)數(shù)器選擇(D7D6)控制字的最高兩位決定這個(gè)控制字是哪一個(gè)通道的控制字。由于三個(gè)通道的工作是完全獨(dú)立的,所以需要有三個(gè)控制字寄存器分別規(guī)定相應(yīng)通道的工作方式。但它們的地址是同一個(gè),即A1A0=11控制字寄存器的地址。所以,需要由這兩位來決定是哪一個(gè)通道的控制字。因此,對(duì)三個(gè)通道的編程需要向同一個(gè)地址(控制字寄存器地址)寫入三個(gè)控制字,它們的D7D6位分別指定不

8、同的通道。在控制字中的通道選擇與通道計(jì)數(shù)器的地址是兩回事,不能混淆。計(jì)數(shù)通道的地址是用作CPU向計(jì)數(shù)器寫初值,或者從計(jì)數(shù)器讀取當(dāng)前的計(jì)數(shù)值。2數(shù)據(jù)讀/寫格式(D5D4)CPU向計(jì)數(shù)通道寫入初值和讀取它們的當(dāng)前狀態(tài)時(shí),有幾種不同的格式。例如,寫數(shù)據(jù)時(shí),是寫入8位數(shù)據(jù)還是16位數(shù)據(jù),若是8位計(jì)數(shù),可以令D5D4=01只寫低8位,則高8位自動(dòng)置0;若是16位計(jì)數(shù),而低8位為0,則可令D5D4=10,只寫入高8位,而低8位就自動(dòng)為0;在令D5D4=11時(shí),16位計(jì)數(shù)就先寫入低8位,后輸入高8位。在讀取計(jì)數(shù)值時(shí),可令D5D4=00,則把寫控制字時(shí)的計(jì)數(shù)值鎖存,以后再讀取。3工作方式(D3D2D1)825

9、3的每個(gè)通道可以有6種不同的工作方式,由這三位決定。每一種方式的特點(diǎn),隨后介紹。4.數(shù)制選擇(D0)8253的每個(gè)通道有兩種計(jì)數(shù)制:二進(jìn)制和二十進(jìn)制,由這位決定。在二進(jìn)制計(jì)數(shù)時(shí),寫入的初值的范圍為0000HFFFFH,其中0000H是最大值,代表65536;在二一十進(jìn)制時(shí),寫入的初值的范圍為00009999,其中0000是最大值,代表10000。9.38253-PIT的工作方式9.3.1六種工作方式1. 方式0計(jì)完最后一個(gè)數(shù)時(shí)中斷在這種方式,當(dāng)控制字CW(ControlWord)寫入控制字寄存器,則使OUT輸出端變低,即使計(jì)數(shù)器沒有賦予初值,也沒開始計(jì)數(shù)。要開始計(jì)數(shù),GATE信號(hào)必須為高電平。

10、則在寫入計(jì)數(shù)初值以后,通道開始計(jì)數(shù),在計(jì)數(shù)過程中,OUT信號(hào)線一直維持為低電平,直到計(jì)數(shù)到“0”時(shí),OUT輸出信號(hào)線才變?yōu)楦唠娖?。方?過程如圖9-4所示。其中,LSB=4表示只寫低8位計(jì)數(shù)值為4,最底下一行是計(jì)數(shù)器中的數(shù)值。方式0的主要特點(diǎn)是:(1) 計(jì)數(shù)器只計(jì)數(shù)一遍。當(dāng)計(jì)數(shù)到0時(shí),并不恢復(fù)計(jì)數(shù)初值,不開始重新計(jì)數(shù),且輸出保持為高。只有在寫入另一個(gè)計(jì)數(shù)值時(shí),OUT變低,開始新的計(jì)數(shù)。(2) 8253內(nèi)部是在CPU寫計(jì)數(shù)值的WR#信號(hào)上升沿,將此值寫入通道的時(shí)常數(shù)寄存器,在WR#信號(hào)上升沿后的下一個(gè)CLK脈沖,才將計(jì)數(shù)值由時(shí)常數(shù)寄存器送至計(jì)數(shù)器作為初值,開始計(jì)數(shù)。所以,8253PIT是在寫計(jì)數(shù)

11、值命令后經(jīng)過一個(gè)輸入脈沖,才將計(jì)數(shù)值裝入計(jì)數(shù)器,下一個(gè)脈沖才開始計(jì)數(shù)。因此,如果設(shè)置計(jì)數(shù)初值為N則輸出信號(hào)OUT是在N+1個(gè)CLK脈沖之后才變高的。這個(gè)特點(diǎn)在方式1、方式2、方式4和方式5時(shí)也是同樣的。(3) 在計(jì)數(shù)過程中,可由門控制信號(hào)GATE控制暫停。當(dāng)GATE=0時(shí),計(jì)數(shù)暫停;當(dāng)GATE變高后,就接著計(jì)數(shù),其波形如圖9-5所示。(4) 在計(jì)數(shù)過程中可以改變計(jì)數(shù)值。若是8位計(jì)數(shù),則在寫入新的計(jì)數(shù)值后,計(jì)數(shù)器將按新的計(jì)數(shù)值重新開始計(jì)數(shù),如圖9-6所示。如果是16位計(jì)數(shù),在寫入第一個(gè)字節(jié)后,計(jì)數(shù)器停止計(jì)數(shù),在寫入第二個(gè)字節(jié)后,計(jì)數(shù)器便按照新的數(shù)值開始計(jì)數(shù),即改變計(jì)數(shù)值是立即有效的。(5) 82

12、53內(nèi)部沒有中斷控制電路,也沒有專用的中斷請(qǐng)求引線,所以若要用于中斷,則可以用OUT信號(hào)作為中斷請(qǐng)求信號(hào),但是,需要有外接的中斷優(yōu)先權(quán)排隊(duì)電路與中斷向量產(chǎn)生電路。若8253的地址為04H07H,要使計(jì)數(shù)器1工作在方式0,僅用8位二進(jìn)制計(jì)數(shù),計(jì)數(shù)值為128,初始化程序?yàn)椋篗OVAL,50H;設(shè)控制字OUT07H,AL;輸出至控制字寄存器MOVAL,80H;設(shè)置計(jì)數(shù)值OUT05H,AL;輸出至計(jì)數(shù)通道12.方式1可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器CLK3.方式2頻率發(fā)生器(分頻器)WROUT4.方式3方波發(fā)生器初值為偶數(shù)初值為奇數(shù)5. 方式4軟件觸發(fā)選通CLKIL_lL_|_方式4初值n=4WRGATE=14

13、32.10OUT6.方式5硬件觸發(fā)選通9.3.28253-PIT工作方式小結(jié)8253有六種不同的工作方式,它們的特點(diǎn)不同,因而應(yīng)用的場(chǎng)合也就不同。方式2、4、5的輸出波形是相同的,都是寬度為一個(gè)CLK周期的負(fù)脈沖。但方式2是連續(xù)工作,方式4由軟件(設(shè)置計(jì)數(shù)值)觸發(fā)啟動(dòng),而方式5由門控脈沖觸發(fā)啟動(dòng)。方式5(硬件觸發(fā)選通)與方式1(硬件再觸發(fā)單拍脈沖),工作方式基本相同,但輸出波形不同,方式1輸出的是寬度為N個(gè)CLK脈沖的低有效脈沖(計(jì)數(shù)過程中輸出為低),而方式5輸出的是寬度為1個(gè)CLK脈沖的負(fù)脈沖(計(jì)數(shù)過程中輸出為高)。1. 輸出OUT的初始狀態(tài)在6種方式中,只有方式0,在寫入控制字后輸出為低。

14、其它5種方式,都是在寫入控制字后輸出為高。2. 計(jì)數(shù)值的設(shè)置任一種方式,只有在寫入計(jì)數(shù)值后才能開始計(jì)數(shù),方式0、2、3和4都是在寫入計(jì)數(shù)值后,計(jì)數(shù)過程就開始了,而方式1和5需要外部觸發(fā)啟動(dòng),才開始計(jì)數(shù)。在不同工作方式下,計(jì)數(shù)值N對(duì)輸出波形的影響是不同的,如表9-2所示。6種方式中,只有方式2和3是連續(xù)計(jì)數(shù),其他4種方式都是一次計(jì)數(shù),要繼續(xù)工作需要重新啟動(dòng),方式0、4由寫入計(jì)數(shù)值(軟件)啟動(dòng),方式1、5要由外部信號(hào)(硬件)啟動(dòng)。3. 門控信號(hào)的作用8253在不同方式下門控輸入信號(hào)的作用,如表9-3所示。GATE輸入總是在CLK輸入時(shí)鐘的上升沿被采樣。在方式0、2、3、4中,GATE輸入是電平起作

15、用,邏輯電平在CLK的上升沿采樣。在方式1、2、3、5中,GATE輸入是上升沿起作用的,在這種情況下,GATE信號(hào)的上升沿使計(jì)數(shù)器內(nèi)部的一個(gè)邊沿敏感的觸發(fā)器置位,它由下一個(gè)CLK脈沖的上升沿采樣,采樣之后,這個(gè)觸發(fā)器被復(fù)位。這樣不管GATE的上升沿何時(shí)出現(xiàn)總能被檢測(cè)到,且對(duì)GATE高電平的持續(xù)時(shí)間沒有要求。在方式2和3中,GATE信號(hào)的上升沿和電平都可以起作用。4在計(jì)數(shù)過程中改變計(jì)數(shù)值8253在不同方式時(shí)都可以在計(jì)數(shù)過程中寫入計(jì)數(shù)值,但它的作用在不同方式時(shí)有所不同,如表9-4所示。表中的立即有效都是指寫入計(jì)數(shù)值后的下一個(gè)CLK脈沖以后,新的計(jì)數(shù)值開始起作用。5計(jì)數(shù)到0后計(jì)數(shù)器的狀態(tài)計(jì)數(shù)器減到0

16、后并不停止不動(dòng)。在方式0、1、4、5,計(jì)數(shù)器計(jì)到0后,都從這個(gè)最大計(jì)數(shù)值(十六進(jìn)制的FFFFH和BCD的9999)繼續(xù)倒計(jì)數(shù)。方式2與3是連續(xù)計(jì)數(shù),計(jì)數(shù)器自動(dòng)裝入計(jì)數(shù)值繼續(xù)計(jì)數(shù)。9.48353-PIT的編程要使用8253-PIT必須首先進(jìn)行初始化編程,初始化編程的內(nèi)容為:必須先寫入每一個(gè)通道的控制字,然后寫入通道的計(jì)數(shù)值。如前所述,在有些方式下,寫入計(jì)數(shù)值后此計(jì)數(shù)通道就開始工作了,而有的方式需要外界門控信號(hào)的觸發(fā)啟動(dòng)。在初始化編程時(shí),某一通道的控制字和計(jì)數(shù)值,是通過兩個(gè)不同的端口地址寫入的。任一通道的控制字都是寫入至控制字寄存器(地址總線低兩位A1A0=11),由控制字中的D7D6來確定是哪一

17、個(gè)通道的控制字;而計(jì)數(shù)值是由各個(gè)通道的端口地址寫入的。初始化編程的步驟為:(1) 寫入通道控制字,規(guī)定通道的工作方式。(2) 寫入計(jì)數(shù)值。 若規(guī)定只寫低8位,則寫入的為計(jì)數(shù)值的低8位,高8位自動(dòng)置0; 若規(guī)定只寫高8位,則寫入的為計(jì)數(shù)值的高8位,低8位自動(dòng)置0; 若是16位計(jì)數(shù)值,則分兩次寫入,先寫入低8位,再寫入高8位。例如:若要用通道0,工作在方式1,按二一十進(jìn)制計(jì)數(shù),計(jì)數(shù)值為5080H。則初始化編程的步驟為:(1) 確定通道控制字:(2) 計(jì)數(shù)值的低8位為80H。(3) 計(jì)數(shù)值的高8位為50H。若端口地址位為F8HFBH,則初始化程序?yàn)椋篗OVAL,33HOUT0FBH,ALMOVAL,

18、80HOUT0F8H,ALMOVAL,50HOUT0F8H,AL8253任一通道的計(jì)數(shù)值,CPU可用輸入指令讀取CPU讀到的是執(zhí)行輸入指令瞬間計(jì)數(shù)器的現(xiàn)行值。但8253的計(jì)數(shù)器是16位的,所以要分兩次讀至CPU,因此,若不設(shè)法鎖存,則在輸入過程中,計(jì)數(shù)值可能已經(jīng)變化了。要鎖存有兩種辦法:(1)利用GATE信號(hào)使計(jì)數(shù)過程暫停。(2)向8253輸送一個(gè)通道控制字,令8253通道中的鎖存器鎖存。8253的每一個(gè)通道都有一個(gè)輸出鎖存器(16位),平時(shí),它的值隨通道計(jì)數(shù)器的值變化,當(dāng)向通道寫入鎖存的控制字時(shí),它把計(jì)數(shù)器的現(xiàn)行值鎖存(計(jì)數(shù)器中繼續(xù)計(jì)數(shù))。于是CPU讀取的就是鎖存器中的值。當(dāng)對(duì)計(jì)數(shù)器重新編程,或CPU讀取了計(jì)數(shù)值后,自動(dòng)解除鎖存狀態(tài),它的值又隨計(jì)數(shù)器變化。若要讀取通道1的16位計(jì)數(shù)值,其程序?yàn)椋篗OVAL,40H;計(jì)數(shù)器1的鎖存命令OUT0FBH,AL;寫入至控制字寄存器INAL,0F9H;讀低8位MOVCL,AL;存于CL中INAL,0F9H;讀高8位MOVCH,AL;存于CH中9.5Intel8254-PITIntel8254-PIT是Intel8253-PIT的改進(jìn)型,因此它的操作方式以及引腳與8253完全相同。它的改進(jìn)主要反映在兩個(gè)方面:(1)8254的計(jì)數(shù)頻率更高。8254可由直流至6MHz,8254-2可高達(dá)10M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論