8253的工作方式_第1頁
8253的工作方式_第2頁
8253的工作方式_第3頁
8253的工作方式_第4頁
8253的工作方式_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、8253的工作方式1.方式0計(jì)數(shù)結(jié)束產(chǎn)生中斷8253用作計(jì)數(shù)器時(shí)一般工作在方式0。所謂計(jì)數(shù)結(jié)束產(chǎn)生中斷,是指在計(jì)數(shù)值減到0時(shí),輸由端(OUT產(chǎn)生的輸生信號可作為中斷申請信號,要求CPU進(jìn)行相應(yīng)的處理。方式0有如下特點(diǎn):當(dāng)控制字寫進(jìn)控制字寄存器確定了方式0時(shí),計(jì)數(shù)器的輸由(OUT端口)保持低電平,一直保持到計(jì)數(shù)值減到0。計(jì)數(shù)初值裝入計(jì)數(shù)器之后,在門控GAT日言號為高電平時(shí)計(jì)數(shù)器開始減1計(jì)數(shù)。當(dāng)計(jì)數(shù)器減到0時(shí)輸由端OUTt由低變高,此高電平輸由一直保持到該計(jì)數(shù)器裝入新的計(jì)數(shù)值或再次寫入方式0控制字為止。若要使用中斷,可以計(jì)數(shù)到0的輸由信號向CPU發(fā)生中斷請求,申請中斷。GAT時(shí)計(jì)數(shù)控制門,方式0的

2、計(jì)數(shù)過程可由GATE空制暫停,即GATE=1時(shí),允許計(jì)數(shù);GATE=0寸,停止計(jì)數(shù)。GATE信號的變化不影響輸由OU得口的狀態(tài)。計(jì)數(shù)過程中,可重新裝入計(jì)數(shù)初值。如果在計(jì)數(shù)過程中,重新寫入某一計(jì)數(shù)初值,則在寫完新計(jì)數(shù)值后,計(jì)數(shù)器將從該值重新開始作減1計(jì)數(shù)。2.方式1可編程的單拍負(fù)脈沖可編程的單拍負(fù)脈沖又稱為單穩(wěn)態(tài)輸由方式,簡稱單穩(wěn)定時(shí)。方式1的特點(diǎn)是:CPg入控制字后,計(jì)數(shù)器輸由OUT端為高電平作為起始電平,在寫入計(jì)數(shù)值后計(jì)數(shù)器并不開始計(jì)數(shù)(不管此時(shí)GATE是高電平還是低電平),而要由外部門控GATEB沖上升沿啟動(dòng),并在上升沿之后的下一個(gè)CLK輸入脈沖的下降沿開始計(jì)數(shù)。GATE上升沿啟動(dòng)計(jì)數(shù)的同

3、時(shí),使輸由OU位低,每來一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器作減一計(jì)數(shù),直到計(jì)數(shù)減為0時(shí),OUT輸由端再變?yōu)楦唠娖健U得輸由的單拍負(fù)脈沖的寬度為計(jì)數(shù)初值乘以CLK端脈沖周期。設(shè)計(jì)數(shù)初值為N,則單拍脈沖寬度為N個(gè)CLK時(shí)鐘脈沖周期。如果在計(jì)數(shù)器未減到0時(shí),GATEX來一觸發(fā)脈沖,則由下一個(gè)時(shí)鐘脈沖開始,計(jì)數(shù)器將從初始值重新作減1計(jì)數(shù)。當(dāng)減至0時(shí),輸由端又變?yōu)楦唠娖?。這樣,使輸由脈沖寬度延長。3.方式2分頻脈沖發(fā)生器方式2是一種具有自動(dòng)予置計(jì)數(shù)初值N的脈沖發(fā)生器。從OUT端可以輸由連續(xù)脈沖信號,脈沖寬度等于時(shí)鐘脈沖周期,而計(jì)數(shù)初值N決定了輸由端兩個(gè)負(fù)脈沖之間的寬度即輸由脈沖周期。方式2也叫N分頻器,因?yàn)檩斢擅}沖

4、為輸入脈沖的N分頻,即由現(xiàn)N個(gè)輸入脈沖才輸由一個(gè)脈沖。方式2有如下特點(diǎn):N分頻計(jì)數(shù)器,這種方式是輸由對輸入脈沖按計(jì)數(shù)器計(jì)數(shù)初值N分頻后的連續(xù)脈沖。當(dāng)CPg入控制字后OU得輸由為高電平作為起始電平,在寫入計(jì)數(shù)值N后將立即自動(dòng)開始對輸入脈沖CLK計(jì)數(shù),輸由端仍一直為高;當(dāng)計(jì)數(shù)器減到1時(shí),輸生變低,計(jì)數(shù)器減到0時(shí)又變?yōu)楦?,?jì)數(shù)器重新按已寫入的計(jì)數(shù)值N繼續(xù)計(jì)數(shù),周而復(fù)始,在OU琢輸由一個(gè)N分頻脈沖,其正脈搏沖寬度為(N-1)個(gè)輸入脈沖時(shí)鐘周期(是N個(gè)CLK時(shí)鐘脈沖周期之和),而負(fù)脈沖輸由寬度(持續(xù)時(shí)間)是一個(gè)CLK脈沖周期。GATE用于控制計(jì)數(shù),GATE=1允許計(jì)數(shù);GATE=0停止計(jì)數(shù)。因此,可以用

5、GAT睞使計(jì)數(shù)器同步。在方式2下,不但高電平的門控信號有效,上升跳變的門信號也是有效的。4.方式3分頻方波發(fā)生器方式3的特點(diǎn)是: 方式3常用于波特率發(fā)生器。方式3和方式2類似。但輸由為方波或近似方波的矩形波。 寫入方式3控制字后輸由為高電平。寫入計(jì)數(shù)值后計(jì)數(shù)器自動(dòng)開始對輸入CLK脈沖計(jì)數(shù),輸由OU加保持為高;在計(jì)數(shù)完成一半時(shí),輸由OU假為低電平,直到計(jì)數(shù)器全部完成,輸由OUT又變?yōu)楦唠娖?,并重?fù)上述計(jì)數(shù)過程。若計(jì)數(shù)值N為偶數(shù)時(shí),OUTT波的占空比為1:1;若N為奇數(shù),其占空比為:(N+1)/2:(N-1)/2即輸由分頻波高電平寬度為(N+1)/2CLK周期,低電平周期為(N-1)/2CLK周期

6、。5.方式4軟件觸發(fā)選通脈沖發(fā)生器方式4是類似于方式0的工作方式,計(jì)數(shù)器是靠置入新的計(jì)數(shù)初值這個(gè)軟件操作來觸發(fā)計(jì)數(shù)器工作的,故稱為軟件觸發(fā)。方式4有如下特點(diǎn):方式4是靠寫入計(jì)數(shù)值來進(jìn)行軟件觸發(fā)的“一次性有效”的選通脈沖發(fā)生器。寫入控制字后輸由端OU餃為高,并一直保持。在寫入計(jì)數(shù)初值之后開始計(jì)數(shù),當(dāng)計(jì)數(shù)到0時(shí)輸由端OU餃為低,維持一個(gè)CLK周期后又恢復(fù)為高,并一直保持為高,直到再次寫入計(jì)數(shù)來進(jìn)行“軟件觸發(fā)”才能再次開始。若GATE=1允許計(jì)數(shù);GATE=0停止計(jì)數(shù)方式4的負(fù)脈沖輸由常作為選通脈沖。6.方式5硬件觸發(fā)選通脈沖發(fā)生器方式5有如下特點(diǎn): 方式5類似于方式4,所不同的是GAT瑞輸入信號的

7、作用不同。方式5是硬件觸發(fā),是在外部硬件發(fā)生門控信號后才發(fā)生的。 方式5是靠門控脈沖GATE勺上升沿來進(jìn)行觸發(fā)的選通脈沖發(fā)生器。寫入控制字后輸由端OUT為高,這是初始電平;寫入計(jì)數(shù)值后計(jì)數(shù)器并不開始計(jì)數(shù),而要由門控脈沖GATE上升沿觸發(fā)后才開始計(jì)數(shù),計(jì)數(shù)到0輸由由高變低,一個(gè)CLK時(shí)鐘周期后又恢復(fù)為高,并一直保持,直到下次門控脈沖觸發(fā)再次開始計(jì)數(shù)。 在此方式中,計(jì)數(shù)器可重新觸發(fā),在任何時(shí)候,當(dāng)GATE信號的上升沿到來,將把計(jì)數(shù)初值重新送入計(jì)數(shù)器,然后開始計(jì)數(shù)過程。8253的控制字D?DaDjDjDsDaDiDoSCiSColRLiRLcIM2MiMoBCD1-1:BCD計(jì)數(shù)sh-JIH10:工

8、進(jìn)制計(jì)數(shù)000r方式0001:方式1X10:方由Xll:方式3100:方式400:計(jì)效器鎖存,供CPU讀101:方式5只讀/寫計(jì)數(shù)器低字節(jié)10:只讀/耳計(jì)數(shù)器高字節(jié)11:先讀/寫計(jì)數(shù)器低字節(jié),后讀f寫高字節(jié)f00;選擇通道0,01;選擇通道1101選擇通道2Lin無效8253的控制字SCi,SCo計(jì)數(shù)通道選擇位。由于8253內(nèi)部3個(gè)計(jì)數(shù)通道各有一個(gè)8位的控制字寄存器,而這三個(gè)控制字寄存器共用同一個(gè)控制端口地址,所以控制字中設(shè)置SCi,SCo這兩位來確定CPU當(dāng)前發(fā)生的控制字是寫入哪個(gè)計(jì)數(shù)通道的控制字寄存器中。具體選擇如圖.RLi,RLo讀/寫操作方式位。這兩位用來確定對選中的計(jì)數(shù)通道進(jìn)行讀/寫

9、操作方式。當(dāng)CPU對8253進(jìn)行16位讀/寫操作時(shí),可以只讀/寫高8位或只讀/寫低8位,也可以讀/寫16位。讀/寫16位時(shí),先讀/寫低8位,后讀/寫高8位,具體是哪種操作方式由RLi,RLo這兩位的編碼確定。由于8253的數(shù)據(jù)線只有(D7Do),一次只能傳送8位數(shù)據(jù),故傳送16位數(shù)據(jù)時(shí),要分兩次進(jìn)行。M2,M1,Mo工作方式擇位。8253的每個(gè)計(jì)數(shù)通道有6種不同的工作方式,即方式0到方式5,M2M1M0這三類就是用來選擇具體的工作方式,具體選擇如圖。BCD計(jì)數(shù)方式選擇位。8253的每個(gè)計(jì)數(shù)通道有兩種計(jì)數(shù)方式按二進(jìn)制計(jì)數(shù)或按十進(jìn)制(BCD碼)計(jì)數(shù)。BCD位用來具體確定采用哪種計(jì)數(shù)方式。例:若選擇

10、計(jì)數(shù)器1,工作在方式3,計(jì)數(shù)初值為588H(2個(gè)字節(jié))采用二進(jìn)制計(jì)數(shù),則其控制字為:01110110=76H,設(shè)控制口地址為043H,則將該控制字寫入控制字寄存器的指令如下:MOVAL,076HOUT043H,AL8253的初始化編程內(nèi)容:一是首先向控制寄存器寫入控制字,以選定計(jì)數(shù)通道(三個(gè)中之一),規(guī)定該計(jì)數(shù)的工作方式和計(jì)數(shù)方式以及計(jì)數(shù)初值的長度和裝入順序(初值寫入方式);二是向已選定的計(jì)數(shù)器按控制字的要求寫入計(jì)數(shù)初值。8253初始化的要求:(1)對每個(gè)計(jì)數(shù)器,控制字必須寫在計(jì)數(shù)值之前。這是因?yàn)橛?jì)數(shù)器的讀/寫格式由它的控制字決定。(2)計(jì)數(shù)值必須按控制字所規(guī)定的格式寫入。若控制字規(guī)定只寫8位

11、,只需寫入一次(8位)計(jì)數(shù)值即可(規(guī)定寫低8位則高8位自動(dòng)置0,規(guī)定寫高8位則低8位自動(dòng)置0);規(guī)定寫16位時(shí)必須寫兩次,先寫低8位,后寫高8位。當(dāng)初值為0時(shí),也要分兩寫入,因在二進(jìn)制計(jì)數(shù)時(shí),“0”表示65336,在BC刎計(jì)數(shù)時(shí)“0”表示10000=104。(3)對所有方式計(jì)數(shù)器都可以在計(jì)數(shù)過程中或計(jì)數(shù)結(jié)束后改變計(jì)數(shù)值,重寫計(jì)數(shù)值也必須遵守控制字所規(guī)定的格式,并且不會(huì)改變當(dāng)前計(jì)數(shù)器的工作方式。(4)計(jì)數(shù)值不能直接寫到減1計(jì)數(shù)器中,而只能寫入計(jì)數(shù)值寄存器中,并由寫操作之后的下一個(gè)CLK脈沖將計(jì)數(shù)值寄存器的內(nèi)容裝入減1計(jì)數(shù)器開始計(jì)數(shù)。(5)初始化編程必須明確各個(gè)計(jì)數(shù)器的控制字和計(jì)數(shù)值不是寫到同一個(gè)

12、地址單元。各個(gè)計(jì)數(shù)器的控制字各自獨(dú)立確定,但它們都寫入同一個(gè)端口地址(控制字寄存器)中,各個(gè)計(jì)數(shù)器的計(jì)數(shù)值則根據(jù)需要獨(dú)立確定并寫入各自計(jì)數(shù)器的相應(yīng)寄存器中。例1:設(shè)8086系統(tǒng)中8253的三個(gè)計(jì)數(shù)器的端口地址為060H,062H和064H,控制口地址為066H,要求計(jì)數(shù)器0為方式1,按BCD+數(shù);計(jì)數(shù)初值為1800D,計(jì)數(shù)器1為方式0,按二進(jìn)制計(jì)數(shù);計(jì)數(shù)初值為1234H,計(jì)數(shù)器2為方式3,按二進(jìn)制計(jì)數(shù);當(dāng)計(jì)數(shù)初值為065H時(shí),試分別寫生計(jì)數(shù)器0,1,2的初始化程序。計(jì)數(shù)器0的初始化:計(jì)數(shù)0的控制字:00100011B=23HMOVAL23H;計(jì)數(shù)器0的控制字OUT066H,AL;控制字寫入82

13、53的控制器MOVAL18H;取計(jì)數(shù)初值的高8位,低8位00可不送OUT060H,AL;計(jì)數(shù)初值送計(jì)數(shù)器0端口計(jì)數(shù)器1和初始化:計(jì)數(shù)器1的控制字:01110000B=70HMOVAL70H;計(jì)數(shù)器的控制字:方式0,送高8位和低8位,二進(jìn)制計(jì)數(shù)OUT066H,AL;控制字寫入8253的控制器MOVAL034H;取計(jì)數(shù)初值的低8位OUT062H,AL;計(jì)數(shù)初值的低8位,寫入計(jì)數(shù)器1端口MOVAL12H;取計(jì)數(shù)初值的高8位OUT062H,AL;計(jì)數(shù)初值的高8位寫入計(jì)數(shù)器1端口計(jì)數(shù)器2的初始化:計(jì)數(shù)器2的控制字:10010110B=96HMOVAL96H;計(jì)數(shù)器2的控制字96H:方式3,只送低8位,二

14、進(jìn)制計(jì)數(shù)OUT066H,AL;控制字寫入8253的控制口MOVAL056H;計(jì)數(shù)初值的低8位OUT064H,AL;計(jì)數(shù)初值的低8位寫入計(jì)數(shù)器2的端口例2:要求讀生計(jì)數(shù)器2的當(dāng)前計(jì)數(shù)值,并檢查是否為全8253在讀取計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值時(shí),必須分兩步進(jìn)行。首先發(fā)一鎖存命令(即控制字中RL1RL0=0。,將當(dāng)前計(jì)數(shù)值鎖存到輸由鎖存器中。第二步執(zhí)行讀操作,即用IN指令將鎖存器中內(nèi)容讀入CPU假設(shè)計(jì)數(shù)初值只有低8位,設(shè)其程序段如下(控制口地址為066H,計(jì)數(shù)器2的口地址為064H):KEEPMOVAL80H;計(jì)數(shù)器2的鎖存命令OUT066H,AL;鎖存命令寫入控制寄存器INAL,064H;讀輸由鎖存器中的

15、當(dāng)前計(jì)數(shù)值(從計(jì)數(shù)器2端口讀)CMPAL0FFH;比較當(dāng)前計(jì)數(shù)值是否為全“1”JMEKEEP;非全“1”繼續(xù)讀HLT;為全“1”暫停8253的應(yīng)用舉例例1:將8253的計(jì)數(shù)器1作為5ms定時(shí)器,設(shè)輸入時(shí)鐘頻率為200kHz,試編寫8253的初始化程序。(1)計(jì)數(shù)初值N計(jì)算已知輸入時(shí)鐘CLK頻率為200kHz,則時(shí)鐘周期為T=1/f=1/200kHz=5以s,于是計(jì)數(shù)初值N為:N=5ms/T=5ms/5以s=1000。(2)確定控制字按題意選計(jì)數(shù)器1,按BCD馬計(jì)數(shù),工彳于方式0,由于計(jì)數(shù)初值N=1000,控制字C5D應(yīng)為11,于是8253的控制字為:01110001B=71H(3)選擇8253

16、各端口地址設(shè)計(jì)數(shù)器1的端口地址為3F82H,控制口地址為3F86H。(4)初始化程序如下MOVAL,71H;控制字MOVDX,3F68H;控制口地址OUTDXAL;控制字送8253控制寄存器MOVDX,3F82H;計(jì)數(shù)器1端口地址MOVAL,00;將計(jì)數(shù)初值N=1000的低8位寫入計(jì)數(shù)器1OUTDX,ALMOVAL,10;將N的高8位寫入計(jì)數(shù)器1OUTDX,AL例2:以8086為CPU的某微機(jī)系統(tǒng)中使用了一塊8253芯片,其通道端口地址為308H,30AH,30CH,控制口地址為30EH,3個(gè)通道使用同一輸入時(shí)鐘,頻率為2MHz要求完成如下功能:利用計(jì)數(shù)器0采用硬件觸發(fā),輸由寬度等于時(shí)鐘周期的

17、單脈沖,定時(shí)常數(shù)為36H;利用計(jì)數(shù)器1輸由頻率為2kHz的對稱方波;利用計(jì)數(shù)器2產(chǎn)生寬度為0.6ms的單脈沖,試設(shè)計(jì)該定時(shí)系統(tǒng)硬件電路和初始化程序。(1)硬件電路設(shè)計(jì)硬件電路設(shè)計(jì)主要是地址譯碼電路設(shè)計(jì)及時(shí)8253與CPU問的連接。根據(jù)給定的端口地址可知,地址總線低位部分的從A分別為:AAf11,44=0000,AAA=100111,A0=0,由它們經(jīng)譯碼器譯碼產(chǎn)生8253的片選信號,8253的數(shù)據(jù)線DD0必須與系統(tǒng)數(shù)據(jù)總線的低8位相連,8253的端口的選擇信號A1A0應(yīng)連系統(tǒng)地址的A2A1。根據(jù)上述要求,譯碼器應(yīng)選3-8譯碼器74LS138。該譯碼器有3個(gè)代碼輸入端(C,B,A),軍入3位代碼

18、決定譯碼信號從Y。Y7中哪一個(gè)輸由,本例中顯然應(yīng)以Y2輸由。(2)初始化編程根據(jù)題意要求,對3個(gè)通道的工作方式,計(jì)數(shù)初值確定如下:由CLKCLK=2MHzM得,時(shí)鐘周期T=1/f=1/2MHz=0.5以s。選計(jì)數(shù)器0:選擇方式5,門控信號GATES接一正跳變信號,OU琢當(dāng)計(jì)數(shù)為0時(shí)產(chǎn)生一個(gè)寬度等于時(shí)鐘周期的單脈沖。計(jì)數(shù)系數(shù)為36,用BCD#數(shù)。所以,計(jì)數(shù)器0的控制字應(yīng)為00011011B=1BH選計(jì)數(shù)器1:選擇方式3,GATES+5V,CLK1=2MH輸由方波頻率為2kHz,所以,計(jì)數(shù)常數(shù)Ni=2MHz/2kHz=1000,采用BCD計(jì)數(shù),于是計(jì)數(shù)器1的控制字為:01110111B=77H選計(jì)數(shù)器2:選擇方式1,以構(gòu)成一個(gè)單穩(wěn)態(tài)電路,輸由脈沖寬度由計(jì)數(shù)常數(shù)N2決定,計(jì)數(shù)常數(shù)N2=600以s/0.5以s=1200,采用BCD#數(shù),于是計(jì)數(shù)器2的控制字為:10110011B=B3H根據(jù)以上分析可得3個(gè)計(jì)數(shù)通道的初

溫馨提示

  • 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

提交評論