微機(jī)原理課件第九章 計(jì)數(shù)器和計(jì)時(shí)器.ppt_第1頁(yè)
微機(jī)原理課件第九章 計(jì)數(shù)器和計(jì)時(shí)器.ppt_第2頁(yè)
微機(jī)原理課件第九章 計(jì)數(shù)器和計(jì)時(shí)器.ppt_第3頁(yè)
微機(jī)原理課件第九章 計(jì)數(shù)器和計(jì)時(shí)器.ppt_第4頁(yè)
微機(jī)原理課件第九章 計(jì)數(shù)器和計(jì)時(shí)器.ppt_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第 9 章 計(jì)數(shù)器和定時(shí)器電路Intel 8253/8254-PIT,本章講述: 9.1 概述 9.2 8253-PIT的控制字 9.3 8253-PIT的工作方式 9.4 8353-PIT的編程 9.5 Intel 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è)程序段本身沒(méi)有具體的執(zhí)行目的,但由于執(zhí)行每條指令都需要時(shí)間,則執(zhí)行一個(gè)程序段就需要一個(gè)固定的時(shí)間。通過(guò)正確

2、地挑選指令和安排循環(huán)次數(shù)很容易實(shí)現(xiàn)軟件定時(shí),但軟件定時(shí)占用了CPU的時(shí)間,降低了CPU的利用率。,不可編程的硬件定時(shí)可以采用小規(guī)模集成電路器件如555,外接定時(shí)部件電阻和電容構(gòu)成。這樣的定時(shí)電路簡(jiǎn)單,而且利用改變電阻和電容,可以使定時(shí)在一定的范圍內(nèi)改變。但是,這種定時(shí)電路在硬件連接好以后,定時(shí)值及定時(shí)范圍不能由程序(軟件)來(lái)控制和改變,由此就生產(chǎn)了可編程的定時(shí)器電路。 可編程定時(shí)器電路的定時(shí)值及其范圍,可以很容易地由軟件來(lái)確定和改變。所以,功能較強(qiáng),使用靈活。本章就介紹這種定時(shí)器電路。,9.1 概述,Intel系列的計(jì)數(shù)器/定時(shí)器電路為可編程序間隔定時(shí)器PIT(Programmable Int

3、erval Timer),型號(hào)為8253,改進(jìn)型為8254。 Intel 8253具有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道,使用單一5V電源,它是24個(gè)引腳的雙列直插式器件。,9.1.1 8253-PIT的主要功能,Intel 8253-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.2 8253-PIT的內(nèi)部結(jié)構(gòu),8253的內(nèi)部結(jié)構(gòu)如

4、圖9-1所示。 1. 數(shù)據(jù)總線緩沖器 這是8253與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器。CPU用輸入輸出指令對(duì)8253進(jìn)行讀寫(xiě)的所有信息,都是通過(guò)這8條總線傳送的。包括: (1) CPU在初始化編程時(shí),寫(xiě)入8253的控制字; (2) CPU向某一通道寫(xiě)入的計(jì)數(shù)值; (3) CPU從某一個(gè)通道讀取的計(jì)數(shù)值。,2. 讀/寫(xiě)邏輯 這是8253內(nèi)部操作的控制部分。首先有選片信號(hào)CS的控制部分,當(dāng)CS為高電平(無(wú)效)時(shí),數(shù)據(jù)總線緩沖器處在三態(tài),與系統(tǒng)的數(shù)據(jù)總線脫開(kāi),故不能進(jìn)行編程,也不能進(jìn)行讀寫(xiě)操作。其次,由這部分選擇讀寫(xiě)操作的端口(三個(gè)計(jì)數(shù)器及控制字寄存器),也由這部分控制數(shù)據(jù)傳送的方向,讀數(shù)據(jù)由

5、8253傳向CPU,寫(xiě)數(shù)據(jù)由CPU傳向8253。,3. 控制字寄存器 在8253的初始化編程時(shí),由CPU寫(xiě)入控制字以決定通道的工作方式。此寄存器只能寫(xiě)入而不能讀出。 4. 計(jì)數(shù)器0,計(jì)數(shù)器1,計(jì)數(shù)器2 這是三個(gè)計(jì)數(shù)器/定時(shí)器通道,每一個(gè)都是由一個(gè)16位的可預(yù)置值的減法計(jì)數(shù)器構(gòu)成。這三個(gè)通道的操作是完全獨(dú)立的。,每個(gè)通道都是對(duì)輸入脈沖CLK按二進(jìn)制或二十進(jìn)制,從預(yù)置值開(kāi)始減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ù)過(guò)程中,計(jì)數(shù)器受到門控信號(hào)GATE的控

6、制。計(jì)數(shù)器的輸入與輸出以及與門控信號(hào)之間的關(guān)系,取決于工作方式。 計(jì)數(shù)器的初值必須在開(kāi)始計(jì)數(shù)之前,由CPU用輸出指令預(yù)置。在計(jì)數(shù)過(guò)程中,CPU隨時(shí)可用輸入指令讀取任一計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值,這一操作對(duì)計(jì)數(shù)沒(méi)有影響。,9.1.3 8253-PIT的引線,Intel 8253-PIT的引線如圖9-2所示。 8253-PIT與CPU接口的引線,除了沒(méi)有復(fù)位信號(hào)RESET引腳外,其他與8255并行輸入輸出接口芯片相同(請(qǐng)參閱本書(shū)第10章)。 每一個(gè)通道有三條引線: CLK: 輸入脈沖線。計(jì)數(shù)器就是對(duì)這個(gè)脈沖計(jì)數(shù)。8253規(guī)定,加在CLK引腳的輸入時(shí)鐘周期不能小于380ns。,GATE: 門控信號(hào)輸入引腳。

7、這是控制計(jì)數(shù)器工作的一個(gè)外部信號(hào)。當(dāng)GATE引腳為低電平(無(wú)效)時(shí),通常都是禁止計(jì)數(shù)器工作;只有當(dāng)GATE為高電平時(shí),才允許計(jì)數(shù)器工作。 OUT: 輸出引腳。當(dāng)計(jì)數(shù)到“0”時(shí),OUT引線上必然有輸出,輸出信號(hào)的波形取決于工作方式。 8253內(nèi)部端口的選擇是由引線A1和A0決定的,它們通常接至地址總線的A1和A0。各個(gè)通道的讀/寫(xiě)操作的選擇,如表9-1所示。,9.2 8253-PIT的控制字,在8253的初始化編程中,由CPU向8253的控制字寄存器寫(xiě)入一個(gè)控制字,它規(guī)定了8253的工作方式。其格式如圖9-3所示。 1. 計(jì)數(shù)器選擇(D7D6) 控制字的最高兩位決定這個(gè)控制字是哪一個(gè)通道的控制字

8、。由于三個(gè)通道的工作是完全獨(dú)立的,所以需要有三個(gè)控制字寄存器分別規(guī)定相應(yīng)通道的工作方式。但它們的地址是同一個(gè),即A1A0=11控制字寄存器的地址。,所以,需要由這兩位來(lái)決定是哪一個(gè)通道的控制字。因此,對(duì)三個(gè)通道的編程需要向同一個(gè)地址(控制字寄存器地址)寫(xiě)入三個(gè)控制字,它們的D7D6位分別指定不同的通道。在控制字中的通道選擇與通道計(jì)數(shù)器的地址是兩回事,不能混淆。計(jì)數(shù)通道的地址是用作CPU向計(jì)數(shù)器寫(xiě)初值,或者從計(jì)數(shù)器讀取當(dāng)前的計(jì)數(shù)值。,2. 數(shù)據(jù)讀/寫(xiě)格式(D5D4) CPU向計(jì)數(shù)通道寫(xiě)入初值和讀取它們的當(dāng)前狀態(tài)時(shí),有幾種不同的格式。例如,寫(xiě)數(shù)據(jù)時(shí),是寫(xiě)入8位數(shù)據(jù)還是16位數(shù)據(jù),若是8位計(jì)數(shù),可以

9、令D5D4=01只寫(xiě)低8位,則高8位自動(dòng)置0;若是16位計(jì)數(shù),而低8位為0,則可令D5D4=10,只寫(xiě)入高8位,而低8位就自動(dòng)為0;在令D5D4=11時(shí),16位計(jì)數(shù)就先寫(xiě)入低8位,后輸入高8位。 在讀取計(jì)數(shù)值時(shí),可令D5D4=00,則把寫(xiě)控制字時(shí)的計(jì)數(shù)值鎖存,以后再讀取。,3. 工作方式(D3D2D1) 8253的每個(gè)通道可以有6種不同的工作方式,由這三位決定。每一種方式的特點(diǎn),隨后介紹。 4. 數(shù)制選擇(D0) 8253的每個(gè)通道有兩種計(jì)數(shù)制:二進(jìn)制和二十進(jìn)制,由這位決定。在二進(jìn)制計(jì)數(shù)時(shí),寫(xiě)入的初值的范圍為0000HFFFFH,其中0000H是最大值,代表65536;在二十進(jìn)制時(shí),寫(xiě)入的初值

10、的范圍為00009999,其中0000是最大值,代表10000。,9.3.1 方式0計(jì)完最后一個(gè)數(shù)時(shí)中斷,在這種方式,當(dāng)控制字CW(Control Word)寫(xiě)入控制字寄存器,則使OUT輸出端變低,即使計(jì)數(shù)器沒(méi)有賦予初值,也沒(méi)開(kāi)始計(jì)數(shù)。 要開(kāi)始計(jì)數(shù),GATE信號(hào)必須為高電平。則在寫(xiě)入計(jì)數(shù)初值以后,通道開(kāi)始計(jì)數(shù),在計(jì)數(shù)過(guò)程中,OUT信號(hào)線一直維持為低電平,直到計(jì)數(shù)到“0”時(shí),OUT輸出信號(hào)線才變?yōu)楦唠娖?。方?過(guò)程如圖9-4所示。,其中,LSB=4表示只寫(xiě)低8位計(jì)數(shù)值為4,最底下一行是計(jì)數(shù)器中的數(shù)值。 方式0的主要特點(diǎn)是: (1) 計(jì)數(shù)器只計(jì)數(shù)一遍。當(dāng)計(jì)數(shù)到0時(shí),并不恢復(fù)計(jì)數(shù)初值,不開(kāi)始重新計(jì)數(shù)

11、,且輸出保持為高。只有在寫(xiě)入另一個(gè)計(jì)數(shù)值時(shí),OUT變低,開(kāi)始新的計(jì)數(shù)。,(2) 8253內(nèi)部是在CPU寫(xiě)計(jì)數(shù)值的WR#信號(hào)上升沿,將此值寫(xiě)入通道的時(shí)常數(shù)寄存器,在WR#信號(hào)上升沿后的下一個(gè)CLK脈沖,才將計(jì)數(shù)值由時(shí)常數(shù)寄存器送至計(jì)數(shù)器作為初值,開(kāi)始計(jì)數(shù)。所以,8253PIT是在寫(xiě)計(jì)數(shù)值命令后經(jīng)過(guò)一個(gè)輸入脈沖,才將計(jì)數(shù)值裝入計(jì)數(shù)器,下一個(gè)脈沖才開(kāi)始計(jì)數(shù)。因此,如果設(shè)置計(jì)數(shù)初值為N,則輸出信號(hào)OUT是在N+1個(gè)CLK脈沖之后才變高的。這個(gè)特點(diǎn)在方式1、方式2、方式4和方式5時(shí)也是同樣的。,(3) 在計(jì)數(shù)過(guò)程中,可由門控制信號(hào)GATE控制暫停。當(dāng)GATE=0時(shí),計(jì)數(shù)暫停;當(dāng)GATE變高后,就接著計(jì)數(shù)

12、,其波形如圖9-5所示。 (4) 在計(jì)數(shù)過(guò)程中可以改變計(jì)數(shù)值。若是8位計(jì)數(shù),則在寫(xiě)入新的計(jì)數(shù)值后,計(jì)數(shù)器將按新的計(jì)數(shù)值重新開(kāi)始計(jì)數(shù),如圖9-6所示。如果是16位計(jì)數(shù),在寫(xiě)入第一個(gè)字節(jié)后,計(jì)數(shù)器停止計(jì)數(shù),在寫(xiě)入第二個(gè)字節(jié)后,計(jì)數(shù)器便按照新的數(shù)值開(kāi)始計(jì)數(shù),即改變計(jì)數(shù)值是立即有效的。,(5) 8253內(nèi)部沒(méi)有中斷控制電路,也沒(mé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)椋?MOVAL,50H;設(shè)控制字 OU

13、T07H,AL;輸出至控制字寄存器 MOVAL,80H;設(shè)置計(jì)數(shù)值 OUT05H,AL;輸出至計(jì)數(shù)通道1,9.3.2 8253-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ù)過(guò)程中輸出為低),而方式5輸出的是寬度為1個(gè)CLK脈沖的負(fù)脈沖(計(jì)數(shù)過(guò)程中輸出為高)。

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

15、總是在CLK輸入時(shí)鐘的上升沿被采樣。在方式0、2、3、4中,GATE輸入是電平起作用,邏輯電平在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í)間沒(méi)有要求。在方式2和3中,GATE信號(hào)的上升沿和電平都可以起作用。,4在計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值 8253在不同方式時(shí)都可以在計(jì)數(shù)過(guò)程中寫(xiě)入計(jì)數(shù)值,但它的作用在不同方式時(shí)有所不同,如表9-4所示。表中的立即有效都是指寫(xiě)入計(jì)數(shù)

16、值后的下一個(gè)CLK脈沖以后,新的計(jì)數(shù)值開(kāi)始起作用。 5計(jì)數(shù)到0后計(jì)數(shù)器的狀態(tài) 計(jì)數(shù)器減到0后并不停止不動(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.4 8253-PIT的編程,要使用8253-PIT必須首先進(jìn)行初始化編程,初始化編程的內(nèi)容為: 必須先寫(xiě)入每一個(gè)通道的控制字,然后寫(xiě)入通道的計(jì)數(shù)值。如前所述,在有些方式下,寫(xiě)入計(jì)數(shù)值后此計(jì)數(shù)通道就開(kāi)始工作了,而有的方式需要外界門控信號(hào)的觸發(fā)啟動(dòng)。 在初始化編程時(shí),某一通道的控制字和計(jì)數(shù)值,是通過(guò)兩個(gè)不同的端口地址寫(xiě)入的。任一

17、通道的控制字都是寫(xiě)入至控制字寄存器(地址總線低兩位A1A0=11),由控制字中的D7D6來(lái)確定是哪一個(gè)通道的控制字;而計(jì)數(shù)值是由各個(gè)通道的端口地址寫(xiě)入的。,初始化編程的步驟為: (1) 寫(xiě)入通道控制字,規(guī)定通道的工作方式。 (2) 寫(xiě)入計(jì)數(shù)值。 若規(guī)定只寫(xiě)低8位,則寫(xiě)入的為計(jì)數(shù)值的低8位,高8位自動(dòng)置0; 若規(guī)定只寫(xiě)高8位,則寫(xiě)入的為計(jì)數(shù)值的高8位,低8位自動(dòng)置0; 若是16位計(jì)數(shù)值,則分兩次寫(xiě)入,先寫(xiě)入低8位,再寫(xiě)入高8位。,例如: 若要用通道0,工作在方式1,按二十進(jìn)制計(jì)數(shù),計(jì)數(shù)值為5080H。則初始化編程的步驟為: (1) 確定通道控制字: (2) 計(jì)數(shù)值的低8位為80H。 (3) 計(jì)數(shù)

18、值的高8位為50H。,若端口地址位為F8HFBH,則初始化程序?yàn)椋?MOVAL,33H OUT0FBH,AL MOVAL,80H OUT0F8H,AL MOVAL,50H OUT0F8H,AL8253,任一通道的計(jì)數(shù)值,CPU可用輸入指令讀取。CPU讀到的是執(zhí)行輸入指令瞬間計(jì)數(shù)器的現(xiàn)行值。但8253的計(jì)數(shù)器是16位的,所以要分兩次讀至CPU,因此,若不設(shè)法鎖存,則在輸入過(guò)程中,計(jì)數(shù)值可能已經(jīng)變化了。要鎖存有兩種辦法: (1) 利用GATE信號(hào)使計(jì)數(shù)過(guò)程暫停。 (2) 向8253輸送一個(gè)通道控制字,令8253通道中的鎖存器鎖存。8253的每一個(gè)通道都有一個(gè)輸出鎖存器(16位),平時(shí),它的值隨通道計(jì)數(shù)器的值變化,當(dāng)向通道寫(xiě)入鎖存的控制字時(shí),它把計(jì)數(shù)器的現(xiàn)行值鎖存(計(jì)數(shù)器中繼續(xù)計(jì)數(shù))。于是CPU讀取的就是鎖存

溫馨提示

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