微型計(jì)算機(jī)原理與接口技術(shù)第8章_第1頁
微型計(jì)算機(jī)原理與接口技術(shù)第8章_第2頁
微型計(jì)算機(jī)原理與接口技術(shù)第8章_第3頁
微型計(jì)算機(jī)原理與接口技術(shù)第8章_第4頁
微型計(jì)算機(jī)原理與接口技術(shù)第8章_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第八章可編程計(jì)數(shù)/定時(shí)器8253/8254及其應(yīng)用

定時(shí)/計(jì)數(shù)的基本概念在微機(jī)系統(tǒng)中,常常需要為CPU和外部設(shè)備提供時(shí)間基準(zhǔn)以實(shí)現(xiàn)定時(shí)或延時(shí)控制。如定時(shí)中斷、定時(shí)檢測、定時(shí)掃描等,或?qū)ν獠渴录M(jìn)行計(jì)數(shù)并將計(jì)數(shù)結(jié)果提供給CPU。實(shí)現(xiàn)定時(shí)或延時(shí)控制有三種方法:軟件定時(shí)、不可編程硬件定時(shí)器、可編程硬件定時(shí)器。軟件定時(shí)讓CPU執(zhí)行一段程序段,由于執(zhí)行每條指令都需要時(shí)間,因此執(zhí)行一個(gè)程序段就需要一定的時(shí)間,通過改變指令執(zhí)行的循環(huán)次數(shù)就可以控制定時(shí)時(shí)間。這種軟件定時(shí)方式計(jì)時(shí)不夠準(zhǔn)確,尤其是當(dāng)CPU內(nèi)部有多個(gè)并行處理時(shí)更為明顯。同時(shí),由于它占用了CPU,因而降低了CPU的利用率。不可編程的硬件定時(shí)器采用中小規(guī)模器件(如NE555),外接定時(shí)元件——電阻和電容。這種方式實(shí)現(xiàn)的定時(shí)電路簡單,通過改變電阻和電容可使定時(shí)在一定范圍內(nèi)變化。但是,這種定時(shí)電路在連接好硬件后,定時(shí)值就不易用軟件來控制和改變,由此產(chǎn)生了可編程的硬件定時(shí)器電路。所謂可編程的硬件定時(shí)器電路就是其工作方式、定時(shí)值和定時(shí)范圍可以很方便地由軟件來確定和改變。通常,一個(gè)可編程定時(shí)/計(jì)數(shù)器的主要用途有:①以均勻分布的時(shí)間間隔中斷分時(shí)操作系統(tǒng),以便切換程序。依所需時(shí)間間隔,設(shè)置計(jì)數(shù)器的時(shí)間常數(shù),在一外部脈沖驅(qū)動(dòng)下進(jìn)行減1計(jì)數(shù),計(jì)數(shù)值為0時(shí),產(chǎn)生輸出信號,供系統(tǒng)使用。

②向I/O設(shè)備輸出精確的定時(shí)信號,該信號的周期由程序控制。③用作可編程波特率或速率發(fā)生器。產(chǎn)生精確的時(shí)間間隔,形成各種脈沖序列,靈活性強(qiáng)。④檢測外部事件發(fā)生的頻率或周期。⑤統(tǒng)計(jì)外部事件處理過程中某一事件發(fā)生的次數(shù)。⑥在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值之后,產(chǎn)生輸出信號,向CPU申請中斷。如系統(tǒng)的日歷時(shí)鐘,動(dòng)態(tài)存儲(chǔ)器的刷新,應(yīng)用系統(tǒng)的定時(shí)中斷、定時(shí)查詢與檢測等。8.18253工作原理3個(gè)獨(dú)立的16位計(jì)數(shù)器通道每個(gè)計(jì)數(shù)器有6種工作方式按二進(jìn)制或十進(jìn)制(BCD碼)計(jì)數(shù)8254是8253的改進(jìn)型8253/8254的內(nèi)部結(jié)構(gòu)D7~D0計(jì)數(shù)器0控制字寄存器計(jì)數(shù)器1計(jì)數(shù)器2內(nèi)部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT28.1.18253的內(nèi)部結(jié)構(gòu)和引腳信號計(jì)數(shù)器結(jié)構(gòu)示意圖預(yù)置寄存器GATECLKOUT減1計(jì)數(shù)器輸出鎖存器計(jì)數(shù)初值存于預(yù)置寄存器;在計(jì)數(shù)過程中,減法計(jì)數(shù)器的值不斷遞減,而預(yù)置寄存器中的預(yù)置不變。輸出鎖存器用于寫入鎖存命令,鎖定當(dāng)前計(jì)數(shù)值計(jì)數(shù)器的3個(gè)引腳CLK時(shí)鐘輸入信號——在計(jì)數(shù)過程中,此引腳上每輸入一個(gè)時(shí)鐘信號(下降沿),計(jì)數(shù)器的計(jì)數(shù)值減1GATE門控輸入信號——控制計(jì)數(shù)器工作,可分成電平控制和上升沿控制兩種類型OUT計(jì)數(shù)器輸出信號——當(dāng)一次計(jì)數(shù)過程結(jié)束(計(jì)數(shù)值減為0),OUT引腳上將產(chǎn)生一個(gè)輸出信號8253引腳圖8253的引腳功能8253的引腳如圖所示。計(jì)數(shù)器0、1、2和控制字寄存器的低2位地址由A1、A0確定,A1、A0的值依次為00~11。8253的4個(gè)端口的操作情況如表所示。8253的計(jì)數(shù)器0、1、2各有3個(gè)引腳。不同計(jì)數(shù)器的相同定義的引腳,其功能也是相同的。CLK:計(jì)數(shù)脈沖輸入端。計(jì)數(shù)器對該引腳的輸入脈沖進(jìn)行計(jì)數(shù)。如果CLK信號是周期精確的時(shí)鐘脈沖,則具有定時(shí)作用。8253規(guī)定CLK端的輸入脈沖周期不能小于380ns。GATE:門控輸入端。這是控制計(jì)數(shù)器工作的一個(gè)外部信號。當(dāng)GATE為低電平時(shí),禁止計(jì)數(shù)器工作;當(dāng)GATE為高電平時(shí),允許計(jì)數(shù)器工作。GATE信號從計(jì)數(shù)開始到計(jì)數(shù)過程中都起作用。OUT:輸出信號端。當(dāng)計(jì)數(shù)器計(jì)數(shù)到零時(shí),在OUT引腳上輸出一個(gè)信號,該信號的波形取決于工作方式。(1)數(shù)據(jù)總線緩沖器。數(shù)據(jù)總線緩沖器是8253與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器。CPU用輸入/輸出指令對8253進(jìn)行讀/寫操作的所有信息都是通過這8條總線傳送的。這些信息包括:CPU在初始化編程時(shí)寫入8253的控制字、CPU向8253某一計(jì)數(shù)器寫入的計(jì)數(shù)初值、CPU從8253某一計(jì)數(shù)讀取的計(jì)數(shù)值。(2)讀/寫控制邏輯。讀/寫邏輯是8253內(nèi)部操作的控制部分。當(dāng)片選信號有效,即=0時(shí),讀/寫邏輯才能工作。該控制邏輯根據(jù)讀/寫命令及送來的地址信息,決定三個(gè)計(jì)數(shù)器和控制字寄存器中哪一個(gè)工作,并控制內(nèi)部總線上數(shù)據(jù)傳送的方向。(3)計(jì)數(shù)器0、1、2。計(jì)數(shù)器0、1、2是3個(gè)16位減1計(jì)數(shù)器,它們互相獨(dú)立,內(nèi)部結(jié)構(gòu)和功能相同。每個(gè)計(jì)數(shù)器有3根信號線,它們是時(shí)鐘輸入CLK、門控輸入GATE和輸出OUT。計(jì)數(shù)器從CLK端接收時(shí)鐘脈沖或事件計(jì)數(shù)脈沖,在脈沖下降沿按照二進(jìn)制或二—十進(jìn)制從預(yù)置的初值開始進(jìn)行減1計(jì)數(shù)。當(dāng)計(jì)數(shù)值減到零時(shí),從OUT端送出一個(gè)信號。計(jì)數(shù)器在開始計(jì)數(shù)和計(jì)數(shù)過程中,受到門控信號GATE的控制。在開始計(jì)數(shù)之前,必須由CPU用輸出指令預(yù)置計(jì)數(shù)器的初值。在計(jì)數(shù)過程中,CPU可以隨時(shí)用指令讀取計(jì)數(shù)器的當(dāng)前值。8253控制字的格式(4)控制字寄存器。在8253初始化編程時(shí),由CPU向控制字寄存器寫入控制字,以決定每個(gè)計(jì)數(shù)器的工作方式。此寄存器只能寫入而不能讀出。

控制字的功能是:選擇計(jì)數(shù)器,確定對計(jì)數(shù)器的讀/寫格式,選擇計(jì)數(shù)器的工作方式以及確定計(jì)數(shù)的數(shù)制。8253控制字的格式如圖所示。

SC1、SC0:計(jì)數(shù)器選擇位。這兩位表示這個(gè)控制字是對哪一個(gè)計(jì)數(shù)器設(shè)置的。00——計(jì)數(shù)器0;01——計(jì)數(shù)器1;10——計(jì)數(shù)器2;11——非法選擇。RW1、RW0:數(shù)據(jù)讀/寫格式選擇位。CPU在對計(jì)數(shù)器寫入初值和讀取它們的當(dāng)前值時(shí),有幾種不同的格式,由這兩位來決定。00——將計(jì)數(shù)器當(dāng)前值鎖存于輸出鎖存器中,以便讀出;01——只讀/寫計(jì)數(shù)器的低8位,寫入時(shí)高8位自動(dòng)設(shè)置為0;10——只讀/寫計(jì)數(shù)器的高8位,寫入時(shí)低8位自動(dòng)設(shè)置為0;11——對16位計(jì)數(shù)器進(jìn)行兩次讀/寫操作,低字節(jié)在前,高字節(jié)在后,兩次操作的地址相同。M2、M1、M0:計(jì)數(shù)器工作方式選擇位。8253的每個(gè)計(jì)數(shù)通道有6種不同的工作,工作方式由這3位決定。000——方式0;001——方式1;010——方式2;011——方式3;100——方式4;101——方式5。BCD:數(shù)制選擇。8253的每個(gè)計(jì)數(shù)器有兩種數(shù)制二進(jìn)制和二—十進(jìn)制,由這一位決定選擇哪一種。BCD=0表示采用二進(jìn)制計(jì)數(shù),寫入的初值范圍為0000H~FFFFH,其中0000H是最大值,代表65536;BCD=1表示采用二—十進(jìn)制計(jì)數(shù),寫入的初值范圍為0000~9999,其中0000是最大值,代表10000。

8.1.2初始化編程步驟和門控信號的功能8253加電后的工作方式不確定,8253必須初始化編程,才能正常工作

寫入控制字寫入計(jì)數(shù)初值

門控信號的功能例:置計(jì)數(shù)器0在工作方式3,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值200H。解:確定方式控制字為36H,實(shí)現(xiàn)程序如下:MOV AL,36HMOV DX,CtrlPortOUT DX,AL ;方式方式控制字為36H送端口MOV DX,Port0MOV AL,00H ;計(jì)數(shù)初值的低8位OUT DX,ALMOV AL,02H ;計(jì)數(shù)初值的高8位OUT DX,AL8253初始化編程SC1SC0RW1RW0M2M1M0BCD000011118253有6種工作方式,由方式控制字確定熟悉每種工作方式的特點(diǎn)才能根據(jù)實(shí)際應(yīng)用問題,選擇正確的工作方式每種工作方式的過程類似:⑴設(shè)定工作方式⑵設(shè)定計(jì)數(shù)初值〔⑶硬件啟動(dòng)〕⑷計(jì)數(shù)初值進(jìn)入減1計(jì)數(shù)器⑸每輸入一個(gè)時(shí)鐘計(jì)數(shù)器減1的計(jì)數(shù)過程⑹計(jì)數(shù)過程結(jié)束8.1.38253的工作方式(1)方式0——計(jì)數(shù)結(jié)束時(shí)產(chǎn)生中斷。當(dāng)寫入方式0控制字CW后,計(jì)數(shù)器輸出端OUT立即變成低電平。當(dāng)寫入計(jì)數(shù)初值N后,若GATE為高電平,計(jì)數(shù)器開始計(jì)數(shù)。在計(jì)數(shù)過程中,OUT端一直維持為低,直到計(jì)數(shù)0(結(jié)束)時(shí),OUT端變?yōu)楦?,向CPU發(fā)出中斷請求。8253用作計(jì)數(shù)時(shí),一般都工作在方式0。方式0的特點(diǎn)是:①計(jì)數(shù)器只計(jì)一遍數(shù)。當(dāng)計(jì)數(shù)到0時(shí),并不恢復(fù)計(jì)數(shù)初值,不開始重新計(jì)數(shù),輸出端OUT由低變高且一直保持為高。只有當(dāng)寫入一個(gè)新的計(jì)數(shù)初值后,OUT才變低,開始新的計(jì)數(shù)。②在計(jì)數(shù)過程中可改變計(jì)數(shù)值。如果計(jì)數(shù)器為8位(RW1RW0=01),在寫入新的8位計(jì)數(shù)值后,計(jì)數(shù)器將按新的計(jì)數(shù)值重新開始計(jì)數(shù)。如果計(jì)數(shù)器為16位(RW1RW0=11),在寫入第一個(gè)字節(jié)后,計(jì)數(shù)器停止計(jì)數(shù),在寫入第二個(gè)字節(jié)后,計(jì)數(shù)器按照新的數(shù)值開始計(jì)數(shù)。③在計(jì)數(shù)過程中,可由門控信號GATE控制暫停。當(dāng)GATE=0時(shí),計(jì)數(shù)器暫停計(jì)數(shù);當(dāng)GATE變?yōu)?后,就接著計(jì)數(shù)。④方式0的OUT信號在計(jì)數(shù)到0時(shí)由低變高,可作為中斷請求信號。但由于在8253內(nèi)部沒有中斷控制電路,因此在多中斷源系統(tǒng)中需外接中斷優(yōu)先權(quán)排隊(duì)電路和中斷向量產(chǎn)生電路。方式0計(jì)數(shù)結(jié)束中斷①②⑤④⑥GATEOUTCLK

031244方式0WR①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過程⑥計(jì)數(shù)結(jié)束(MODE0)CLOCKWRn#OUTPUT(中斷)43210n=4WRm#OUTPUT(中斷)GATEm=5543210方式0:計(jì)數(shù)結(jié)束時(shí)發(fā)中斷(2)方式1——可程控的單脈沖。在設(shè)定工作方式1和寫入計(jì)數(shù)初值后,OUT輸出高電平,此時(shí)并不開始計(jì)數(shù)。當(dāng)門控信號GATE變?yōu)楦唠娖綍r(shí),啟動(dòng)計(jì)數(shù),OUT輸出變低。在整個(gè)計(jì)數(shù)過程中,OUT都維持為低,直到計(jì)數(shù)到0時(shí),輸出變?yōu)楦摺R虼?,輸出為一單脈沖,其低電平維持時(shí)間由裝入的計(jì)數(shù)初值來決定。方式1的特點(diǎn)是:①當(dāng)計(jì)數(shù)到0后,計(jì)數(shù)器可再次由外部啟動(dòng),按原計(jì)數(shù)初值重新開始計(jì)數(shù),輸出單脈沖,而不需要再次送一個(gè)計(jì)數(shù)初值。②在計(jì)數(shù)過程中,外部可發(fā)出門控脈沖,進(jìn)行再觸發(fā)。這時(shí)不管原來計(jì)數(shù)到何值,計(jì)數(shù)器將重新開始計(jì)數(shù),輸出端仍保持低電平。③在計(jì)數(shù)過程中改變計(jì)數(shù)初值不影響本次計(jì)數(shù)過程。若門控信號再次被觸發(fā),則計(jì)數(shù)器才按新的計(jì)數(shù)值計(jì)數(shù)。比較方式0和方式1,有以下幾點(diǎn)不同:①方式0設(shè)置計(jì)數(shù)初值后立即計(jì)數(shù);方式1設(shè)置計(jì)數(shù)初值后不立即計(jì)數(shù),直到有外部觸發(fā)信號后才開始計(jì)數(shù)。②方式0在計(jì)數(shù)過程中能用門控信號暫停計(jì)數(shù);方式1在計(jì)數(shù)過程中若有門控脈沖時(shí)不停止計(jì)數(shù),而是使計(jì)數(shù)過程重新開始。③方式0在計(jì)數(shù)過程中改變計(jì)數(shù)初值時(shí),原計(jì)數(shù)停止,立即按新的計(jì)數(shù)初值開始計(jì)數(shù);方式1在計(jì)數(shù)過程中當(dāng)改變計(jì)數(shù)初值時(shí),現(xiàn)行計(jì)數(shù)不受影響,新計(jì)數(shù)初值在下次啟動(dòng)計(jì)數(shù)后才起作用。④方式0在一次計(jì)數(shù)結(jié)束后,必須重新設(shè)置計(jì)數(shù)初值才能再次計(jì)數(shù),即計(jì)數(shù)初值只能使用一次,方式1的計(jì)數(shù)初值在一次計(jì)數(shù)過程完成后繼續(xù)有效。

方式1可編程單拍脈沖①②⑤④⑥①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值③③硬件啟動(dòng)④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過程⑥計(jì)數(shù)結(jié)束GATEOUTCLK

031244方式1WRWRn#GATE(TRIGGER)43210OUTPUT34210(MODE1)CLOCKGATE(TRIGGER)OUTPUT234方式1:可編程單穩(wěn)電路(3)方式2——分頻器。在這種方式下,CPU輸出控制字后,計(jì)數(shù)器輸出端為高電平。當(dāng)寫入計(jì)數(shù)初值后,計(jì)數(shù)器立即對CLK端的輸入脈沖計(jì)數(shù)。在計(jì)數(shù)過程中輸出端始終保持為高,直到計(jì)數(shù)器減為1時(shí),輸出變低。經(jīng)過一個(gè)CLK周期,輸出恢復(fù)為高,同時(shí)按照原計(jì)數(shù)初值重新開始計(jì)數(shù)。如果計(jì)數(shù)值為N,則在CLK端每輸入N個(gè)脈沖后,就輸出一個(gè)脈沖。因此,這種方式可以作為分頻器或用于產(chǎn)生實(shí)時(shí)時(shí)鐘中斷。方式2的特點(diǎn)是:①不用重新設(shè)置計(jì)數(shù)初值,計(jì)數(shù)器能夠連續(xù)工作,輸出固定頻率的脈沖。

②計(jì)數(shù)過程可由門控信號GATE控制。當(dāng)GATE為0時(shí),暫停計(jì)數(shù)。當(dāng)GATE變?yōu)?后,下一個(gè)CLK脈沖使計(jì)數(shù)器恢復(fù)初值,重新開始計(jì)數(shù)。③在計(jì)數(shù)過程中可以改變計(jì)數(shù)初值,這對正在進(jìn)行的計(jì)數(shù)過程沒有影響。但當(dāng)計(jì)數(shù)到1時(shí)輸出變低,過一個(gè)CLK周期輸出又變高,計(jì)數(shù)器將按新的計(jì)數(shù)值計(jì)數(shù)。所以對方式2改變計(jì)數(shù)初值時(shí),在下一次計(jì)數(shù)有效。方式2頻率發(fā)生器(分頻器)03124GATEOUTCLK

4方式2031240312403124WRWRn#43210(3)OUTPUTGATE(RESET)OUTPUT(MODE2)CLOCKn=4n=3

0(4)3212100(3)3210(3)210(3)21方式2:可變頻率脈沖發(fā)生器0(4)方式3——方波發(fā)生器。在方式3時(shí),當(dāng)CPU設(shè)置控制字后,輸出為高電平。在寫入計(jì)數(shù)初值后就開始計(jì)數(shù),輸出保持為高。當(dāng)計(jì)數(shù)到一半計(jì)數(shù)初值時(shí),輸出變?yōu)榈停敝劣?jì)數(shù)到0,輸出又變?yōu)楦?,重新開始計(jì)數(shù)。方式3與方式2的輸出都是周期性的,它們的主要區(qū)別是:方式3在計(jì)數(shù)過程中的輸出有一半時(shí)間為高電平,另一半時(shí)間為低電平。所以,若計(jì)數(shù)值為N,則方式3的輸出為周期=(N×CLK周期)的方波。方式3的特點(diǎn)是:①當(dāng)計(jì)數(shù)初值N為偶數(shù)時(shí),輸出端的高低電平持續(xù)時(shí)間相等,各為N/2個(gè)CLK脈沖周期;當(dāng)計(jì)數(shù)初值N為奇數(shù)時(shí),輸出端的高電平持續(xù)時(shí)間比低電平持續(xù)時(shí)間多一個(gè)脈沖周期,即高電平持續(xù)(N+1)/2個(gè)脈沖周期。低電平持續(xù)(N-1)/2個(gè)脈沖周期。例如N=5,則輸出高電平持續(xù)3個(gè)脈沖周期,低電平持續(xù)2個(gè)脈沖周期。②GATE=1,允許計(jì)數(shù);GATE=0,停止計(jì)數(shù)。如果在OUT為低電平期間GATE=0,OUT將立即變高。當(dāng)GATE變高以后,在下一個(gè)CLK脈沖來到時(shí),計(jì)數(shù)器將重新裝入初始值,開始計(jì)數(shù)。在這種情況下通過門控信號使計(jì)數(shù)器實(shí)現(xiàn)同步,稱為硬件同步。③如果GATE信號一直為高電平,在寫入控制字和計(jì)數(shù)值后,將在下一個(gè)CLK脈沖來到時(shí)裝入計(jì)數(shù)初值并開始計(jì)數(shù),這種情況稱為軟件同步。④在計(jì)數(shù)期間寫入一個(gè)新的計(jì)數(shù)初值,如果在輸出信號半周結(jié)束之前沒有收到GATE脈沖,則要到現(xiàn)行輸出半周結(jié)束后才按新的計(jì)數(shù)初值開始計(jì)數(shù)。如果在寫入新計(jì)數(shù)初值之后在現(xiàn)行輸出半周結(jié)束之前收到GATE脈沖,計(jì)數(shù)器將在下一個(gè)CLK脈沖來到時(shí)立即裝入新的計(jì)數(shù)初值并開始計(jì)數(shù)。

方式3方波發(fā)生器03124GATEOUTCLK

4方式3031240312403124WR42210(4)OUTPUTn=4GATE(RESET)OUTPUTn=4n=4n=3

0(4)2103210(4)21331(MODE3)CLOCKOUTPUTn=53210(5)43210(5)430(5)43方式3:方波發(fā)生器0(5)方式4——軟件觸發(fā)的選通信號發(fā)生器。在這種方式下,當(dāng)寫入控制字后,輸出端OUT變?yōu)楦唠娖?,以此作為初始電平。?dāng)寫入計(jì)數(shù)初值后開始計(jì)數(shù),稱為軟件觸發(fā)。當(dāng)計(jì)數(shù)到0后,輸出變低,經(jīng)過一個(gè)CLK周期,輸出又變高,計(jì)數(shù)器停止計(jì)數(shù)。這種方式計(jì)數(shù)也是一次性的,只有在輸入新的計(jì)數(shù)值后,才開始新的計(jì)數(shù)過程。若設(shè)置的計(jì)數(shù)初值為N,則是在寫入了計(jì)數(shù)初值后經(jīng)過(N+1)個(gè)CLK脈沖,才輸出一個(gè)負(fù)脈沖。一般將此負(fù)脈沖作為選通信號。方式4的特點(diǎn)是:①當(dāng)GATE=1時(shí),允許計(jì)數(shù);當(dāng)GATE=0時(shí),禁止計(jì)數(shù)。所以,要做到軟件觸發(fā),GATE應(yīng)保持為1。②在計(jì)數(shù)過程中,若改變計(jì)數(shù)初值,則按新的計(jì)數(shù)初值開始計(jì)數(shù)。這稱為軟件再觸發(fā)。方式4軟件觸發(fā)選通信號GATEOUTCLK031244方式42233310WR(MODE4)CLOCKWRn#n=4OUTPUTn=401234443210WRn#

GATEOUTPUT方式4:軟件觸發(fā)選通(6)方式5——硬件觸發(fā)的選通信號發(fā)生器。在這種方式下,當(dāng)寫入控制字后,輸出端出現(xiàn)高電平作為初始電平。在寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而是要由門控脈沖的上升沿來啟動(dòng)計(jì)數(shù),這稱為硬件觸發(fā)。當(dāng)計(jì)數(shù)到0時(shí),輸出變低,又經(jīng)過一個(gè)CLK脈,輸出恢復(fù)為高。這樣在輸出端得到一個(gè)負(fù)脈沖選通信號。計(jì)數(shù)器停止計(jì)數(shù)后要等到下次門控脈沖觸發(fā),才能再進(jìn)行計(jì)數(shù)。方式5的特點(diǎn)是:①若設(shè)置計(jì)數(shù)初值為N,則在門控脈沖觸發(fā)后,經(jīng)過(N+1)/2個(gè)CLK脈沖,才輸出一個(gè)負(fù)脈沖。②在計(jì)數(shù)過程中,若GATE端又出現(xiàn)一個(gè)脈沖進(jìn)行觸發(fā),則使計(jì)數(shù)器重新開始計(jì)數(shù),但對輸出狀態(tài)沒有影響。③若在計(jì)數(shù)過程中改變計(jì)數(shù)值,只要沒有門控信號的觸發(fā),就不影響本次計(jì)數(shù)過程。當(dāng)計(jì)數(shù)到0后,若有新的門控信號的觸發(fā),則按新的計(jì)數(shù)初值計(jì)數(shù)。方式5和方式4都產(chǎn)生選通脈沖。這兩種方式的區(qū)別在于:方式4每次要靠軟件設(shè)置計(jì)數(shù)初值后才能計(jì)數(shù)(軟件觸發(fā)),方式5的計(jì)數(shù)初值只需設(shè)置一次,但是每次計(jì)數(shù)要靠門控信號的觸發(fā)(硬件觸發(fā));方式4軟件更改計(jì)數(shù)初值后立即起作用,方式5軟件更改計(jì)數(shù)初值后要有新的門控信號的觸發(fā)才能起作用。方式5硬件觸發(fā)選通信號GATEOUTCLK031244方式522333110WR(MODE5)CLOCKOUTPUT(n=4)0123443210GATE

GATEOUTPUT43方式5:硬件觸發(fā)選通各種工作方式的輸出波形方式0計(jì)數(shù)結(jié)束中斷方式1可程控的單脈沖方式2頻率發(fā)生器(分頻器)方式3方波發(fā)生器方式4軟件觸發(fā)選通方式5硬件觸發(fā)選通0N0N0N0/N110NN/2N/20/N0N01N01N01

數(shù)據(jù)采集系統(tǒng)在一個(gè)實(shí)際的數(shù)據(jù)采集系統(tǒng)中,要求每5秒采一個(gè)數(shù),現(xiàn)場的主時(shí)鐘的振蕩頻率為2.5MHz。解:若外部時(shí)鐘為2.5MHz,則計(jì)數(shù)次數(shù)(計(jì)數(shù)初值)為 5/(1/2.5*106)=1.25*107一個(gè)計(jì)數(shù)器最大的計(jì)數(shù)次數(shù)為65536,所以必須采用二次計(jì)數(shù)器。用計(jì)數(shù)器0的輸出OUT0接計(jì)數(shù)器1的輸入時(shí)鐘CLK1。 若計(jì)數(shù)器0(方式3)的計(jì)數(shù)初值為50000;則OUT0的輸出脈沖頻率為著(2.5*106)/(5*104)=50Hz。即周期為0.02s。為了每5秒產(chǎn)生一個(gè)脈沖輸出,計(jì)數(shù)器1為分頻器(方式2),計(jì)數(shù)次數(shù)為5s/0.02=250經(jīng)以上分析,總結(jié)如下:8.28253的應(yīng)用舉例計(jì)數(shù)器0:方式3,輸出50Hz脈沖,控制字36H,計(jì)數(shù)初值C350H計(jì)數(shù)器1:方式2,分頻,控制字54H,計(jì)數(shù)初值FAH程序如下:MOV AL,36HMOV DX,CtrPortOUT DX,AL ;寫計(jì)數(shù)器0方式3控制字MOV DX,Port0MOV AL,50HOUT DX,AL ;送低8位計(jì)數(shù)器值MOV AL,0C3HOUT DX,AL ;送高8位計(jì)數(shù)器值MOV AL,54HMOV DX,CtrPortOUT DX,AL ;寫計(jì)數(shù)器1方式2控制字MOV AL,0FAHOUT Port1,AL ;送計(jì)數(shù)器1初值

8253工作在方式3下,輸出是一個(gè)周期準(zhǔn)確的方波,可以作為定時(shí)單位。如CLK0=1.1931816MHz,初值為最大值65536,則計(jì)數(shù)器0輸出的方波頻率為 f0=1.1931816MHz/65536=18.2Hz, 周期為T0=1/f0=54.945ms1天=24×60×60×1000ms/54.945ms=1572482(計(jì)時(shí)單位)=0017FE82H; 即計(jì)滿1572482個(gè)計(jì)時(shí)單位,就是1天。 同理計(jì)滿65520是1個(gè)小時(shí),計(jì)滿1092就是1分鐘,計(jì)滿18.2就是1秒鐘。具體做法是8253的OUT0輸出連到8259的IR0上。8253輸出的方波每隔54.945ms申請一次中斷,在中斷服務(wù)程序中做雙字變量的加1操作。當(dāng)?shù)妥钟?jì)到65536時(shí),向高字進(jìn)位,直至高字計(jì)到0017H,低字計(jì)到FE82H,就計(jì)到24小時(shí)。然后清零,開始第二天的計(jì)時(shí)。

用8253實(shí)現(xiàn)日時(shí)鐘硬件連接如圖所示。圖中在內(nèi)存開辟了兩個(gè)字單元,低字TIMER-LO(40H:6CH)和高字TIMER-HI(40H:6EH)。發(fā)光二極管

現(xiàn)有一個(gè)高精密晶體振蕩電路,輸出信號是脈沖波,頻率為1MHz。要求利用8253做一個(gè)秒信號發(fā)生器,其輸出接一發(fā)光二極管,以0.5秒點(diǎn)亮,0.5秒熄滅的方式閃爍指示。設(shè)8253的通道地址為80H~86H(偶地址)解:1、時(shí)間常數(shù)計(jì)算這個(gè)例子要求用8253作一個(gè)分頻電路,而且其輸出應(yīng)該是方波,否則發(fā)光二極管不可能等間隔閃爍指示。頻率為1MHz信號的周期為1微妙,而1Hz信號的周期為1秒,所以分頻系數(shù)N可按下式進(jìn)行計(jì)算:

由于8253一個(gè)通道最大的計(jì)數(shù)值是65536,所以對于N=1000000這樣的大數(shù),一個(gè)通道是不可能完成上述分頻要求的。由于即取兩個(gè)計(jì)數(shù)器,采用級聯(lián)方式。2、電路

3、工作方式選擇由于通道1要輸出方波信號推動(dòng)發(fā)光二極管,所以通道1應(yīng)選工作方式3。對于通道0,只要能起分頻作用就行,對輸出波形不做要求,所以方式2和方式3都可以選用。這樣對于通道0,我們?nèi)」ぷ鞣绞?,BCD計(jì)數(shù);對于通道1,我們?nèi)」ぷ鞣绞?,二進(jìn)制計(jì)數(shù)(當(dāng)然也可選BCD計(jì)數(shù))4、程序 moval,00110101b ;通道0控制字 out86h,al moval,00 ;通道0初始計(jì)數(shù)值 out80h,al moval,10h out80h,al moval,01110110b ;通道1控制字 out86h,almoval,0e0h ;通道1初始計(jì)數(shù)值,03E8H=1000BCD out82h,al moval,03h out82h,al計(jì)件系統(tǒng)。計(jì)件系統(tǒng)的功能就是記錄脈沖的個(gè)數(shù)。

一個(gè)脈沖代表一個(gè)事件,比如交通道路檢測系統(tǒng)中通過檢測點(diǎn)的車輛,工業(yè)控制系統(tǒng)中流水線上已加工好的工件。要求在計(jì)件過程中,PC機(jī)可以顯示當(dāng)前計(jì)數(shù)器的內(nèi)容,當(dāng)完成10000個(gè)工件記錄后,系統(tǒng)發(fā)出1KHz信號推動(dòng)喇叭發(fā)音通知用戶。解:1、電路。需要兩個(gè)通道,一個(gè)作為計(jì)數(shù),選用通道0。另一個(gè)產(chǎn)生1KHz信號,選用通道1。工作原理如下,傳感器電路把物理事件轉(zhuǎn)換為脈沖信號輸入到通道0計(jì)數(shù),當(dāng)記錄10000個(gè)事件后,通道0計(jì)數(shù)器溢出,GATE端輸出高電平,這時(shí)通道1開始工作,產(chǎn)生1KHz信號推動(dòng)喇叭發(fā)音。2、工作方式選擇對于通道1,由于要產(chǎn)生1KHz信號,故選用工作方式3。對于通道0,要求初始計(jì)數(shù)值寫入計(jì)數(shù)通道后,計(jì)數(shù)器就可以工作,則通道0的啟動(dòng)方式應(yīng)是軟件啟動(dòng)。另外由于要求計(jì)數(shù)溢出后產(chǎn)生一個(gè)信號來啟動(dòng)一個(gè)事件,即喇叭發(fā)音,故可選的工作方式為方式0和方式4,對于圖所示方案,通道1的GATE信號由通道0的OUT信號產(chǎn)生,這個(gè)OUT信號應(yīng)該是電平型的,所以通道0應(yīng)選用方式0。3、時(shí)間常數(shù)N0=10004、程序(略)

IBMPC/XT與8253連接圖8253在PC/XT機(jī)中的應(yīng)用

三個(gè)計(jì)數(shù)器通道時(shí)鐘輸入CLK均從時(shí)鐘發(fā)生器PCLK端經(jīng)二分頻得到,頻率為1.19318MHz,周期為838ns。(1)計(jì)數(shù)器0—實(shí)時(shí)時(shí)鐘。門控GATE0接+5V為常啟狀態(tài)。OUT0輸出接8259A的IRQ0,用作XT中日時(shí)鐘的中斷請求信號。設(shè)定時(shí)/計(jì)數(shù)器0為方式3,計(jì)數(shù)值寫入0,產(chǎn)生最大的計(jì)數(shù)初值65536,因此輸出信號頻率為1.19318MHz÷65536=18.206Hz,即每秒產(chǎn)生18.2次中斷,或者說每隔55ms申請一次日時(shí)鐘中斷。其程序如下:MOVAL,36H;設(shè)定計(jì)數(shù)器0為

溫馨提示

  • 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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論