《計(jì)數(shù)器定時(shí)器》ppt課件_第1頁
《計(jì)數(shù)器定時(shí)器》ppt課件_第2頁
《計(jì)數(shù)器定時(shí)器》ppt課件_第3頁
《計(jì)數(shù)器定時(shí)器》ppt課件_第4頁
《計(jì)數(shù)器定時(shí)器》ppt課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第9章章 計(jì)數(shù)器計(jì)數(shù)器/定時(shí)器定時(shí)器9.1 概述9.2 可編程計(jì)數(shù)器/定時(shí)器82539.3 8253的運(yùn)用9.1 概述概述在許多微機(jī)系統(tǒng)中,動(dòng)態(tài)存儲(chǔ)器的刷新定時(shí)、系統(tǒng)日歷時(shí)鐘的計(jì)時(shí)以及喇叭的聲源,都是用定時(shí)信號來產(chǎn)生的。在計(jì)算機(jī)實(shí)時(shí)控制和處置系統(tǒng)中,計(jì)算機(jī)主機(jī)需求每隔一定的時(shí)間就對處置對象進(jìn)展采樣,再對獲得的數(shù)據(jù)進(jìn)展處置,這也要用到定時(shí)信號。主要有三種方法主要有三種方法軟件定時(shí)即讓計(jì)算機(jī)執(zhí)行一個(gè)延遲程序段。經(jīng)過正確地挑選指令和安排循環(huán)次數(shù)很容易實(shí)現(xiàn)軟件定時(shí)。優(yōu)點(diǎn)是節(jié)省硬件,但主要缺陷是執(zhí)行延遲程序期間,CPU不斷被占用,降低了CPU的效率。不可編程的硬件定時(shí)可以采用小規(guī)模集成電路器件如555

2、,外接電阻和電容構(gòu)成。這樣的定時(shí)電路簡單,而且經(jīng)過改動(dòng)電阻和電容,可以使定時(shí)在一定的范圍內(nèi)改動(dòng)。但是,這種定時(shí)電路在硬件銜接好以后,定時(shí)值及定時(shí)范圍不能由程序(軟件)來控制和改動(dòng)??删幊潭〞r(shí)器電路的定時(shí)值及定時(shí)范圍可以很容易地由軟件來確定和改動(dòng),功能較強(qiáng),運(yùn)用靈敏。這種方法最突出的優(yōu)點(diǎn)是計(jì)數(shù)時(shí)不占用CPU的時(shí)間,并且假設(shè)利用定時(shí)器產(chǎn)生中斷信號,就可以建立多作業(yè)的環(huán)境,所以,可以大大提高CPU的利用率。加上計(jì)數(shù)器/定時(shí)器本身的開銷并不很大,因此,這種方法遭到廣泛運(yùn)用。9.2 可編程計(jì)數(shù)器可編程計(jì)數(shù)器/定時(shí)器定時(shí)器82538253的主要功能有:(1)有3個(gè)獨(dú)立的、功能一樣的16位減法計(jì)數(shù)器。(2)

3、每個(gè)計(jì)數(shù)器都可以按照二進(jìn)制或BCD碼進(jìn)展計(jì)數(shù)。(3)每個(gè)計(jì)數(shù)器的計(jì)數(shù)速率可高達(dá)2MHz。(4)每個(gè)計(jì)數(shù)器有6種任務(wù)方式,可由程序設(shè)置和改動(dòng)。(5)一切的輸入輸出引腳電平都與TTL電平兼容。 9.2.1 8253的內(nèi)部構(gòu)造和引腳特性9.2.2 8253的控制字9.2.3 8253的任務(wù)方式9.2.4 8253的編程 9.2.1 8253的內(nèi)部構(gòu)造和引腳特性的內(nèi)部構(gòu)造和引腳特性1.8253的內(nèi)部構(gòu)造的內(nèi)部構(gòu)造8253內(nèi)部有3個(gè)計(jì)數(shù)器,分別稱為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2,它們的構(gòu)造完全一樣。每個(gè)計(jì)數(shù)器的輸入和輸出都決議于本身所帶的控制存放器的控制字,相互之間任務(wù)完全獨(dú)立。每個(gè)計(jì)數(shù)器經(jīng)過3個(gè)引腳和外

4、部聯(lián)絡(luò),1個(gè)為時(shí)鐘輸入端CLK,1個(gè)為門控信號輸入端GATE,另1個(gè)為輸出端OUT。每個(gè)計(jì)數(shù)器內(nèi)部有1個(gè)8位控制存放器CW、1個(gè)16位計(jì)數(shù)初值存放器CR、1個(gè)16位減1計(jì)數(shù)執(zhí)行部件CE和1個(gè)16位輸出鎖存器OL。 2.8253的引腳信號和功能的引腳信號和功能9.2.2 8253的控制字的控制字1.8253控制字2.8253的初始化編程1.8253控制字控制字2.8253的初始化編程的初始化編程對8253編程常有2種操作:1)初始化寫操作2)讀當(dāng)前計(jì)數(shù)值操作1)寫操作寫操作-8253的初始化編程的初始化編程首先設(shè)置控制字。需求用幾個(gè)計(jì)數(shù)器,就要寫幾次控制字,不過控制存放器地址都一樣。寫入控制字,

5、還起到復(fù)位作用:使該計(jì)數(shù)器清零及OUT端變?yōu)橐?guī)定的初始形狀。向已選定的計(jì)數(shù)器寫入計(jì)數(shù)初值。但寫初值時(shí)要留意: 編程寫入時(shí)必需按相應(yīng)控制字中的要求順序?qū)懭搿?正確選定初值是二進(jìn)制數(shù)還是BCD碼數(shù)。由于3個(gè)計(jì)數(shù)器完全獨(dú)立,有各自的端口地址,因此對這3個(gè)計(jì)數(shù)器分別初始化編程并沒有先后次序要求。但是,對任一計(jì)數(shù)器初始化時(shí)必需先寫控制字,再寫計(jì)數(shù)初值。 2)讀當(dāng)前計(jì)數(shù)值讀當(dāng)前計(jì)數(shù)值-先鎖存,再讀操作先鎖存,再讀操作 在計(jì)數(shù)過程中,OL實(shí)時(shí)跟隨CE,并不鎖存其實(shí)時(shí)值;只需接到鎖存指令時(shí),OL立刻鎖存當(dāng)前值,不再跟隨CE變化,而同時(shí)CE仍照常繼續(xù)減l計(jì)數(shù)。CPU將鎖定值用輸入指令讀走時(shí),鎖存器自動(dòng)失鎖,又跟

6、隨CE實(shí)時(shí)變化。詳細(xì)編程為:先寫鎖存命令控制字(即設(shè)置控制字的RL1、RL0為00) 。再讀該計(jì)數(shù)器口地址。 9.2.3 8253的任務(wù)方式的任務(wù)方式8253有6種方式任務(wù)。不論用哪種方式任務(wù),都會(huì)遵守下面幾條根本規(guī)那么:控制字寫入計(jì)數(shù)器時(shí),一切的控制邏輯電路立刻復(fù)位,輸出端OUT進(jìn)入初始形狀(高電平或者低電平)。初始值寫入以后,要經(jīng)過時(shí)鐘的一個(gè)上升沿和一個(gè)下降沿,計(jì)數(shù)執(zhí)行部件才開場進(jìn)展計(jì)數(shù)。通常,在時(shí)鐘脈沖CLK的上升沿,門控信號GATE被采樣。在時(shí)鐘脈沖的下降沿,計(jì)數(shù)器作減1計(jì)數(shù)。0是計(jì)數(shù)器所能包容的最大初始值,中選用二進(jìn)制時(shí),0相當(dāng)于216;用BCD碼時(shí),0相當(dāng)于l04。 1.方式方式0

7、-可編程階躍信號發(fā)生可編程階躍信號發(fā)生器器能使OUT端產(chǎn)生正階躍信號,常被用來作為中斷懇求信號。2.方式方式1-可編程單穩(wěn)態(tài)輸出方可編程單穩(wěn)態(tài)輸出方式式能使OUT端產(chǎn)生單脈沖波形信號,單脈沖寬度可由程序設(shè)定。 3.方式方式2-可編程頻率發(fā)生器可編程頻率發(fā)生器/分頻器分頻器使OUT端輸出固定頻率的脈沖,輸出脈沖周期等于n個(gè)CLK脈沖的寬度,也相當(dāng)于對CLK信號n分頻。這種方式給自動(dòng)控制中的實(shí)時(shí)檢測、實(shí)時(shí)控制提供了實(shí)時(shí)時(shí)鐘,也可作為一個(gè)可編程脈沖速率發(fā)生器。 4.方式方式3-可編程方波發(fā)生器可編程方波發(fā)生器方式3與方式2任務(wù)原理類似,但輸出波形那么為占空比1:1或近似1:1的延續(xù)方波或矩形波。 方

8、式方式4-可編程軟件觸發(fā)的選通訊號發(fā)生器可編程軟件觸發(fā)的選通訊號發(fā)生器計(jì)數(shù)器主要靠寫入新的計(jì)數(shù)初值來觸發(fā)計(jì)數(shù)器任務(wù),所以常稱它為軟件觸發(fā)。OUT端輸出的負(fù)單脈沖信號常作為選通訊號運(yùn)用;另外還可用作定時(shí)功能,定時(shí)時(shí)間為n個(gè)CLK周期。 方式方式5-可編程硬件觸發(fā)的選通訊號發(fā)生器可編程硬件觸發(fā)的選通訊號發(fā)生器方式5與方式l任務(wù)原理類似,由門控信號GATE的上升沿觸發(fā)計(jì)數(shù)器計(jì)數(shù),但OUT端輸出波形為單脈沖選通訊號,同方式4。 7.8253任務(wù)小結(jié)任務(wù)小結(jié)8253有6種不同的任務(wù)方式,它們的特點(diǎn)不同,因此運(yùn)用的場所也就不同。8253沒有復(fù)位RESET輸入,開機(jī)加電后,其任務(wù)方式和OUT端輸出都是不確定

9、的,必需對其進(jìn)展初始化編程,初始化編程包括寫控制字和寫計(jì)數(shù)初值。先寫控制字,使OUT端輸出初始形狀電平,其中只需方式0的初始形狀為OUT端輸出低電平,其它方式的初始形狀都是OUT端輸出高電平。OUT端輸出波形都是在CLK脈沖下降沿時(shí)產(chǎn)生電平的變化。門控信號的觸發(fā)方式有二種;高電平觸發(fā),上升沿觸發(fā)。方式0、4中GATE為高電平觸發(fā);方式l、5中GATE為上升沿觸發(fā);方式2、3中GATE既可用高電平觸發(fā)也可用上升沿觸發(fā)。方式0與方式1的OUT端輸出波形類似,在計(jì)數(shù)過程中都堅(jiān)持低電平,計(jì)數(shù)終了立刻變?yōu)楦唠娖?,這種正階躍信號輸出??捎米髦袛鄳┣笮盘?。但它們的OUT端初始形狀不一樣,方式0的OUT端輸出

10、正階躍信號,方式1的OUT端輸出負(fù)單穩(wěn)態(tài)脈沖波。7.8253任務(wù)小結(jié)任務(wù)小結(jié)(續(xù)續(xù))方式2與方式3有一共同的特點(diǎn),都具有減到0后計(jì)數(shù)初值自動(dòng)再重裝功能,所以O(shè)UT端都能輸出延續(xù)的波形。它們主要的區(qū)別在于占空比不同,方式2輸出延續(xù)的負(fù)脈沖波,其中負(fù)脈沖寬僅為一個(gè)CLK脈沖,而周期為n個(gè)CLK脈沖;方式3輸出延續(xù)方波或矩形波,占空比為1:1或近似1:1。方式4與方式5的輸出波形一樣,它們主要區(qū)別是計(jì)數(shù)啟動(dòng)的觸發(fā)信號不同,方式4由寫計(jì)數(shù)初值指令的上升沿啟動(dòng)計(jì)數(shù),方式5由GATE上升沿啟動(dòng)計(jì)數(shù)。6種任務(wù)方式都受GATE門控信號的控制。在運(yùn)用計(jì)數(shù)器前,必需先寫入計(jì)數(shù)初值n。在某些任務(wù)方式下初值只能用一次

11、,如下次要用,必需重新寫入初值n;而在另外些方式下,能自動(dòng)重新裝入初值n實(shí)現(xiàn)循環(huán)計(jì)數(shù)。 方式0:寫入的初值n一次有效 方式1:寫入的初值n一次有效,但可觸發(fā)重裝 方式2:寫入的初值n能自動(dòng)重裝 方式3:寫入的初值n能自動(dòng)重裝 方式4:寫入的初值n一次有效 方式5:寫入的初值n一次有效,但可觸發(fā)重裝6種任務(wù)方式在計(jì)數(shù)過程中都可寫入新計(jì)數(shù)初值,但是在不同方式時(shí)對當(dāng)前計(jì)數(shù)及OUT輸出的影響各不一樣。 9.2.4 8253的編程的編程1.8253的初始化編程2.8253計(jì)數(shù)值的讀取編程1.8253的初始化編程的初始化編程初始化編程的步驟為:(1)寫控制字,規(guī)定計(jì)數(shù)器的任務(wù)方式。(2)寫計(jì)數(shù)初值。 假設(shè)

12、規(guī)定只寫低8位,那么寫入的為計(jì)數(shù)初值的低8位,高8位自動(dòng)置0。 假設(shè)規(guī)定只寫高8位,那么寫入的為計(jì)數(shù)初值的高8位,低8位自動(dòng)置0。 假設(shè)是16位計(jì)數(shù)初值,那么分兩次寫入,先寫入低8位,再寫入高8位。 例子例子假設(shè)要使計(jì)數(shù)器0任務(wù)在方式1,按BCD碼計(jì)數(shù),計(jì)數(shù)初值為5080,假設(shè)端口地址分別為F8HFBH,那么初始化程序?yàn)椋?MOV AL,33H OUT 0FBH,AL;向計(jì)數(shù)器0寫控制字 MOV AL,80H OUT 0F8H,AL;向計(jì)數(shù)器0寫計(jì)數(shù)初值的低8位 MOV AL,50H OUT 0F8H,AL;向計(jì)數(shù)器0寫計(jì)數(shù)初值的高8位留意:采用BCD碼計(jì)數(shù)時(shí),計(jì)數(shù)初值為十進(jìn)制數(shù),但在初始化寫

13、初值時(shí),一定要在十進(jìn)制數(shù)值后加十六進(jìn)制后綴H。 2.8253計(jì)數(shù)值的讀取編程計(jì)數(shù)值的讀取編程CPU可以用輸入指令讀取8253任一計(jì)數(shù)器的計(jì)數(shù)值,此時(shí)CPU讀到的是執(zhí)行輸入指令瞬間計(jì)數(shù)器的現(xiàn)行值。8253的計(jì)數(shù)器是16位的,要分兩次讀至CPU,在讀入過程中,計(jì)數(shù)值能夠發(fā)生變化。因此,在讀取計(jì)數(shù)值之前,需對現(xiàn)行計(jì)數(shù)值進(jìn)展鎖存。 例子例子假設(shè)要讀取計(jì)數(shù)器1的16位計(jì)數(shù)值,端口地址分別為F8HFBH,其程序?yàn)椋篗OV AL,40H OUT 0FBH,AL;向計(jì)數(shù)器1寫控制字,實(shí)現(xiàn)鎖存 IN AL,0F9H;讀低8位計(jì)數(shù)值 MOV CL,AL;保管至CL IN AL,0F9H;讀高8位計(jì)數(shù)值 MOV C

14、H ,AL;保管至CH 9.3 8253的運(yùn)用的運(yùn)用例1:利用8253和8255實(shí)現(xiàn)對揚(yáng)聲器的控制。試設(shè)計(jì)一個(gè)程序,使揚(yáng)聲器發(fā)出600Hz頻率的聲音,按下恣意鍵聲音停頓。知8253計(jì)數(shù)器2與控制口地址為42H與43H,8255PB口的地址為61H。&分析分析在PC/XT計(jì)算機(jī)系統(tǒng)中,PC機(jī)的發(fā)聲系統(tǒng)以計(jì)數(shù)器2為中心。CLK2的輸入頻率1.19MHz,改動(dòng)計(jì)數(shù)器初值可以由OUT2得到不同頻率的方波輸出。計(jì) 數(shù) 器 2 定 義 為 任 務(wù) 方 式 3 , 控 制 字 為10110110B。對于要求OUT2輸出600Hz的聲音 驅(qū) 動(dòng) 信 號 , 可 以 得 出 計(jì) 數(shù) 初 值1.19MHz

15、/600Hz=1938。 分析分析(續(xù)續(xù))另外,PC/XT計(jì)算機(jī)的發(fā)聲系統(tǒng)受8255芯片B口的兩個(gè)輸出端線PB0、PB1的控制,PB0為1,使GATE2為1,計(jì)數(shù)器2能正常計(jì)數(shù),可以控制揚(yáng)聲器何時(shí)可以發(fā)聲;PB1為1,翻開輸出控制門,可以控制揚(yáng)聲器發(fā)聲時(shí)間長短。 程序段程序段MOV AL,10110110B;對8253計(jì)數(shù)器2初始化OUT 43H,ALMOV AX, 1983;設(shè)置計(jì)數(shù)值OUT 42H, ALMOV AL,AHOUT 42H,ALIN AL, 61H;讀8255PB口當(dāng)前值OR AL, 03H;使PB1與PB0置1,其他位不變OUT 61H,AL;翻開GATE2并且允許發(fā)聲MO

16、V AH, 01HINT 21H;等待按恣意鍵IN AL,61HAND AL,0FCH;清PB1與PB0OUT 61H,AL;停頓發(fā)聲 例例2利用8253定時(shí)產(chǎn)生中斷信號。時(shí)鐘信號為2MHz,輸入8253時(shí)鐘輸入端,要求OUT0實(shí)現(xiàn)每5秒定時(shí)中斷。設(shè)8253端口地址40H43H。 分析分析8253最大初值65536,CLK=2MHz可實(shí)現(xiàn)最大時(shí)間間隔: 655360.5s=32.769ms,很明顯利用一個(gè)定時(shí)器不能到達(dá)要求。所以需求兩個(gè)計(jì)數(shù)器級聯(lián),其連線圖如下圖。一個(gè)計(jì)數(shù)器的輸出作為另一個(gè)計(jì)數(shù)器的時(shí)鐘輸入端輸入,設(shè)2個(gè)計(jì)數(shù)器都任務(wù)在方式2。 OUT0 GATE0 CLK0 OUT1 GATE1

17、 CLK18253每5秒產(chǎn)生一個(gè)脈沖+5V+5V2MHz分析分析(續(xù)續(xù))計(jì)數(shù)器1:方式2,OUT1每5ms輸出一個(gè)脈沖 計(jì)數(shù)器1初值:(2106)/(1/0.005)=10000計(jì)數(shù)器0:方式2,OUT0每5s輸出一個(gè)脈沖 計(jì)數(shù)器0初值:5/0.005=1000 程序段程序段MOV AL,01100101B;對8253計(jì)數(shù)器1初始化OUT 43H,ALMOV AL,0OUT 41H,ALMOV AL,00100101B;對8253計(jì)數(shù)器0初始化OUT 43H, ALMOV AL, 01HOUT 40H, AL例例3用8253A監(jiān)視一個(gè)消費(fèi)流水線,要求每經(jīng)過50個(gè)工件,揚(yáng)聲器響5秒,頻率為2KH

18、z。設(shè)計(jì)數(shù)器0、計(jì)數(shù)器1、控制存放器的地址為40H、41H、43H,8255A的PA口地址為80H,系統(tǒng)提供5秒延時(shí)子程序DL5S供調(diào)用。 分析分析工件從光源和光敏電阻之間經(jīng)過時(shí),晶體管的發(fā)射極將會(huì)產(chǎn)生一個(gè)脈沖,此脈沖作為8253A計(jì)數(shù)器0的計(jì)數(shù)輸入,當(dāng)計(jì)數(shù)器0計(jì)滿50后,OUT0輸出負(fù)脈沖,經(jīng)反相后,作為中斷懇求信號,即計(jì)數(shù)器0任務(wù)在方式2,采用十進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為50。在中斷效力程序中,用8253A的計(jì)數(shù)器1輸出2KHz的方波,繼續(xù)5秒后停頓。由于CLK1接5MHz時(shí)鐘,故計(jì)數(shù)器1任務(wù)在方式3(方波發(fā)生器)。計(jì)數(shù)初值5000000/2000=2500,用十進(jìn)制計(jì)數(shù)。用8255A的A端口的PA0位控制計(jì)數(shù)的啟動(dòng)和停頓。 程序段程序段主程序?yàn)椋?MOV AL,00010101B;計(jì)數(shù)器0初始化 OUT 43H,AL MOV AL,50H;計(jì)數(shù)初值 OUT 40H

溫馨提示

  • 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

提交評論