第八章可編程計數(shù)器定時器8253_第1頁
第八章可編程計數(shù)器定時器8253_第2頁
第八章可編程計數(shù)器定時器8253_第3頁
第八章可編程計數(shù)器定時器8253_第4頁
第八章可編程計數(shù)器定時器8253_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、一、8253結(jié)構(gòu)及引腳功能結(jié)構(gòu)及引腳功能二、二、8253工作方式工作方式三、三、8253初始化初始化 定時定時/ /計數(shù)器的作用計數(shù)器的作用 生產(chǎn)線上統(tǒng)計產(chǎn)品的數(shù)目生產(chǎn)線上統(tǒng)計產(chǎn)品的數(shù)目-計數(shù)器計數(shù)器 系統(tǒng)的動態(tài)存儲器刷新系統(tǒng)的動態(tài)存儲器刷新-定時器定時器 系統(tǒng)時鐘計時系統(tǒng)時鐘計時-定時器定時器 揚聲器的頻率源揚聲器的頻率源-定時器定時器 如何定時如何定時 軟件定時,由軟件定時,由cpucpu執(zhí)行指令序列所花費的時間來構(gòu)成執(zhí)行指令序列所花費的時間來構(gòu)成一定的時間間隔,從而達到定時的目的。優(yōu)點是節(jié)省一定的時間間隔,從而達到定時的目的。優(yōu)點是節(jié)省硬件;缺點是執(zhí)行程序期間硬件;缺點是執(zhí)行程序期間

2、cpucpu一直被占一直被占 用,降低用,降低了了cpucpu效率。效率。 例如:例如:mov cx , mov cx , h h here: loop here here: loop here 硬件定時,要用額外的硬件硬件定時,要用額外的硬件計數(shù)計數(shù)/ /定時器,但可提定時器,但可提高高cpucpu的利用率。的利用率。一、一、82538253結(jié)構(gòu)及引腳功能結(jié)構(gòu)及引腳功能1.1.結(jié)構(gòu):由四部分組成。結(jié)構(gòu):由四部分組成。數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器8d0d7內(nèi)部總線內(nèi)部總線clk0計數(shù)器計數(shù)器0gate0out0計數(shù)器計數(shù)器1clk1gate1out1計數(shù)器計數(shù)器2clk2gate2out2讀讀

3、/寫邏輯寫邏輯a0a1wrrdcs控制字寄存器控制字寄存器(1) 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器u 這是這是82538253與與cpucpu的數(shù)據(jù)總線的數(shù)據(jù)總線(d(dd d) )連接的連接的8 8位雙向三態(tài)緩沖器。位雙向三態(tài)緩沖器。u cpucpu用輸入輸出指令對用輸入輸出指令對82538253進行讀寫操作時的所有信息都通過這個緩沖器進行讀寫操作時的所有信息都通過這個緩沖器傳送。傳送。(2) 讀讀/寫邏輯寫邏輯u 這是這是82538253內(nèi)部操作的控制電路,它從系統(tǒng)控制總線上接收輸入信號,然內(nèi)部操作的控制電路,它從系統(tǒng)控制總線上接收輸入信號,然后轉(zhuǎn)換成后轉(zhuǎn)換成82538253內(nèi)部操作的各種控制

4、信號。內(nèi)部操作的各種控制信號。(3)控制字寄存器)控制字寄存器u 當?shù)刂沸盘柈數(shù)刂沸盘朼1a1和和a0a0都為都為1 1時,訪問控制字寄存器。時,訪問控制字寄存器。u 控制字寄存器從數(shù)據(jù)總線上接收控制字寄存器從數(shù)據(jù)總線上接收cpucpu送來的控制字,并由控制字的送來的控制字,并由控制字的d7d7、d6d6兩位的編碼決定控制字寫入哪個通道的控制寄存器中去。兩位的編碼決定控制字寫入哪個通道的控制寄存器中去。u 由寄存在每個通道內(nèi)的控制寄存器的內(nèi)容決定該通道的工作方式,選擇計由寄存在每個通道內(nèi)的控制寄存器的內(nèi)容決定該通道的工作方式,選擇計數(shù)器是按二進制還是數(shù)器是按二進制還是bcdbcd數(shù)計數(shù),并確定

5、每個計數(shù)器初值的寫入順序。數(shù)計數(shù),并確定每個計數(shù)器初值的寫入順序。(4) 計數(shù)器計數(shù)器0、計數(shù)器、計數(shù)器1、計數(shù)器、計數(shù)器2u 這是三個計數(shù)器這是三個計數(shù)器/ /定時器通道,每一個都由定時器通道,每一個都由1616位的可設置計數(shù)初值的減法位的可設置計數(shù)初值的減法計數(shù)器構(gòu)成。計數(shù)器構(gòu)成。u 三個通道的操作是完全獨立的。每個通道都有兩個輸入引腳三個通道的操作是完全獨立的。每個通道都有兩個輸入引腳clkclk和和gategate以以及一個輸出引腳及一個輸出引腳outout。每個通道(計數(shù)器)是每個通道(計數(shù)器)是16位二進制計數(shù)器,每個計數(shù)器中有位二進制計數(shù)器,每個計數(shù)器中有3個寄存器。個寄存器。(

6、1)初值寄存器:初始化時寫入該計數(shù)器的初始值。)初值寄存器:初始化時寫入該計數(shù)器的初始值。(2)減一計數(shù)器:初值寄存器寫入減一計數(shù)器,減)減一計數(shù)器:初值寄存器寫入減一計數(shù)器,減1到到0為止。為止。(3)計數(shù)值鎖存器:在計數(shù)器工作的過程中,跟隨計數(shù)值的)計數(shù)值鎖存器:在計數(shù)器工作的過程中,跟隨計數(shù)值的變化,在接收到變化,在接收到cpu發(fā)來的讀計數(shù)值命令時,用以鎖存計發(fā)來的讀計數(shù)值命令時,用以鎖存計數(shù)值,供數(shù)值,供cpu讀取,讀取完畢之后,輸出鎖存器又跟隨減讀取,讀取完畢之后,輸出鎖存器又跟隨減1計數(shù)器變化。計數(shù)器變化。 &clkgate16位當前計數(shù)值鎖存器位當前計數(shù)值鎖存器16位減一

7、計數(shù)器位減一計數(shù)器16位計數(shù)初值寄存器位計數(shù)初值寄存器out(減(減1至至0時)時)msblsb裝入初值裝入初值lsbmsb鎖存后讀鎖存后讀出當前值出當前值u因因82538253是減計數(shù)器,故計數(shù)初值越大,則計數(shù)減至是減計數(shù)器,故計數(shù)初值越大,則計數(shù)減至0 0所用時所用時間(即定時時間)就越長,但由于間(即定時時間)就越長,但由于82538253是先減是先減1 1,再判是否,再判是否到到0 0,故最長的定時時間是設置計數(shù)初值為,故最長的定時時間是設置計數(shù)初值為0 0,代表,代表6553665536。u十進制計數(shù)時范圍是十進制計數(shù)時范圍是000100011000010000,其中當計數(shù)初值寄存器

8、,其中當計數(shù)初值寄存器為為0000h0000h代表十進制數(shù)代表十進制數(shù)1000010000。 u計數(shù)取值范圍在二進制計數(shù)時是計數(shù)取值范圍在二進制計數(shù)時是0001h0001h10000h10000h,其中,其中10000h10000h代表代表6553665536,在計數(shù)初值寄存器中的值是,在計數(shù)初值寄存器中的值是0000h0000h。 u可以從可以從82538253中讀出當前計數(shù)值,但其讀出過程是:先將當中讀出當前計數(shù)值,但其讀出過程是:先將當前計數(shù)初值寫入到輸出鎖存器,然后再從輸出鎖存器中讀前計數(shù)初值寫入到輸出鎖存器,然后再從輸出鎖存器中讀出,同時,出,同時,82538253還在不停地進行減計

9、數(shù),雖然輸出鎖存器還在不停地進行減計數(shù),雖然輸出鎖存器中的值不變,但減計數(shù)單元卻在不斷地減計數(shù),因此,從中的值不變,但減計數(shù)單元卻在不斷地減計數(shù),因此,從輸出鎖存器中讀出的值并不一定是真正的當前計數(shù)值。輸出鎖存器中讀出的值并不一定是真正的當前計數(shù)值。2.2.引腳引腳3.功能功能 (1)(1)具有三個獨立的具有三個獨立的1616位計數(shù)通道;位計數(shù)通道; (2)(2)每個計數(shù)通道可按二進制或二十進制計數(shù);每個計數(shù)通道可按二進制或二十進制計數(shù); (3)(3)具有計數(shù)和定時功能,基于減具有計數(shù)和定時功能,基于減1 1計數(shù)工作;計數(shù)工作; (4)(4)定時器減為定時器減為0 0后,可自動裝入定時常數(shù)初值

10、,并產(chǎn)生輸出后,可自動裝入定時常數(shù)初值,并產(chǎn)生輸出信號;信號; (5)(5)每個計數(shù)通道有六種工作方式;每個計數(shù)通道有六種工作方式; (6)8253(6)8253實質(zhì)上是計數(shù)器,但計數(shù)器的脈沖輸入端如果送定時實質(zhì)上是計數(shù)器,但計數(shù)器的脈沖輸入端如果送定時脈沖就可以做定時器用。作為計數(shù)器時減到脈沖就可以做定時器用。作為計數(shù)器時減到0 0之后輸出一個信之后輸出一個信號,此時計數(shù)過程結(jié)束;作為定時器時,減到號,此時計數(shù)過程結(jié)束;作為定時器時,減到0 0后輸出一個信后輸出一個信號接著自動裝入計數(shù)初值并開始下一個周期的計時。號接著自動裝入計數(shù)初值并開始下一個周期的計時。二、初始化二、初始化在使用在使用8

11、253時都要由時都要由cpu對對8253寫入控制字,以確定寫入控制字,以確定8253的的工作方式,這個設置過程稱為初始化。工作方式,這個設置過程稱為初始化。初始化有兩個控制命令字:方式選擇控制字和計數(shù)常數(shù)字。初始化有兩個控制命令字:方式選擇控制字和計數(shù)常數(shù)字。方式選擇字寫入控制口,計數(shù)常數(shù)字寫入相應通道內(nèi)。方式選擇字寫入控制口,計數(shù)常數(shù)字寫入相應通道內(nèi)。例例1 1:將計數(shù)器:將計數(shù)器2 2初始化為工作方式初始化為工作方式3 3,計數(shù)初值為,計數(shù)初值為533h533h,為二進,為二進制計數(shù)方式,設寄存器地址為制計數(shù)方式,設寄存器地址為40h-43h40h-43h??刂谱郑嚎刂谱郑?0110110

12、 b6h10110110 b6h mov mov al al,0b6h0b6h ;計數(shù)器;計數(shù)器2 2,先低后高字節(jié),先低后高字節(jié) outout 43h 43h,alal;寫命令字;寫命令字 movmov ax ax,533h533h ;計數(shù)初值;計數(shù)初值 outout 42h 42h,alal;寫計數(shù)值低位;寫計數(shù)值低位 movmov al al,ahah out out 42h 42h,alal;寫計數(shù)值高位;寫計數(shù)值高位例例2 2:82538253工作為計數(shù)器工作為計數(shù)器1 1,方式,方式3 3,初值為,初值為4020d4020d,設寄存器地,設寄存器地址為址為40h-43h40h-43

13、h??刂谱郑嚎刂谱郑?1110111 77h01110111 77h mov al mov al,77h77h out 43h out 43h,al al ;寫計數(shù)器;寫計數(shù)器 1 1 的控制字的控制字 mov almov al,20h20h out 41h out 41h,al al ;寫計數(shù)器;寫計數(shù)器 1 1 的低的低 8 8 位初值位初值 mov almov al,40h40h out 41h out 41h,al al ;寫計數(shù)器;寫計數(shù)器 1 1 的高的高 8 8 位初值位初值例例3 3:計數(shù)器:計數(shù)器0 0,工作在模式,工作在模式2 2,計數(shù)初值和輸出鎖存器僅使用低,計數(shù)初值和輸

14、出鎖存器僅使用低8 8位,初值為位,初值為100100,計數(shù)值為二進制格式,設寄存器地址為,計數(shù)值為二進制格式,設寄存器地址為70h-73h70h-73h。 mov almov al,00010100b 00010100b ;控制字;控制字 out 73hout 73h,alal mov al mov al,100 100 ;計數(shù)初值;計數(shù)初值 out 70hout 70h,alal 例例4 4:計數(shù)器:計數(shù)器1 1,工作在模式,工作在模式1 1,初值為,初值為12341234,先寫入低,先寫入低8 8位,再位,再寫高寫高8 8位,計數(shù)值為二進制,設寄存器地址為位,計數(shù)值為二進制,設寄存器地址

15、為70h-73h70h-73h。 mov almov al,01110010b01110010b;控制字;控制字 out 73hout 73h,al al mov axmov ax,1234h1234h ;12341234裝入裝入axax轉(zhuǎn)換二進制轉(zhuǎn)換二進制 out 71hout 71h,alal ;計數(shù)初值低;計數(shù)初值低8 8位位 mov almov al,ahah out 71hout 71h,alal ;計數(shù)初值高;計數(shù)初值高8 8位位 例例5 5:讀取:讀取82538253通道中的計數(shù)值通道中的計數(shù)值 82538253可用控制命令來讀取相應通道的計數(shù)值,由于計數(shù)值是可用控制命令來讀取相

16、應通道的計數(shù)值,由于計數(shù)值是1616位的,而讀取的瞬時值,要分兩次讀取,所以在讀取計數(shù)位的,而讀取的瞬時值,要分兩次讀取,所以在讀取計數(shù)值之前,要用鎖存命令,將相應通道的計數(shù)值鎖存在鎖存器值之前,要用鎖存命令,將相應通道的計數(shù)值鎖存在鎖存器中,然后分兩次讀入,先讀低字節(jié),后讀高字節(jié)。中,然后分兩次讀入,先讀低字節(jié),后讀高字節(jié)。 當控制字中,當控制字中,d5d5、d4=00d4=00時,控制字的作用是將相應通道的時,控制字的作用是將相應通道的計數(shù)值鎖存的命令,鎖存計數(shù)值在讀取完成之后,自動解鎖。計數(shù)值鎖存的命令,鎖存計數(shù)值在讀取完成之后,自動解鎖。 如要讀通道如要讀通道1 1的的1616位計數(shù)器

17、,編程如下:地址位計數(shù)器,編程如下:地址f8hf8hfehfeh。 mov almov al,40h40h; out 0fehout 0feh,al al ;鎖存計數(shù)值;鎖存計數(shù)值 in alin al,0fah0fah mov clmov cl,alal;低八位;低八位 in alin al,0fah0fah; mov chmov ch,alal;高八位;高八位三、工作方式三、工作方式8253輸出(軟件控制)輸出(軟件控制)u方式方式1:重復觸發(fā)的單穩(wěn)輸出(硬件控制):重復觸發(fā)的單穩(wěn)輸出(硬件控制)u方式方式2:分頻器(軟件控制):分頻器(軟件控制)u方式方式3:方波發(fā)生器(軟件控制):方波

18、發(fā)生器(軟件控制)u方式方式4:選通信號發(fā)生器(軟件觸發(fā)):選通信號發(fā)生器(軟件觸發(fā))u方式方式5:選通信號發(fā)生器(硬件觸發(fā)):選通信號發(fā)生器(硬件觸發(fā)) 方式方式2 2:分頻器:分頻器u計數(shù)器減到計數(shù)器減到1 1時,時,outout僅輸出一個僅輸出一個clkclk脈寬的低電平,然后自脈寬的低電平,然后自動裝入重新計數(shù)。動裝入重新計數(shù)。ugategate由低變高會重新裝入初值。由低變高會重新裝入初值。u新初值在下次計數(shù)才起作用。新初值在下次計數(shù)才起作用。特點:特點:(1 1)不用重新設置計數(shù)值,通道可以連續(xù)工作。)不用重新設置計數(shù)值,通道可以連續(xù)工作。 (2 2)以)以gategate信號停止

19、計數(shù)。在信號停止計數(shù)。在gategate變成高電平后的下一個變成高電平后的下一個clkclk脈沖,計數(shù)器恢復原來的初值,重新計數(shù)。脈沖,計數(shù)器恢復原來的初值,重新計數(shù)。 (3 3)改變計數(shù)值不是立即有效,)改變計數(shù)值不是立即有效,只有當計數(shù)值減至只有當計數(shù)值減至0 0時,下一時,下一輪計數(shù)過程按新初值進行。輪計數(shù)過程按新初值進行。方式方式2 2的初始化:設計數(shù)器工作于方式的初始化:設計數(shù)器工作于方式2 2,二進制計數(shù),計數(shù)初,二進制計數(shù),計數(shù)初值值0304h0304h。端口地址。端口地址0e0h0e0h0e3h0e3h。2.2.方式方式3 3:方波發(fā)生器:方波發(fā)生器u 與方式與方式2 2類似,

20、但其輸出方波或準方波。類似,但其輸出方波或準方波。u 計數(shù)值完成一半時,使計數(shù)值完成一半時,使outout變低,直到計數(shù)任務全部完成為止,變低,直到計數(shù)任務全部完成為止,outout恢恢復為高。復為高。u 初值為偶數(shù)時,每次減初值為偶數(shù)時,每次減1 1,直至,直至n/2n/2時時outout輸出變?yōu)榈碗娖剑缓笥謴妮敵鲎優(yōu)榈碗娖?,然后又從初值開始,每次減初值開始,每次減1 1,直至,直至n/2n/2時時outout輸出變?yōu)楦唠娖健]敵鲎優(yōu)楦唠娖?。u 初值為奇數(shù)時,每次減初值為奇數(shù)時,每次減1 1,減,減(n+1)/2(n+1)/2次時,次時, outout輸出變?yōu)榈碗娖?,然輸出變?yōu)榈碗娖?,然?/p>

21、從后從(n-1)/2(n-1)/2開始,每次減開始,每次減1 1,直至為,直至為0 0,所以有,所以有(n+1)/2(n+1)/2個脈寬的高電個脈寬的高電平平,(n-1)/2,(n-1)/2個脈寬的低電平。個脈寬的低電平。u gategate由低變高時,重新開始計數(shù)。由低變高時,重新開始計數(shù)。特點:特點:(1 1)gategate信號由低變高可以使計數(shù)過程重新開始。信號由低變高可以使計數(shù)過程重新開始。 (2 2)改變計數(shù)初值并不影響現(xiàn)行的計數(shù)過程。)改變計數(shù)初值并不影響現(xiàn)行的計數(shù)過程。方式方式3 3的初始化:計數(shù)器的初始化:計數(shù)器0 0工作于方式工作于方式3 3,二進制計數(shù),初值為,二進制計數(shù)

22、,初值為4 4。端口地址為。端口地址為0e0h0e0h0e3h0e3h。movmovalal,16h16h;控制字;控制字outout0e3h0e3h,alalmovmovalal,4 4;初值;初值outout0e0h0e0h,alal方式方式2 2與方式與方式3 3的比較(波形輸出)的比較(波形輸出) 相同點相同點均輸出連續(xù)周期波形,預置初值可自動重裝入均輸出連續(xù)周期波形,預置初值可自動重裝入 不同點不同點方式方式 2 2 輸出連續(xù)負脈沖周期波形輸出連續(xù)負脈沖周期波形方式方式 3 3 輸出連續(xù)方波周期波形輸出連續(xù)方波周期波形方式方式3 3方式方式2 2用通道用通道0 0產(chǎn)生周期為產(chǎn)生周期為

23、1ms1ms的方波,其時鐘輸入端輸入的方波,其時鐘輸入端輸入1mhz1mhz的方波脈沖信號。的方波脈沖信號。設設82538253端口地址為端口地址為210h-213h210h-213h,寫出初始化程序段。,寫出初始化程序段。clk0clk0計數(shù)脈沖的周期為計數(shù)脈沖的周期為1/1mhz=1s1/1mhz=1s計數(shù)值計數(shù)值=1ms/1s=1000=1ms/1s=1000初始化程序:初始化程序:mov al, 00110110bmov al, 00110110bmov dx, 213hmov dx, 213hout dx, alout dx, almov ax, 1000mov ax, 1000mov dx, 210hmov dx, 210hout dx, alout dx, almov al, ahmov al, ahout dx, alout dx, al電子鐘電子鐘82538253初始化

溫馨提示

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

評論

0/150

提交評論