8253芯片是可編程計數(shù)�/定時�。這種芯片外形引腳都是兼容性的�8253�(nèi)部有三個計�(shù)�,分別稱為計�(shù)�0、計�(shù)�1和計�(shù)�2,他們的機構(gòu)完全相同�
每個計�(shù)器的輸入和輸出都決定于設(shè)置在控制寄存�中的控制�,互相之間工作完全獨�。每個計�(shù)器通過三個引腳和外部�(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計�(shù)器內(nèi)部有一�8位的控制寄存器,還有一�16位的計數(shù)初值寄存器CR、一個計�(shù)�(zhí)行部件CE和一個輸出鎖存器OL�
intel8253是NMOS工藝制成的可編程計數(shù)�/定時�,有幾種芯片型號,外形引腳及功能都是兼容�,只是工作的計數(shù)速率有所差異,例�8253�2.6MHz��8253-5(5MHz)
�(zhí)行部件實際上是一�16位的減法計數(shù)器,它的起始值就是初值寄存器的�,而初始值寄存器的值是通過程序�(shè)置的。輸出鎖存器的值是通過程序�(shè)置的。輸出鎖存器OL用來鎖存計數(shù)�(zhí)行部件CE的內(nèi)容,從而使CPU可以對此進行讀操作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以�8位寄存器來用�
8253具有3個獨立的計數(shù)通道,采用減1計數(shù)方式。在門控信號有效時,每輸入1個計�(shù)脈沖,通道�1次計�(shù)操作。當(dāng)計數(shù)脈沖是已知周期的時鐘信號�,計�(shù)就成為定��
一�8253�(nèi)部結(jié)�(gòu)
8253芯片�24條引�,封裝在雙列直插式陶瓷管殼內(nèi)�
1.�(shù)�(jù)總線緩沖�
�(shù)�(jù)總線緩沖器與系統(tǒng)總線連接�8位雙�,與CPU交換信息的通道。這是8253與CPU之間的數(shù)�(jù)接口,它�8位雙向三�(tài)緩沖存儲器構(gòu)�,是CPU�8253之間交換信息的必�(jīng)之路�
2.讀/寫控�
讀/寫控制分別連接系統(tǒng)的IOR#和IOW#� 由CPU控制著訪�8253的內(nèi)部通道。接收CPU送入的讀/寫控制信號, 并完成對芯片�(nèi)部各功能部件的控制功�� 因此� 它實際上�8253芯片�(nèi)部的控制�。A1A0:端口選擇信�,由CPU輸入�8253�(nèi)部有3個獨立的通道,加上控制字寄存�,構(gòu)�8253芯片�4個端�,CPU可對3個通道進行讀/寫操�3對控制字寄存器進行寫操�� �4個端口地址�2位地址碼A1和A0來選�。如表所示�
3.通道選擇
(1) CS#——片選信�,由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成�
(2) RD#、WR#——讀/寫控制命令,由CPU輸入� 低電平有�。RD#效時,CPU讀取由A1A0所選定的通道�(nèi)計數(shù)器的�(nèi)容。WR#有效�,CPU將計�(shù)值寫入各個通道的計�(shù)器中� 或者是將方式控制字寫入控制字寄存器�。CPU�8253的讀/寫操作�
4.計數(shù)通道0�
每個計�(shù)通道�(nèi)�1�16位的初值寄存器、減1計數(shù)器和1�16位的(輸出)鎖存器�8253�(nèi)部包�3個功能完全相同的通道,每個通道�(nèi)部設(shè)有一�16位計�(shù)�,可進行二進制或十進制(BCD碼)計數(shù)。采用二進制計數(shù)�� 寫入的初值范圍為0000H~0FFFFH,計�(shù)值是0000H,代�65536� 采用BCD碼計�(shù)�,寫入的初值范圍為0000~9999,計�(shù)值是0000,代�10000。與此計�(shù)器相對應(yīng),每個通道�(nèi)�(shè)有一�16位計�(shù)值鎖存器。必要時可用來鎖存計�(shù)值。(特別說明�8253計數(shù)器的值先�1再判斷是否為0,為0就中斷了,所以初始值為0,這樣�1以后,不�0,所以為的,取決于CF標志位)
�(dāng)某通道用作計數(shù)器時,應(yīng)將要求計�(shù)的次�(shù)�(yù)置到該通道的計�(shù)器中、被計數(shù)的事件應(yīng)以脈沖方式從CLK端輸�� 每輸入一個計�(shù)脈沖,計�(shù)器內(nèi)容減�1�,待計數(shù)值計到�0”� OUT端將有輸�。表示計�(shù)次數(shù)�。當(dāng)某個通道用作定時器時� 由CLK輸入一定頻率的時鐘脈沖。根�(jù)要求定時的時間長短確定所需的計�(shù)�。并�(yù)置到計數(shù)器中,每輸入一個時鐘脈�,計�(shù)器內(nèi)容減�1”, 待計�(shù)值計到�0�。OUT將有輸出,表示定時時間到。允許從CLK輸入的時鐘頻�1�2MHz范圍�(nèi)。因�,任一通道作計�(shù)器用或作定時器用,其�(nèi)部操作完全相�,區(qū)別僅在于前者是由計�(shù)脈沖進行減�1”計�(shù)� 而后者是�(nèi)時鐘脈沖進行減�1”計�(shù)。作計數(shù)器時� 要求計數(shù)的次�(shù)可直接作為計�(shù)器的初值預(yù)置到減�1”計�(shù)器中。作定時器時� 計數(shù)器的初值即定時系數(shù)�(yīng)根據(jù)要求定時的時間進行如下運算才能得到�
定時系數(shù)=需要定時的時間/時鐘脈沖周期
①設(shè)置通道:向方式控制字寄存器端口寫入方式選擇控制�,用于確定要�(shè)置的通道及工作方式;
②計�(shù)/定時:向通道寫入計數(shù)�,啟動計�(shù)操作�
③讀取當(dāng)前的計數(shù)值:向指定通道讀取當(dāng)前計�(shù)器值時�8253將計�(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計數(shù)器�,計�(shù)器則繼續(xù)作計�(shù)操作�
④計�(shù)到:�(dāng)計數(shù)器減1�0�,通過引腳OUTi向外輸出“到”的脈沖信號�
計數(shù)初值輸入存放在初值寄存器�,計�(shù)開始或重裝入時被�(fù)制到計數(shù)器中�
鎖存器在非鎖存狀�(tài),其值隨計數(shù)器的變化而變�;一旦鎖存了計數(shù)器的�(dāng)前值,直到鎖存器值被讀取后才能解除鎖存狀�(tài)�
5.方式選擇控制�
8253的初始化編程就是對其工作方式的確�。具體實�(xiàn)就是�8253上電后,由CPU�8253的控制寄存器寫入一個控制字,就可以�(guī)�8253的工作方�、計�(shù)值的長度以及計數(shù)所用的�(shù)制等,另外根�(jù)要求將計�(shù)值寫�8253的相�(yīng)通道�
8253的一個方式控制字只決定一個技�(shù)通道的工作模��
二�8253的通道工作方式
8253中各通道可有6種可供選擇的工作方式� 以完成定時、計�(shù)或脈沖發(fā)生器等多種功��8253的各種工作方式如下:
1.方式0:計�(shù)�(jié)束則中斷
工作方式0被稱為計�(shù)�(jié)束中斷方�。當(dāng)任一通道被定義為工作方式0�� OUTi輸出為低電平;若門控信號GATE為高電平,當(dāng)CPU利用輸出指令向該通道寫入計數(shù)值WR#有效�,OUTi仍保持低電平,然后計�(shù)器開始減�1”計�(shù)� 直到計數(shù)值為�0”,此刻OUTi將輸出由低電平向高電平跳�,可用它向CPU�(fā)出中斷請�,OUTi端輸出的高電平一直維持到下次再寫入計�(shù)值為��
在工作方�0情況�,門控信號GATE用來控制減�1”計�(shù)操作是否進行。當(dāng)GATE=1時,允許減�1”計�(shù);GATE=0�,禁止減�1”計�(shù)� 計數(shù)值將保持GATE有效時的�(shù)值不�� 待GATE重新有效�,減�1”計�(shù)繼續(xù)進行�
顯然,利用工作方�0既可完成計數(shù)功能� 也可完成定時功能。當(dāng)用作計數(shù)器時,應(yīng)將要求計�(shù)的次�(shù)�(yù)置到計數(shù)器中,將要求計數(shù)的事件以脈沖方式從CLKi端輸�� 由它對計�(shù)器進行減�1”計�(shù),直到計�(shù)值為0,此刻OUTi輸出正跳�� 表示計數(shù)次數(shù)到。當(dāng)用作定時器時,應(yīng)把根�(jù)要求定時的時間和CLKi的周期計算出定時系數(shù),預(yù)置到計數(shù)器中。從CLKi,輸入的�(yīng)是一定頻率的時鐘脈沖,由它對計數(shù)器進行減�1”計�(shù)� 定時時間從寫入計�(shù)值開始,到計�(shù)值計到�0”為�,這時OUTi輸出正跳變,表示定時時間��
有一點需要說明,任一通道工作在方�0情況�� 計數(shù)器初值一次有效,�(jīng)過一次計�(shù)或定時后如果需要繼�(xù)完成計數(shù)或定時功�,必須重新寫入計�(shù)器的初值�
2.方式1:單脈沖�(fā)生器
工作方式1被稱作可編程單脈沖發(fā)生器。進入這種工作方式� CPU裝入計數(shù)值n后OUTi輸出高電�� 不管此時的GATE輸入是高電平還是低電平, 都不開始減�1”計�(shù),必須等到GATE由低電平向高電平跳變形成一個上升沿�,計�(shù)過程才會開始。與此同�,OUTi輸出由高電平向低電平跳變,形成了輸出單脈沖的前沿,待計數(shù)值計到�0”, OUTi輸出由低電平向高電平跳變,形成輸出單脈沖的后沿, 因此,由方式l所能輸出單脈沖的寬度為CLKi周期的n��
如果在減�1”計�(shù)過程�� GATE由高電平跳變?yōu)榈碗�?,這并不影響計�(shù)過程,仍繼續(xù)計數(shù);但若重新遇到GATE的上升沿,則從初值開始重新計�(shù)� 其效果會使輸出的單脈沖加�,如教材�9-22(b)中的�2個單脈沖�
這種工作方式�,計�(shù)值也是一次有效,每輸入一次計�(shù)�,只�(chǎn)生一個負極性單脈沖�
3.方式2:速率波發(fā)生器
工作方式2被稱作速率波發(fā)生器。進入這種工作方式� OUTi輸出高電平,裝入計數(shù)值n后如果GATE為高電平,則立即開始計數(shù),OUTi保持為高電平不變� 待計�(shù)值減到�1”和�0”之�� OUTi將輸出寬度為一個CLKi周期的負脈沖,計�(shù)值為�0”時,自動重新裝入計�(shù)初值n,實�(xiàn)循環(huán)計數(shù),OUTi將輸出一定頻率的負脈沖序�� 其脈沖寬度固定為一個CLKi周期� 重復(fù)周期為CLKi周期的n倍�
如果在減�1”計�(shù)過程�,GATE�?yōu)闊o效(輸入0電平�,則暫停減�1”計�(shù),待GATE恢復(fù)有效�,從初值n開始重新計數(shù)。這樣會改變輸出脈沖的速率�
如果在操作過程中要求改變輸出脈沖的速率,CPU可在任何時�,重新寫入新的計�(shù)�� 它不會影響正在進行的減�1”計�(shù)過程,而是從下一個計�(shù)操作用期開始按新的計�(shù)值改變輸出脈沖的速率�
4.方式3:方波發(fā)生器
工作方式3被稱作方波發(fā)生器。任一通道工作在方�3� 只在計數(shù)值n為偶�(shù),則可輸出重�(fù)周期為n、占空比�1�1的方��
進入工作方式3,OUTi輸出低電�� 裝入計數(shù)值后,OUTi立即跳變?yōu)楦唠娖健H绻�?dāng)GATE為高電平� 則立即開始減�1”計�(shù),OUTi保持為高電平,若n為偶�(shù),則�(dāng)計數(shù)值減到n/2�,OUTi跳變?yōu)榈碗�?,一直保持到�?shù)值為�0�,系�(tǒng)才自動重新置入計�(shù)值n,實�(xiàn)循環(huán)計數(shù)。這時OUTi端輸出的周期為n×CLKi周期,占空比�1:1的方波序�� 若n為奇�(shù)� 則OUTi端輸出周期為n×CLKi周期,占空比�((n+1)/2)/((n-1)/2)的近似方波序��
如果在操作過程中� GATE�?yōu)闊o�,則暫停減�1”計�(shù)過程,直到GATE再次有效,重新從初值n開始減“l(fā)”計�(shù)�
如果要求改變輸出方波的速率� 則CPU可在任何時候重新裝入新的計�(shù)初值n,并從下一個計�(shù)操作周期開始改變輸出方波的速率�
5.方式4:軟件觸�(fā)方式計數(shù)
工作方式4被稱作軟件觸�(fā)方式。進入工作方式4,OUTi輸出高電�� 裝入計數(shù)值n�� 如果GATE為高電平,則立即開始減�1”計�(shù),直到計�(shù)值減到�0”為�,OUTi輸出寬度為一個CLKi周期的負脈沖。由軟件裝入的計�(shù)值只有一次有效,如果要繼�(xù)操作� 必須重新置入計數(shù)初值n。如果在操作的過程中,GATE�?yōu)闊o�,則停止減�1”計�(shù)� 到GATE再次有效�,重新從初值開始減�1”計�(shù)�
顯然,利用這種工作方式可以完成定時功能,定時時間從裝入計數(shù)值n開始,則OUTi輸出負脈沖(表示定時時間到),其定時時間=n×CLK周期� 這種工作方式也可完成計數(shù)功能,它要求計數(shù)的事件以脈沖的方式從CLKi輸入,將計數(shù)次數(shù)作為計數(shù)初值裝入后,由CLKi端輸入的計數(shù)脈沖進行減�1”計�(shù),直到計�(shù)值為�0�,由OUTt端輸出負脈沖(表示計�(shù)次數(shù)到)� �(dāng)然也可利用OUTj向CFU�(fā)出中斷請求� 因此工作方式4與工作方�0很相�,只是方�0在OUTi端輸出正階躍信號、方�4在OUTi端輸出負脈沖信號�
6.方式5:硬件觸�(fā)方式計數(shù)
工作方式5被稱為硬件觸�(fā)方式。進入工作方式5� OUTi輸出高電�� 硬件觸發(fā)信號由GATE端引�� 因此,開始時GATE�(yīng)輸入�0� 裝入計數(shù)初值n后,減�1”計�(shù)并不工作,一定要等到硬件觸發(fā)信號由GATE端引入一個正階躍信號,減�1”計�(shù)才會開始,待計數(shù)值計到�0�� OUTi將輸出負脈沖,其寬度固定為一個CLKi周期,表示定時時間到或計�(shù)次數(shù)到�
這種工作方式�,當(dāng)計數(shù)值計到�0”后� 系統(tǒng)將自動重新裝入計�(shù)值n,但并不開始計數(shù)� 一定要等到由GATE端引入的正跳�,才會開始進行減�1”計�(shù)� 因此這是一種完全由GATE端引入的觸發(fā)信號控制下的計數(shù)或定時功�。如果由CLKi輸入的是一定頻率的時鐘脈沖,那么可完成定時功能,定時時間從GATE上升沿開始,到OUTi端輸出負脈沖�(jié)�。如果從CLKi端輸入的是要求計�(shù)的事�,則可完成計�(shù)功能,計�(shù)過程從GATE上升沿開�,到OUTi輸出負脈沖結(jié)束。GATE可由外部電路或控制現(xiàn)場產(chǎn)�,故硬件觸發(fā)方式由此而得名�
如果需要改變計�(shù)初�� CPU可在任何時候用輸出指令裝入新的計數(shù)初值m,它將不影響正在進行的操作過�� 而是到下一個計�(shù)操作周期才會按新的計�(shù)值進行操作�
從上述各工作方式可看�,GATE作為各通道的門控信�,對于各種不同的工作方式,它所起的作用各不相同。在8253的應(yīng)用中,必須正確使用GATE信號,才能保證各通道的正常操作�
7.讀取計�(shù)器的�(dāng)前�
⑴直接讀計數(shù)器:輸出鎖存器在非鎖存狀�(tài)會跟隨計�(shù)器計�(shù)的變化而變�,直接讀計數(shù)器是從鎖存器得到計數(shù)器的�(dāng)前值。但由于計數(shù)器處于工作狀�(tài),讀出值不一定能�(wěn)��
⑵先鎖存再讀取:
①通過方式選擇控制字對指定通道(SC1、SC0)的計�(shù)值鎖入鎖存器(RL1RL0=00)� 鎖存器一旦鎖存了�(dāng)前計�(shù)值,就不再隨計數(shù)器變化直到被讀��
②讀計數(shù)器通道(有鎖存器)�
維庫電子�,電子知�,一查百通!
已收錄詞�168810�