第七章定時器計數(shù)器_第1頁
第七章定時器計數(shù)器_第2頁
第七章定時器計數(shù)器_第3頁
第七章定時器計數(shù)器_第4頁
第七章定時器計數(shù)器_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第7 7章可編程定時器章可編程定時器/ /計數(shù)器計數(shù)器82538253及其應(yīng)用及其應(yīng)用教學(xué)重點教學(xué)重點n 8253的引腳和的引腳和6種工作方式種工作方式n 8253的編程的編程n 8253在在IBM PC系列機上的應(yīng)用系列機上的應(yīng)用一、概述 在微機應(yīng)用系統(tǒng)中,常常要求有一些實時時鐘,以在微機應(yīng)用系統(tǒng)中,常常要求有一些實時時鐘,以實現(xiàn)定時或延時控制,如定時中斷、定時檢測、定時實現(xiàn)定時或延時控制,如定時中斷、定時檢測、定時掃描等;還要求有計數(shù)器對外部事件計數(shù),如外來脈掃描等;還要求有計數(shù)器對外部事件計數(shù),如外來脈沖等。這就需要用到定時沖等。這就需要用到定時/ /計數(shù)器。計數(shù)器。那么什么是定時那么

2、什么是定時/ /計數(shù)器呢?計數(shù)器呢? 所謂的定時所謂的定時/ /計數(shù)器其實質(zhì)都是計數(shù)器,只不過計數(shù)器其實質(zhì)都是計數(shù)器,只不過在在定時時是對微機內(nèi)部時鐘脈沖進行計數(shù)定時時是對微機內(nèi)部時鐘脈沖進行計數(shù),而工作在,而工作在計數(shù)器時是對微機外部輸入的脈沖進行計數(shù)計數(shù)器時是對微機外部輸入的脈沖進行計數(shù)。如果輸。如果輸入的脈沖是周期相同的,也可將計數(shù)器作為定時器來入的脈沖是周期相同的,也可將計數(shù)器作為定時器來使用,視具體情況而定。使用,視具體情況而定。定時功能的實現(xiàn)方法n軟件延時軟件延時利用微處理器執(zhí)行一個延利用微處理器執(zhí)行一個延時程序段實現(xiàn)時程序段實現(xiàn)n不可編程的硬件定時不可編程的硬件定時采用分頻器、采

3、用分頻器、單穩(wěn)電路或簡易定時電路控制定時時間單穩(wěn)電路或簡易定時電路控制定時時間n可編程的硬件定時可編程的硬件定時軟件硬件相結(jié)合、軟件硬件相結(jié)合、用可編程定時器芯片構(gòu)成一個方便靈活用可編程定時器芯片構(gòu)成一個方便靈活的定時電路的定時電路本章介紹的本章介紹的Intel 8253就是一種可編程的定時器計數(shù)器芯片就是一種可編程的定時器計數(shù)器芯片 n3個獨立的個獨立的16位計數(shù)器通道位計數(shù)器通道n每個計數(shù)器有每個計數(shù)器有6種工作方式種工作方式n按二進制或十進制(按二進制或十進制(BCD碼)計數(shù)碼)計數(shù)8254是是8253的改進型的改進型二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器82531. 82531

4、. 8253的主要功能的主要功能2. 8253/8254的內(nèi)部結(jié)構(gòu)和引腳D7D0計數(shù)器0控制字寄存器計數(shù)器1計數(shù)器2內(nèi)部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253(1).計數(shù)器結(jié)構(gòu)示意圖預(yù)置寄存器預(yù)置寄存器GATECLKOUT減減1計數(shù)器計數(shù)器輸出鎖存器輸出鎖存器計數(shù)初值存于計數(shù)初值存于預(yù)置寄存器預(yù)置寄存器;在計數(shù)過程中,在計數(shù)過程中,減法計數(shù)器減法計數(shù)器的值不斷遞減,的值不斷遞減,而預(yù)置寄存器中的預(yù)置不變。而預(yù)置寄存器中的預(yù)置不變。輸出鎖存器輸出鎖存

5、器用于寫入鎖存命令時,用于寫入鎖存命令時,鎖定當(dāng)前計數(shù)值鎖定當(dāng)前計數(shù)值二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253p計數(shù)器的3個引腳nCLK時鐘輸入信號時鐘輸入信號在計數(shù)過程中,在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降此引腳上每輸入一個時鐘信號(下降沿),計數(shù)器的計數(shù)值減沿),計數(shù)器的計數(shù)值減1nGATE門控輸入信號門控輸入信號控制計數(shù)器工控制計數(shù)器工作,可分成電平控制和上升沿控制兩種作,可分成電平控制和上升沿控制兩種類型類型nOUT計數(shù)器輸出信號計數(shù)器輸出信號當(dāng)一次計數(shù)過當(dāng)一次計數(shù)過程結(jié)束(計數(shù)值減為程結(jié)束(計數(shù)值減為0),),OUT引腳上引腳上將產(chǎn)生一個輸出信號將產(chǎn)生一個輸

6、出信號二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253(2). 與處理器接口nD0 D7數(shù)據(jù)線數(shù)據(jù)線A0 A1地址線地址線nRD*讀信號讀信號WR*寫信號寫信號nCS*片選信號片選信號二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253每個計數(shù)器內(nèi)部都有每個計數(shù)器內(nèi)部都有1控制寄存器,控制寄存器,3個控個控制寄存器的端口地址相同(制寄存器的端口地址相同(=11)。當(dāng))。當(dāng)CPU向控制向控制寄存器寫入控制字時,由控制字的最高寄存器寫入控制字時,由控制字的最高 2位決定寫位決定寫入哪個計數(shù)器內(nèi)部的控制寄存器。入哪個計數(shù)器內(nèi)部的控制寄存器。初值寄存器(初值寄存器(CR)和輸出鎖存器()和輸出

7、鎖存器(OL)均是均是16位的,但它們對應(yīng)位的,但它們對應(yīng)1個個8位端口地址位端口地址,即,即16位的位的CR和和OL是作為兩個是作為兩個8位寄存器來讀位寄存器來讀/寫。當(dāng)寫。當(dāng)CPU對對8位端口讀寫時,由位端口讀寫時,由控制字控制字決定讀寫決定讀寫16位位CR/OL的低的低8位或高位或高8位位關(guān)于關(guān)于CPUCPU對這些寄存器的讀對這些寄存器的讀/ /寫應(yīng)說明以下點:寫應(yīng)說明以下點:二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器82533. 8253/8254的工作方式n8253有有6種工作方式,由方式控制字確定種工作方式,由方式控制字確定n熟悉每種工作方式的特點才能根據(jù)實際應(yīng)用問題,熟悉每種

8、工作方式的特點才能根據(jù)實際應(yīng)用問題,選擇正確的工作方式選擇正確的工作方式n每種工作方式的過程類似:每種工作方式的過程類似: 設(shè)定工作方式設(shè)定工作方式 設(shè)定計數(shù)初值設(shè)定計數(shù)初值 硬件啟動硬件啟動 計數(shù)初值進入減計數(shù)初值進入減1計數(shù)器計數(shù)器 每輸入一個時鐘計數(shù)器減每輸入一個時鐘計數(shù)器減1的計數(shù)過程的計數(shù)過程 計數(shù)過程結(jié)束計數(shù)過程結(jié)束二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器82531.1.計數(shù)初值何時起作用計數(shù)初值何時起作用2.門控信號的影響門控信號的影響3.OUT信號的狀態(tài)信號的狀態(tài)4.計數(shù)操作是否可以重復(fù),或稱計數(shù)初值是否可以計數(shù)操作是否可以重復(fù),或稱計數(shù)初值是否可以自動裝入。自動裝入。

9、不可重復(fù)不可重復(fù) 自動重復(fù)條件重復(fù)自動重復(fù)條件重復(fù)每種工作方式?jīng)Q定以下內(nèi)容:每種工作方式?jīng)Q定以下內(nèi)容:二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式0 計數(shù)結(jié)束中斷計數(shù)結(jié)束中斷重新重新二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式0 0工作的特點和應(yīng)用工作的特點和應(yīng)用l計數(shù)器只計一遍計數(shù)器只計一遍l輸出信號輸出信號OUT是在是在N+1個個CLK脈沖后才變高的脈沖后才變高的l在計數(shù)過程中,可由門控信號在計數(shù)過程中,可由門控信號GATE控制暫停。當(dāng)控制暫停。當(dāng)GATE0時,計數(shù)暫停,時,計數(shù)暫停,GATE變高后就接著計數(shù)變高后就接著計數(shù)l改變計數(shù)值是立即有效的改變計

10、數(shù)值是立即有效的l主要用于事件計數(shù),主要用于事件計數(shù),OUT信號可作為中斷請求信號信號可作為中斷請求信號二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式1 1可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 82538253方式方式1 1的時序的時序高高二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式1 1的主要特點的主要特點u若設(shè)置的計數(shù)值為若設(shè)置的計數(shù)值為N,則輸出的單拍脈沖的寬度即為,則輸出的單拍脈沖的寬度即為N個輸入脈沖間隔。個輸入脈沖間隔。u當(dāng)計數(shù)到當(dāng)計數(shù)到0后,可再次由外部觸發(fā)啟動后,可再次由外部觸發(fā)啟動u在計數(shù)過程中,外部可發(fā)出門控脈沖進行再觸發(fā)。在在

11、計數(shù)過程中,外部可發(fā)出門控脈沖進行再觸發(fā)。在再觸發(fā)脈沖上升沿之后的一個再觸發(fā)脈沖上升沿之后的一個CLK脈沖的下降沿,計數(shù)脈沖的下降沿,計數(shù)器按初值重新開始計數(shù)。器按初值重新開始計數(shù)。u在計數(shù)過程中,在計數(shù)過程中,CPU改變計數(shù)值,計數(shù)過程不受影響,改變計數(shù)值,計數(shù)過程不受影響,計數(shù)到計數(shù)到0后輸出為高,若再次由后輸出為高,若再次由GATE信號觸發(fā)啟動,則信號觸發(fā)啟動,則計數(shù)器將按新輸入的計數(shù)值計數(shù),計數(shù)器將按新輸入的計數(shù)值計數(shù),即即 計數(shù)值是下次有效計數(shù)值是下次有效的。的。二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式2 2 分頻器分頻器 8253方式方式2的時序的時序(N=3

12、)二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式2 2的主要特點的主要特點p不用重新設(shè)置計數(shù)值,通道能夠連續(xù)工作,輸出固定頻不用重新設(shè)置計數(shù)值,通道能夠連續(xù)工作,輸出固定頻率的脈沖。率的脈沖。p計數(shù)過程中可由門控脈沖控制。當(dāng)計數(shù)過程中可由門控脈沖控制。當(dāng)GATE變低時,就暫變低時,就暫停計數(shù)。在停計數(shù)。在GATE 變高后的下一個變高后的下一個CLK脈沖使計數(shù)器恢復(fù)脈沖使計數(shù)器恢復(fù)初值,重新開始計數(shù)。初值,重新開始計數(shù)。p在計數(shù)過程中可以改變計數(shù)值,這對正在進行的計數(shù)過在計數(shù)過程中可以改變計數(shù)值,這對正在進行的計數(shù)過程沒有影響,但在計數(shù)到程沒有影響,但在計數(shù)到1時輸出變低,過一個

13、時輸出變低,過一個CLK周期周期輸出又變高,計數(shù)器將按新的計數(shù)值計數(shù),輸出又變高,計數(shù)器將按新的計數(shù)值計數(shù),所以改變計數(shù)所以改變計數(shù)值是下次有效的。值是下次有效的。p主要應(yīng)用作為分頻器。主要應(yīng)用作為分頻器。二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式3 3 方波發(fā)生器方波發(fā)生器8253方式方式3的時序的時序2 24 44 42 24 42 24 42 22 25 52 24 42 2二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式3 3的主要特點和應(yīng)用的主要特點和應(yīng)用u若計數(shù)值為偶數(shù)若計數(shù)值為偶數(shù)N,輸出對稱方波;如果計數(shù)值,輸出對稱方波;如果計數(shù)值N是是奇數(shù),

14、則輸出奇數(shù),則輸出(N+1)/2個個CLK脈沖周期為高,而在脈沖周期為高,而在(N-1)/2脈沖周期為低脈沖周期為低uGATE信號能使計數(shù)過程重新開始。信號能使計數(shù)過程重新開始。GATE=1允許允許計數(shù),計數(shù),GATE0禁止計數(shù)。如果在輸出禁止計數(shù)。如果在輸出OUT為低期間,為低期間,GATE0,OUT將立即變高,停止計數(shù)。當(dāng)將立即變高,停止計數(shù)。當(dāng)GATE變高變高以后,計數(shù)器將裝入初始值,重新開始計數(shù)。以后,計數(shù)器將裝入初始值,重新開始計數(shù)。u作為方波脈沖發(fā)生器和波特率發(fā)生器。作為方波脈沖發(fā)生器和波特率發(fā)生器。二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式4 4 軟件觸發(fā)選通

15、信號發(fā)生器軟件觸發(fā)選通信號發(fā)生器8253方式方式4的時序的時序二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式4 4的特點的特點u若設(shè)置的計數(shù)值為若設(shè)置的計數(shù)值為N,則是在寫了計數(shù)值后的,則是在寫了計數(shù)值后的N+1個個脈沖,才輸出一個負(fù)脈沖。脈沖,才輸出一個負(fù)脈沖。u當(dāng)當(dāng)GATE1時,允許計數(shù),而時,允許計數(shù),而GATE=0,禁止計數(shù)。禁止計數(shù)。所以,要做到軟件啟動,則所以,要做到軟件啟動,則GATE 應(yīng)保持為應(yīng)保持為“1”。u若在計數(shù)過程中,改變計數(shù)值,則立即按新計數(shù)值若在計數(shù)過程中,改變計數(shù)值,則立即按新計數(shù)值重新開始計數(shù)。若計數(shù)值是雙字節(jié),則在設(shè)置第一字重新開始計數(shù)。若計數(shù)

16、值是雙字節(jié),則在設(shè)置第一字節(jié)時停止計數(shù),在設(shè)置第二字節(jié)后,立即按照新計數(shù)節(jié)時停止計數(shù),在設(shè)置第二字節(jié)后,立即按照新計數(shù)值開始計數(shù)。值開始計數(shù)。二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式5 5硬件觸發(fā)的選通信號發(fā)生器硬件觸發(fā)的選通信號發(fā)生器8253方式方式5時序時序二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253方式方式5 5的特點的特點若設(shè)置計數(shù)值為若設(shè)置計數(shù)值為N,則在門控脈沖觸發(fā)后,經(jīng)過,則在門控脈沖觸發(fā)后,經(jīng)過N+1個個CLK脈沖,才輸出一個負(fù)脈沖。脈沖,才輸出一個負(fù)脈沖。若在計數(shù)過程中產(chǎn)生新的門控脈沖,則使計數(shù)器重新若在計數(shù)過程中產(chǎn)生新的門控脈沖,則使計數(shù)器重

17、新開始計數(shù),但對輸出的狀態(tài)沒有影響。開始計數(shù),但對輸出的狀態(tài)沒有影響。若在計數(shù)過程中改變計數(shù)值,只要沒有門控信號的觸若在計數(shù)過程中改變計數(shù)值,只要沒有門控信號的觸發(fā),不影響計數(shù)過程。當(dāng)計數(shù)到發(fā),不影響計數(shù)過程。當(dāng)計數(shù)到0后,若有新的門控后,若有新的門控信號的觸發(fā),則按新的計數(shù)值計數(shù)。但若在寫入了新信號的觸發(fā),則按新的計數(shù)值計數(shù)。但若在寫入了新的計數(shù)值后,在未計數(shù)到的計數(shù)值后,在未計數(shù)到0之前,有新的門控信號觸發(fā),之前,有新的門控信號觸發(fā),則立即按新的計數(shù)值重新開始計數(shù)則立即按新的計數(shù)值重新開始計數(shù)。二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253各種工作方式的輸出波形方式方式 0方式方式

18、 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 1計數(shù)開始的時刻n需要注意:需要注意:n處理器寫入處理器寫入8253的計數(shù)初值只是寫入了預(yù)置的計數(shù)初值只是寫入了預(yù)置寄存器,之后到來的第一個寄存器,之后到來的第一個CLK輸入脈沖輸入脈沖(需(需先由低電平變高,再由高變低先由低電平變高,再由高變低)才將預(yù))才將預(yù)置寄存器的初值送到減置寄存器的初值送到減1計數(shù)器。計數(shù)器。n從第二個從第二個CLK信號的下降沿,計數(shù)器才真正信號的下降沿,計數(shù)器才真正開始減開始減1計數(shù)。計數(shù)。實驗:實驗:計數(shù)開始的時刻計數(shù)開始的時刻二、可編程定時

19、器二、可編程定時器/計數(shù)器計數(shù)器8253實驗1計數(shù)開始計數(shù)開始實驗1計數(shù)開始計數(shù)開始計數(shù)開始計數(shù)開始4、8253的編程n8253加電后的工作方式不確定加電后的工作方式不確定n8253必須初始化編程,才能正常工作必須初始化編程,才能正常工作n寫入控制字寫入控制字n寫入計數(shù)初值寫入計數(shù)初值n讀取計數(shù)值讀取計數(shù)值D7D6D5D4D3D2D1D0二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253(1) 寫入方式控制字00 計數(shù)器計數(shù)器001 計數(shù)器計數(shù)器110 計數(shù)器計數(shù)器211 非法非法00 計數(shù)器鎖存命計數(shù)器鎖存命令令 01 只讀寫低字節(jié)只讀寫低字節(jié)10 只讀寫高字節(jié)只讀寫高字節(jié)11 先讀寫低

20、字節(jié)先讀寫低字節(jié) 后讀寫高字節(jié)后讀寫高字節(jié)000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式方式4101 方式方式50 二進制二進制1 十進制十進制控制字寫入控制字控制字寫入控制字I/O地址(地址(A1A011)示例示例二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253(2) 寫入計數(shù)值n選擇二進制時選擇二進制時n計數(shù)值范圍:計數(shù)值范圍:0000HFFFFHn0000H是最大值,代表是最大值,代表65536n選擇十進制(選擇十進制(BCD碼)碼)n計數(shù)值范圍:計數(shù)值范圍:00009999Hn0000代表最大值代表最大值10000計數(shù)值寫入計數(shù)器各自的計數(shù)值

21、寫入計數(shù)器各自的I/O地址地址示例示例二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253(3)讀取計數(shù)值n對對8位數(shù)據(jù)線,讀取位數(shù)據(jù)線,讀取16位計數(shù)值需分兩次位計數(shù)值需分兩次n計數(shù)在不斷進行,應(yīng)該將當(dāng)前計數(shù)值先行計數(shù)在不斷進行,應(yīng)該將當(dāng)前計數(shù)值先行鎖存,然后讀取:鎖存,然后讀?。簄向控制字向控制字I/O地址:給地址:給8253寫入鎖存命令寫入鎖存命令n從計數(shù)器從計數(shù)器I/O地址:讀取鎖存的計數(shù)值地址:讀取鎖存的計數(shù)值讀取計數(shù)值,要注意讀寫格式和計數(shù)數(shù)制讀取計數(shù)值,要注意讀寫格式和計數(shù)數(shù)制二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253計數(shù)初值計數(shù)初值n=定時時間定時時間/8253時

22、鐘周期時鐘周期或或定時時間定時時間=8253時鐘周期時鐘周期計數(shù)初值計數(shù)初值n(4) 計數(shù)初值的計算二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器8253例如,在某系統(tǒng)中,例如,在某系統(tǒng)中,8253所使用的計數(shù)脈沖頻率為所使用的計數(shù)脈沖頻率為0.5MHz,即脈沖周期即脈沖周期tc=2us,如果給,如果給8253的計數(shù)器預(yù)置的初值的計數(shù)器預(yù)置的初值n=500,則當(dāng)計數(shù)器計到數(shù)值為則當(dāng)計數(shù)器計到數(shù)值為0時,定時時間時,定時時間T=2us500=1ms三、三、82538253的應(yīng)用舉例的應(yīng)用舉例A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1

23、CLK2D QCLK+5V接至接至DMA控制器控制器接至揚聲器驅(qū)動器接至揚聲器驅(qū)動器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS二、可編程定時器二、可編程定時器/計數(shù)器計數(shù)器82531. 8253在在IBM PC系列機上的應(yīng)用系列機上的應(yīng)用(1) 定時中斷和定時刷新定時中斷和定時刷新n從閱讀初始化程序段從閱讀初始化程序段n看看計數(shù)器計數(shù)器0作為定時中斷作為定時中斷的作用的作用n將將計數(shù)器計數(shù)器1作為定時刷新作為定時刷新n看如何編寫初始化程序段看如何編寫初始化程序段三、8253的應(yīng)用舉例定時中斷mov al,36h;計數(shù)器計

24、數(shù)器0為方式為方式3,采用二進制計數(shù),采用二進制計數(shù),;先低后高寫入計數(shù)值先低后高寫入計數(shù)值out 43h,al;寫入寫入方式控制字方式控制字mov al,0h;計數(shù)值為計數(shù)值為0out 40h,al;寫入低字節(jié)計數(shù)值寫入低字節(jié)計數(shù)值out 40h,al;寫入高字節(jié)計數(shù)值寫入高字節(jié)計數(shù)值8253初始化計數(shù)器0:定時中斷n計數(shù)器計數(shù)器0:方式:方式3,計數(shù)值:,計數(shù)值:65536,輸出頻率為,輸出頻率為1.19318MHz6553618.206Hz的方波的方波n門控為常啟狀態(tài),這個方波信號不斷產(chǎn)生門控為常啟狀態(tài),這個方波信號不斷產(chǎn)生nOUT0端接端接8259A的的IRQ0,用作中斷請求信號,用作

25、中斷請求信號n每秒產(chǎn)生每秒產(chǎn)生18.206次中斷請求,或說每隔次中斷請求,或說每隔55ms(54.925493ms)申請一次中斷)申請一次中斷nDOS系統(tǒng)利用計數(shù)器系統(tǒng)利用計數(shù)器0的這個特點,通過的這個特點,通過08號中號中斷服務(wù)程序?qū)崿F(xiàn)了日時鐘計時功能斷服務(wù)程序?qū)崿F(xiàn)了日時鐘計時功能三、8253的應(yīng)用舉例計數(shù)器1:定時刷新n需要重復(fù)不斷提出刷新請求需要重復(fù)不斷提出刷新請求門控總為高,選擇方式門控總為高,選擇方式2或或3n2ms內(nèi)刷新內(nèi)刷新128次,即次,即15.6 s刷新一次刷新一次計數(shù)初值為計數(shù)初值為18三、8253的應(yīng)用舉例定時刷新mov al,54h;計數(shù)器計數(shù)器1為方式為方式2,采用二

26、進制計數(shù),只寫,采用二進制計數(shù),只寫低低8位計數(shù)值位計數(shù)值out 43h,al;寫入寫入方式控制字方式控制字mov al,18;計數(shù)初值為計數(shù)初值為18out 41h,al;寫入計數(shù)值寫入計數(shù)值8253初始化(2) 揚聲器控制n計數(shù)器計數(shù)器2的輸出控制揚聲器的發(fā)聲音調(diào)的輸出控制揚聲器的發(fā)聲音調(diào)n計數(shù)器計數(shù)器2只能工作在方式只能工作在方式3,才能輸出一,才能輸出一定頻率的方波,經(jīng)濾波后得到近似的正定頻率的方波,經(jīng)濾波后得到近似的正弦波,進而推動揚聲器發(fā)聲弦波,進而推動揚聲器發(fā)聲n揚聲器還受控于并行接口(揚聲器還受控于并行接口(8255芯片)芯片)n必須使必須使PB0和和PB1同時為高電平,揚聲器

27、同時為高電平,揚聲器才能發(fā)出預(yù)先設(shè)定頻率的聲音才能發(fā)出預(yù)先設(shè)定頻率的聲音三、8253的應(yīng)用舉例頻率設(shè)置speakerprocpush axmov al,0b6hout 43h,al;寫入控制字寫入控制字pop axout 42h,al;寫入低寫入低8位計數(shù)值位計數(shù)值mov al,ahout 42h,al;寫入高寫入高8位計數(shù)值位計數(shù)值retspeakerendp揚聲器控制揚聲器開speakonprocpush axin al,61hor al,03h;D1D0PB1PB011B,其他位不變,其他位不變out 61h,alpop axretspeakonendp揚聲器控制揚聲器關(guān)speakoff

28、procpush axin al,61hand al,0fch;D1D0PB1PB000B,其他位不變,其他位不變out 61h,alpop axretspeakoffendp揚聲器控制主程序;數(shù)據(jù)段數(shù)據(jù)段freqdw 1193180/600;代碼段代碼段mov ax,freqcall speaker;設(shè)置揚聲器音調(diào)設(shè)置揚聲器音調(diào)call speakon;打開揚聲器聲音打開揚聲器聲音mov ah,1;等待按鍵等待按鍵int 21hcall speakoff;關(guān)閉揚聲器聲音關(guān)閉揚聲器聲音揚聲器控制2. 擴充定時計數(shù)器的應(yīng)用例例1 用用8253監(jiān)視一個生產(chǎn)流水線,每通過監(jiān)視一個生產(chǎn)流水線,每通過5

29、0個工件。蜂鳴器響個工件。蜂鳴器響5s,頻率為頻率為2000HZ。2.5MHzGATE0+5V硬件接口示意圖如圖所示,工件硬件接口示意圖如圖所示,工件從光源與光敏電阻之間通過時,從光源與光敏電阻之間通過時,在晶體管的發(fā)射極上會產(chǎn)生一個在晶體管的發(fā)射極上會產(chǎn)生一個脈沖,此脈沖作為脈沖,此脈沖作為8253計數(shù)通道計數(shù)通道0的計數(shù)脈沖,當(dāng)通道的計數(shù)脈沖,當(dāng)通道0計數(shù)滿計數(shù)滿50后,后,由由OUT0輸出負(fù)脈沖,經(jīng)反相后作輸出負(fù)脈沖,經(jīng)反相后作為為8259A的一個中斷請求信號,在的一個中斷請求信號,在中斷服務(wù)程序中,啟動中斷服務(wù)程序中,啟動8253計數(shù)計數(shù)通道通道1工作,由工作,由OUT1連續(xù)輸出連續(xù)輸

30、出2000HZ的方波,持續(xù)的方波,持續(xù)5s后停止輸后停止輸出。出。 硬件連接硬件連接三、8253的應(yīng)用舉例通道通道0計數(shù)器工作于計數(shù)器工作于方式方式2,采,采用用BCD計數(shù),因計數(shù)初值為計數(shù),因計數(shù)初值為50,采用采用RL1RL001(讀(讀/寫計數(shù)寫計數(shù)器的低器的低8位),則方式控制字位),則方式控制字為為00010101B。2.5MHzGATE0+5V通道通道1計數(shù)器工作于計數(shù)器工作于方式方式3,CLK1接接2.5MHZ時鐘,要求產(chǎn)生時鐘,要求產(chǎn)生2000HZ的方波,則計數(shù)初值應(yīng)為的方波,則計數(shù)初值應(yīng)為250000020001250,采用,采用RL1RL0=11(先讀(先讀/寫低寫低8位,

31、后讀位,后讀/寫高寫高8位),位),BCD計數(shù),則方計數(shù),則方式控制字為式控制字為01110111B (2 2) 控制字設(shè)置控制字設(shè)置三、8253的應(yīng)用舉例(3) 程序編制程序編制MOV AL,15H ;通道通道0初始化初始化OUT 43H,ALMOV AL,50H ;計數(shù)初值低計數(shù)初值低8位,位, 高高8位自動清零位自動清零OUT 40H,ALSTI ;開中斷開中斷LOP: HLT ;等待中斷等待中斷JMP LOP 假設(shè)假設(shè)8253通道通道0的地址為的地址為40H,通道,通道1的地址為的地址為41H,控制口地址為,控制口地址為43H。8255A的的A 口地址為口地址為80H,工作于方式,工作

32、于方式0輸出。輸出。則主程序為則主程序為:MOV AL,01H ;通道通道1的的GATE1置置1,啟,啟 動計數(shù)動計數(shù)OUT 80H,ALMOV AL,77H ;通道通道1初始化初始化OUT 43H,ALMOV AL,50H ;計數(shù)初值計數(shù)初值OUT 41H,ALMOV AL, 12HOUT 41H,ALCALL DL5s ; 延時延時5sMOV AL,00H ;通道通道1的的GATE1置置0,停,停 止計數(shù)止計數(shù)OUT 80H,ALIRET中斷服務(wù)程序為:中斷服務(wù)程序為:三、8253的應(yīng)用舉例例例2 8253通道通道2接有一發(fā)光二極管,要使發(fā)光二極管以點亮接有一發(fā)光二極管,要使發(fā)光二極管以點

33、亮2s,熄,熄滅滅2s的間隔工作,的間隔工作,8253各通道端口地址分別為各通道端口地址分別為40H、42H、44H、46H,其電路硬件圖如圖所示,試編程完成以上工作。,其電路硬件圖如圖所示,試編程完成以上工作。三、8253的應(yīng)用舉例解題分析解題分析硬件連接硬件連接根據(jù)要求根據(jù)要求8253通道通道2輸出一個周期輸出一個周期為為4s的方波。從圖可知的方波。從圖可知通道通道1的的CLK1輸入時鐘周期為輸入時鐘周期為1s,若通,若通道道1工作為定時,其輸出工作為定時,其輸出最大定時最大定時時間為時間為165536s,僅僅65.5ms,因而使用一個通道達不到定時時因而使用一個通道達不到定時時間間4s的

34、要求。此時,的要求。此時,采用通道級采用通道級連的辦法,將通道連的辦法,將通道1的輸出的輸出OUT1作為通道作為通道2的輸入脈沖。的輸入脈沖。 三、8253的應(yīng)用舉例控制字設(shè)置控制字設(shè)置8253的的通道通道1工作于工作于方式方式2,其,其輸出端輸出端OUT1的輸出為相對于的輸出為相對于1MHZ頻率的分頻脈沖,若選頻率的分頻脈沖,若選定定OUT1輸出脈沖周期為輸出脈沖周期為4ms,則通道則通道1的計數(shù)初值應(yīng)為的計數(shù)初值應(yīng)為4000。周期為周期為4ms的脈沖作為通道的脈沖作為通道2的輸入,要求輸出端的輸入,要求輸出端OUT2的波形為方波且周期為的波形為方波且周期為4s,因此,因此通道通道2應(yīng)工作于

35、應(yīng)工作于方式方式3,計數(shù)初值為計數(shù)初值為1000。通道。通道1的控制字為的控制字為01100101B,通道,通道2的控制字為的控制字為10100111B。 程序編制程序編制 MOV AL,65H ; 通道通道1控制字,只讀控制字,只讀/寫高寫高8位,位,BCD計數(shù)制計數(shù)制OUT 46H,ALMOV AL,0A7H ;通道;通道2控制字,只讀控制字,只讀/寫高寫高8位,位,BCD計數(shù)制計數(shù)制OUT 46H,ALMOV AL,40H ;通道;通道1計數(shù)初值高計數(shù)初值高8位,低位,低8位自動置位自動置0OUT 42H,ALMOV AL,10H ;通道;通道2計數(shù)初值高計數(shù)初值高8位,低位,低8位自動

36、置位自動置0OUT 44H,AL 三、8253的應(yīng)用舉例51例3. 8253/8255組合應(yīng)用舉例n利用利用8255實現(xiàn)開關(guān)檢測和繼電器控制電路;實現(xiàn)開關(guān)檢測和繼電器控制電路;n當(dāng)開關(guān)閉合時,使繼電器通電動作;開關(guān)斷開當(dāng)開關(guān)閉合時,使繼電器通電動作;開關(guān)斷開時,繼電器不動作;時,繼電器不動作;n系統(tǒng)每隔系統(tǒng)每隔100ms檢測一次開關(guān)狀態(tài),實現(xiàn)相應(yīng)檢測一次開關(guān)狀態(tài),實現(xiàn)相應(yīng)的繼電器控制;的繼電器控制;n初始狀態(tài)下繼電器不動作。初始狀態(tài)下繼電器不動作。三、8253的應(yīng)用舉例CSCSA0A1WRRDDBPA0PA7PB0PB7+5V+12VK繼電器繼電器384H387H388H38BHA0A1OUT

37、1CLK12MHzCLK0OUT08259APICWRRDDB82538255中斷請求信號中斷請求信號INTRQ1R1R2D153題目分析:n使使8255的的A端口和端口和B端口均工作于方式端口均工作于方式0;n8253計數(shù)器計數(shù)器0和計數(shù)器和計數(shù)器1均工作于方式均工作于方式3,利用,利用OUT0的輸?shù)妮敵鲎鳛橛嫈?shù)器出作為計數(shù)器1的時鐘信號,其輸出頻率為的時鐘信號,其輸出頻率為2KHz, OUT1輸出頻率為輸出頻率為10Hz(周期周期100ms);nOUT1作為中斷信號,每作為中斷信號,每100ms產(chǎn)生一次中斷;產(chǎn)生一次中斷;nCPU響應(yīng)中斷后檢測開關(guān)狀態(tài),控制繼電器的動作;響應(yīng)中斷后檢測開關(guān)

38、狀態(tài),控制繼電器的動作;n8253兩個計數(shù)器的計數(shù)初值分別為:兩個計數(shù)器的計數(shù)初值分別為: CNT0:2MHz/2KHz =1000 (16位)位) CNT1:100ms/0.5ms=200 (8位)位)三、8253的應(yīng)用舉例548255的初始化MOV DX,387HMOV AL,82H ;1 00 0 0 0 1 0OUT DX,AL XOR AL,AL ;A口輸出全口輸出全0MOV DX,384HOUT DX,AL三、8253的應(yīng)用舉例558253的初始化n設(shè)置工作方式:設(shè)置工作方式:MOV DX,38BHMOV AL,36HOUT DX,ALMOV AL,56HOUT DX,AL36H

39、= 00 11 011 0 CNT0 16位位 方式方式356H = 0101 011 0 CNT1 8位位 方式方式3l置計數(shù)初值:置計數(shù)初值:MOV DX,388HMOV AX,1000OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,389HMOV AL,200OUT DX,AL三、8253的應(yīng)用舉例568255的控制程序(中斷處理)(中斷初始化程序略中斷初始化程序略)8253中斷服務(wù)程序中的中斷服務(wù)程序中的8255控制程序段如下:控制程序段如下: MOV DX,385H ;PB口地址口地址 IN AL,DX ;讀;讀PB0狀態(tài)狀態(tài) NOT AL ;變反;變反 MOV DX,384H ;輸出到繼電器;輸出到繼電器 OUT DX,AL 三、8253的應(yīng)用舉例第七章定時器計數(shù)器教學(xué)要求第七章定時器計數(shù)器教學(xué)要求1. 掌握掌握8253引腳,尤其是引腳,尤其是CLK、OUT、GATE引腳的功能引腳的功能2. 掌握掌握8253的六種工作方式、編程和在的六種工作方式、編程和在IBM PC系列機上的應(yīng)用系列機上的應(yīng)用1.1.微機系統(tǒng)中定時分為:微機系統(tǒng)中定時分為: 、 兩大類。兩大類。2.2.微機系統(tǒng)一般用微機系統(tǒng)一般用 、 獲得精確而穩(wěn)定的獲得精確而穩(wěn)定的時間基準(zhǔn)。時間基準(zhǔn)。3.82533.8253計數(shù)器能否用于定時?為什么?計

溫馨提示

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

評論

0/150

提交評論