第7章計(jì)數(shù)器定時(shí)器.ppt_第1頁(yè)
第7章計(jì)數(shù)器定時(shí)器.ppt_第2頁(yè)
第7章計(jì)數(shù)器定時(shí)器.ppt_第3頁(yè)
第7章計(jì)數(shù)器定時(shí)器.ppt_第4頁(yè)
第7章計(jì)數(shù)器定時(shí)器.ppt_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,第六章 計(jì)數(shù)器/定時(shí)器,在微機(jī)系統(tǒng)或微機(jī)應(yīng)用系統(tǒng),特別是控制系統(tǒng)中,經(jīng)常有計(jì)數(shù)和計(jì)時(shí)的要求。如汽車(chē)?yán)锍瘫?的公里計(jì)數(shù),電話通話時(shí)間計(jì)時(shí)等。這些應(yīng)用在計(jì)算機(jī)中的處理方法不外乎兩種:硬件方法和軟件方法。 軟件定時(shí)就是根據(jù)所需要的時(shí)間常數(shù)來(lái)設(shè)計(jì)一個(gè)延遲子程序,這樣作的優(yōu)點(diǎn)是節(jié) 省硬件,但耗費(fèi)CPU的資源較多,降低了CPU效率,且編寫(xiě)軟件略顯麻煩,通常延遲時(shí)間較小且重復(fù) 次數(shù)有限的情況下,使用該方法。 硬件定時(shí)就要用到計(jì)數(shù)器/定時(shí)器,其優(yōu)點(diǎn)是不占用CPU時(shí)間,且利用計(jì)數(shù)器/定 時(shí)器產(chǎn)生中斷信號(hào),就可以建立多作業(yè)環(huán)境,以提高CPU效率,由于計(jì)數(shù)器/定時(shí)器開(kāi)銷(xiāo)不大,因此的 到了廣泛應(yīng)用。,2,第一節(jié)

2、計(jì)數(shù)與定時(shí),一. 計(jì)數(shù)與定時(shí)的概念 在計(jì)算機(jī)處理計(jì)數(shù)問(wèn)題時(shí),首先要將計(jì)數(shù)量轉(zhuǎn)化為電脈沖的形式,計(jì)數(shù)的任務(wù)即是對(duì)某電脈沖的出現(xiàn)次數(shù)進(jìn)行度量的工作。引發(fā)計(jì)數(shù)工作的電脈沖稱(chēng)為計(jì)數(shù)脈沖。 在進(jìn)行計(jì)數(shù)時(shí),計(jì)數(shù)脈沖的出現(xiàn)與否受外界控制,不具有一定的規(guī)律性,所以要求計(jì)數(shù)系統(tǒng)具有良好的實(shí)時(shí)性,即無(wú)論計(jì)數(shù)脈沖出現(xiàn)的快慢,計(jì)數(shù)系統(tǒng)必須準(zhǔn)確記錄計(jì)數(shù)脈沖的出現(xiàn)。 在計(jì)算機(jī)系統(tǒng)中,更常用的是定時(shí)工作(計(jì)時(shí)和延時(shí)) 計(jì)時(shí)即對(duì)兩事物發(fā)生的時(shí)間間隔進(jìn)行計(jì)量; 延時(shí)是對(duì)某事件發(fā)生后的時(shí)間進(jìn)行計(jì)量,直到某個(gè)時(shí)間間隔后發(fā)生另一事件。 時(shí)間計(jì)量 是在統(tǒng)一的時(shí)間標(biāo)準(zhǔn)上進(jìn)行的,這個(gè)標(biāo)準(zhǔn)時(shí)間通常由振蕩器一類(lèi)電路提供的恒定頻率的電脈沖來(lái)?yè)?dān)

3、當(dāng),這樣定時(shí)的工作就可轉(zhuǎn)化為對(duì)具有恒定頻率的計(jì)數(shù)脈沖進(jìn)行技術(shù)的工作。,3,二. 計(jì)數(shù)方法與計(jì)數(shù)器 通常按計(jì)數(shù)的實(shí)現(xiàn)方法可將計(jì)數(shù)器操作分為增量計(jì)數(shù)器和減量計(jì)數(shù)器兩種。增量計(jì)數(shù)器是指當(dāng)計(jì)數(shù)脈沖到來(lái)后,計(jì)數(shù)的計(jì)數(shù)值加“1”;減量計(jì)數(shù)器反之。 增量計(jì)數(shù)器常用于對(duì)事件的累計(jì),而減量計(jì)數(shù)常用于限量計(jì)數(shù)。增量計(jì)數(shù)關(guān)心的是當(dāng)前計(jì)數(shù)的量,減量計(jì)數(shù) 關(guān)心的是計(jì)數(shù)終到的時(shí)刻。 如人們?yōu)榱肆私馄?chē)行駛的里程而為汽車(chē)設(shè)置了里程表,使用里程表是為了了解當(dāng)前汽車(chē)以運(yùn)行的公里數(shù), 這時(shí)就需要增量計(jì)數(shù)器;在控制藥片裝瓶的藥品包裝機(jī)中,需要記錄藥片裝入的數(shù)量,我們關(guān)心的是藥品裝 滿的時(shí)刻,以便換瓶,此時(shí)可采用減量計(jì)數(shù)器。,4,在

4、計(jì)算機(jī)系統(tǒng)中,計(jì)數(shù)操作可采用軟件實(shí)現(xiàn)也可采用硬件實(shí)現(xiàn),或者將二者結(jié)合使用。 軟件實(shí)現(xiàn)計(jì)數(shù)的方法是將計(jì)數(shù)脈沖直接鎖存到計(jì)算機(jī)的輸入引腳,查到了計(jì)數(shù)脈沖后便進(jìn)行計(jì)數(shù)處理,并清除鎖存器,否則繼續(xù)查詢(xún),在軟件中即可采用增量計(jì)數(shù)也可采用減量計(jì)數(shù),靈活性很大,但這樣CPU的占 用率太大。也可以利用計(jì)數(shù)脈沖引發(fā)中斷進(jìn)行計(jì)數(shù),可解決CPU占用率的問(wèn)題,但由于CPU響應(yīng)中斷的周期 的限制,當(dāng)計(jì)數(shù)脈沖的頻率很高時(shí),可能發(fā)生漏計(jì)。,5,由于以上原因,實(shí)際應(yīng)用系統(tǒng)中多采用硬件方法進(jìn)行計(jì)數(shù)操作。利用多個(gè)級(jí)聯(lián)的觸發(fā)器構(gòu)成計(jì)數(shù)器,將計(jì)數(shù)脈沖接到計(jì)數(shù)器的時(shí)鐘輸入端,則隨著計(jì)數(shù)脈沖的到來(lái),觸發(fā)器的狀態(tài)輸出可反映計(jì)數(shù)的二進(jìn)制 或

5、十進(jìn)制的值。如果使用可預(yù)置初值的計(jì)數(shù)器,則可控制計(jì)數(shù)器的計(jì)數(shù)總量,當(dāng)計(jì)數(shù)達(dá)到這個(gè)量時(shí),可輸出計(jì)數(shù)終到脈沖。如果使用可重載計(jì)數(shù)器,則可實(shí)現(xiàn)連續(xù)計(jì)數(shù)。 將這種計(jì)數(shù)器連到計(jì)算機(jī)系統(tǒng)中,由CPU來(lái)設(shè)置初值,由CPU啟動(dòng)計(jì)數(shù),并由CPU來(lái)讀取計(jì)數(shù)器的當(dāng)前值, 計(jì)數(shù)終到后向CPU發(fā)出中斷請(qǐng)求,由CPU處理計(jì)數(shù)終到后的工作,則構(gòu)成一種可編程計(jì)數(shù)器。這種計(jì)數(shù)器的計(jì)數(shù)過(guò)程自動(dòng)進(jìn)行。不需CPU的干預(yù),僅在CPU需要時(shí)提供計(jì)數(shù)的當(dāng)前值,或在計(jì)數(shù)終到后向CPU發(fā)出中斷請(qǐng)求,因而CPU占用率極低,在實(shí)際應(yīng)用系統(tǒng)中被廣泛應(yīng)用。,6,三. 定時(shí)方法與定時(shí)器 計(jì)算機(jī)系統(tǒng)中的,定時(shí)操作又分成延時(shí)操作和計(jì)時(shí)操作兩種。 延時(shí)操作只

6、關(guān)心時(shí)間間隔和延時(shí)終到的時(shí)刻,而計(jì)時(shí)操作則要求隨時(shí)了解現(xiàn)在時(shí)刻的標(biāo)準(zhǔn)時(shí)間。延時(shí)操作的 實(shí)現(xiàn)方法很多,而計(jì)時(shí)操作的實(shí)現(xiàn)方法則很單一。 在模擬電路中,延時(shí)操作多是利用電子器件本身的特性來(lái)實(shí)現(xiàn)的,最常用的延時(shí)器件是電容器。如單穩(wěn)態(tài)觸 發(fā)器,延時(shí)線等,這類(lèi)電路的設(shè)計(jì)安裝一旦完畢,其延時(shí)的時(shí)間就已經(jīng)固定(或僅可在小范圍內(nèi)手工調(diào)節(jié)), 僅適用于延時(shí)間隔較為固定的場(chǎng)合。 在數(shù)字電路中,實(shí)現(xiàn)延時(shí)操作則借用于計(jì)數(shù)器,給計(jì)數(shù)器輸入一故定頻率的計(jì)數(shù)脈沖(也稱(chēng)為定時(shí)脈沖),并 給計(jì)數(shù)器輸入一定的初始計(jì)數(shù)值,給計(jì)數(shù)器發(fā)一個(gè)啟動(dòng)脈沖后,計(jì)數(shù)器以固定頻率進(jìn)行計(jì)數(shù),延時(shí)一定時(shí)刻 后,計(jì)數(shù)器計(jì)數(shù)終到,發(fā)出終到脈沖。這種方法,只

7、要改變計(jì)數(shù)器的初始值,就可一改變延時(shí)的時(shí)間長(zhǎng)度, 適當(dāng)增加計(jì)數(shù)器的位數(shù),就可以實(shí)現(xiàn)較大時(shí)間內(nèi)的可調(diào)延時(shí)。,7,軟件延時(shí)是利用CPU的指令周期進(jìn)行的延時(shí)。在程序中設(shè)計(jì)一種循環(huán),循環(huán)的內(nèi)部?jī)H進(jìn)行空操作(NOP),只 要準(zhǔn)確的計(jì)算指令周期和循環(huán)次數(shù),就可以在CPU執(zhí)行該循環(huán)程序時(shí)延時(shí)指定的時(shí)間。這種方法的優(yōu)點(diǎn)是不 需要附加的硬件,且延時(shí)范圍靈活;缺點(diǎn)是一方面占用CPU資源,降低了CPU的利用率,另一方面是當(dāng)CPU 的指令中期不固定時(shí)(如發(fā)生DMA操作或插入數(shù)個(gè)Tw狀態(tài)時(shí));延時(shí)的時(shí)間可能發(fā)生較大的變化。如為8086 編寫(xiě)的程序中使用的延時(shí),在80486系統(tǒng)下,延時(shí)的時(shí)間明顯縮短。,8,計(jì)算機(jī)中實(shí)現(xiàn)延

8、時(shí)的另一種方法是利用硬件,借助于可編程的計(jì)數(shù)器進(jìn)行延時(shí)。在電路上給計(jì)數(shù)器輸入恒定 的定時(shí)脈沖,新要延時(shí)時(shí),首先由CPU給計(jì)數(shù)器賦以初值,然后CPU給計(jì)數(shù)器發(fā)出啟動(dòng)脈沖,計(jì)數(shù)器就開(kāi)始 工作了,計(jì)數(shù)器終到時(shí),計(jì)數(shù)器輸出終到脈沖,或者用以引發(fā)CPU中斷,進(jìn)行延時(shí)后的處理,或者直接將計(jì) 數(shù)脈沖輸出到外設(shè),驅(qū)動(dòng)外設(shè)工作。這種方法延時(shí)準(zhǔn)確,占用CPU時(shí)間少,且不會(huì)因系統(tǒng)升級(jí)而改變延時(shí)時(shí) 間,故被廣泛采用。 當(dāng)計(jì)算機(jī)系統(tǒng)中配置有定時(shí)時(shí)鐘的情況下,還可以利用查詢(xún)系統(tǒng)時(shí)鐘的方法來(lái)進(jìn)行軟件延時(shí),系統(tǒng)時(shí)鐘由計(jì) 時(shí)機(jī)構(gòu)產(chǎn)生,這樣可保證延時(shí)的準(zhǔn)確性,但仍需占用較多的CPU時(shí)間。,9,在計(jì)算機(jī)系統(tǒng)中,計(jì)時(shí)的工作一般是由計(jì)

9、數(shù)器來(lái)進(jìn)行的。首先在系統(tǒng)中設(shè)置一個(gè)計(jì)數(shù)器,給這個(gè)計(jì)數(shù)器輸入 穩(wěn)定頻率的定時(shí)脈沖作為計(jì)數(shù)脈沖,并使其工作在可重載的狀態(tài),使其輸出連續(xù)的終到脈沖,這個(gè)脈沖是定 時(shí)脈沖的N分頻,用這個(gè)脈沖引發(fā)CPU的定時(shí)中斷,CPU根據(jù)這個(gè)定時(shí)脈沖來(lái)修改內(nèi)部的時(shí)鐘,就可以進(jìn)行 計(jì)時(shí)操作。 在采用了計(jì)數(shù)器定時(shí)后,可從事就成為計(jì)數(shù)的一種特例,是對(duì)標(biāo)準(zhǔn)頻率的定時(shí)脈沖進(jìn)行的計(jì)數(shù)。 因此,把具有計(jì)數(shù)終到輸出的可重載計(jì)數(shù)器稱(chēng)為計(jì)數(shù)器/定時(shí)器。 Intel公司生產(chǎn)的可編程計(jì)數(shù)器/定時(shí)器8253就是一種典型的專(zhuān)用計(jì)數(shù)器/定時(shí)器芯片,是PC系列微機(jī)的標(biāo)準(zhǔn)設(shè)備之一。,10,四. 計(jì)數(shù)/定時(shí)的工作原理,計(jì)數(shù)/定時(shí)的功能 對(duì)外部事件發(fā)生次

10、數(shù)進(jìn)行計(jì)數(shù) 計(jì)算機(jī)系統(tǒng)經(jīng)常用到定時(shí)信號(hào),如DRAM刷新定時(shí),計(jì)數(shù)和計(jì)時(shí)本質(zhì)上是相同的,它們都是對(duì)一個(gè)輸入脈沖進(jìn)行計(jì)數(shù),如果輸入脈沖的頻率一定,那么記錄脈沖的個(gè)數(shù)與所需的時(shí)間是一一對(duì)應(yīng)的關(guān)系。 例如輸入脈沖頻率為2MHz,那么計(jì)數(shù)2106 計(jì)時(shí)1秒,因此,使用同一個(gè)芯片,既能計(jì)數(shù),又能計(jì)時(shí)計(jì)時(shí)器/計(jì)數(shù)器,11,控制寄存器,初始值寄存器,計(jì)數(shù)器,計(jì)數(shù)輸出寄存器,狀態(tài)寄存器,CLK,GATE,OUT,組成:,控制寄存器決定工作模式 狀態(tài)寄存器反應(yīng)工作狀態(tài) 初值寄存器計(jì)數(shù)的初值 計(jì)數(shù)輸出寄存器 CPU從中讀當(dāng)前計(jì)數(shù)值 計(jì)數(shù)器 執(zhí)行計(jì)數(shù)操作, CPU不能訪問(wèn),12,工作原理:對(duì)CLK信號(hào)進(jìn)行減1計(jì)數(shù) 首

11、先,CPU把控制字寫(xiě)入控制寄存器,計(jì)數(shù)初始值寫(xiě)入初值寄存器 計(jì)數(shù)從初值開(kāi)始,每當(dāng)CLK信號(hào)出現(xiàn)一次,計(jì)數(shù)值減1 當(dāng)計(jì)數(shù)值減到0,從OUT端輸出規(guī)定的信號(hào) CLK信號(hào)出現(xiàn)時(shí),計(jì)數(shù)器是否減1,由門(mén)控信號(hào)GATE控制,13,CLK是計(jì)數(shù)輸入信號(hào),計(jì)數(shù)器對(duì)CLK端出現(xiàn)的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù) CLK端可以輸入外部事件 CLK端可以接入固定頻率的時(shí)鐘信號(hào),從而實(shí)現(xiàn)計(jì)時(shí) OUT信號(hào)在計(jì)數(shù)結(jié)束時(shí)發(fā)生變化 可將OUT作為外部設(shè)備的控制信號(hào) 可將OUT作為向CPU申請(qǐng)中斷的信號(hào) CPU可以從計(jì)數(shù)輸出寄存器讀出當(dāng)前計(jì)數(shù)值。 讀前,應(yīng)向控制寄存器發(fā)送鎖存命令,14,第二節(jié) 可編程計(jì)數(shù)器/定時(shí)器 8253,8253芯片上集

12、成有3個(gè)獨(dú)立的16位計(jì)數(shù)器,可用來(lái)進(jìn)行二進(jìn)制或BCD碼計(jì)數(shù),計(jì)數(shù)速率可達(dá)1.6MHz;每個(gè)計(jì)數(shù)器(或稱(chēng)計(jì)數(shù)通道)有獨(dú)立的計(jì)數(shù)脈沖輸入引腳CLK,獨(dú)立的計(jì)數(shù)啟動(dòng)控制引腳GATE和獨(dú)立的計(jì)數(shù)終到 輸出引腳OUT。 可由程序設(shè)置和改變各計(jì)數(shù)器的工作方式,共有6種工作方式供選擇。通過(guò)對(duì)8253的控制寄存器編程,可以控制每個(gè)計(jì)數(shù)器的工作方式,計(jì)數(shù)制式以及計(jì)數(shù)初值的裝入。 8253設(shè)有數(shù)據(jù)總線緩沖器,用來(lái)實(shí)現(xiàn)與系統(tǒng)數(shù)據(jù)總線的連接。有讀寫(xiě)控制邏輯,可接收來(lái)自系統(tǒng)總線的控制信號(hào),并產(chǎn)生輸出信號(hào)。,15,一. 8253的編程結(jié)構(gòu),8253 是24引腳雙列直插式芯片,它與CPU的接口引線除了沒(méi)有RESET引腳外,

13、其他與8255相同。其中: D7D0是數(shù)據(jù)線引腳,RD和WD分別是讀寫(xiě)控制引腳,CS是片選信號(hào)。A1,A0是片內(nèi)地址選擇引腳。 8253的三個(gè)計(jì)數(shù)通道在結(jié)構(gòu)上和功能上完全一樣,每個(gè)通道均有兩個(gè)輸入引腳CLK和GATE,一個(gè)輸出信號(hào) 引腳OUT。,16,17,8253的計(jì)數(shù)過(guò)程是由其硬件電路獨(dú)立完成的。使用時(shí),使用時(shí)只需在計(jì)數(shù)開(kāi)始前由CPU通過(guò)程序向8253寫(xiě)入 控制字和計(jì)數(shù)初值,確定它的計(jì)數(shù)方式和計(jì)數(shù)范圍即可,而計(jì)數(shù)過(guò)程完全不需CPU干預(yù),計(jì)數(shù)器可以和CPU同時(shí)工作,當(dāng)計(jì)數(shù)完成后,8253可以向CPU申請(qǐng)中斷。顯然,這種獨(dú)立于CPU的計(jì)數(shù)/定時(shí)器,可以使CPU開(kāi)銷(xiāo)最小,并可通過(guò)適當(dāng)分配優(yōu)先級(jí)的

14、辦法實(shí)現(xiàn)延時(shí)。 由于8253的讀/寫(xiě)操作對(duì)系統(tǒng)時(shí)鐘沒(méi)有特殊要求,因此,它可以應(yīng)用于任何一種微處理器組成的系統(tǒng)當(dāng)中,作為可編程的方波頻率發(fā)生器,分頻器,實(shí)時(shí)時(shí)鐘,事件計(jì)數(shù)器,單脈沖發(fā)生器等。,18,數(shù)據(jù)總線緩沖器,8253與數(shù)據(jù)總線的接口部件,是8位的三態(tài)雙向緩沖器,CPU對(duì)8253讀寫(xiě)的數(shù)據(jù),控制及狀態(tài)信息 都通過(guò)這8條數(shù)據(jù)線傳送,讀寫(xiě)的內(nèi)容包括: CPU向8253傳送的確定8253工作方式的控制字 CPU向某一計(jì)數(shù)器裝入計(jì)數(shù)初值 CPU從某一計(jì)數(shù)器讀出計(jì)數(shù)初值,19,讀/寫(xiě)邏輯電路,8253內(nèi)部操作的控制電路,它從系統(tǒng)控制總線上接收控制信號(hào),然后產(chǎn)生8253內(nèi)部操作的各種控制 信號(hào),具體接收

15、的控制信號(hào)為: CS片選信號(hào),低電平有效,有效時(shí)可以訪問(wèn)8253,為高電平時(shí),數(shù)據(jù)總線緩沖器 處在高阻狀態(tài),與系統(tǒng)數(shù)據(jù)總線脫離,故不能進(jìn)行數(shù)據(jù)總線編程,也不能進(jìn)行讀寫(xiě)操作,但不影 響計(jì)數(shù)器的工作。 RD,WR讀寫(xiě)控制信號(hào),控制數(shù)據(jù)的傳送方向,當(dāng)RD有效時(shí),數(shù)據(jù)由8253傳向CPU (讀當(dāng)前計(jì)數(shù)值);當(dāng)WR有效時(shí),數(shù)據(jù)由CPU傳向8253(寫(xiě)控制字和計(jì)數(shù)初值)。 A1,A0接系統(tǒng)總線的A1,A0,用于選擇8253那的計(jì)數(shù)器和控制寄存器。 A1 A0 計(jì)數(shù)器 0 0 計(jì)數(shù)器0 0 1 計(jì)數(shù)器1 1 0 計(jì)數(shù)器2 1 1 控制寄存器,20,控制寄存器,21,計(jì)數(shù)器0,1,2,8253有3個(gè)獨(dú)立的計(jì)數(shù)

16、器/定時(shí)器,計(jì)數(shù)器0,1,2,每個(gè)計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)相同,操作完全相同。 每個(gè)通道的外部均有兩個(gè)輸入信號(hào)CLK和GATE,一個(gè)輸出信號(hào)OUT. CLK時(shí)鐘脈沖輸入 GATE門(mén)控制信號(hào)輸入 OUT輸出信號(hào),22,每個(gè)計(jì)數(shù)器內(nèi)部都有三個(gè)16位寄存器CR,CE和OL。 CR計(jì)數(shù)初值寄存器 存放CPU寫(xiě)入的計(jì)數(shù)初值(也稱(chēng)時(shí)間常數(shù))。CPU可以寫(xiě),但 不能讀CR寄存器。CPU向CR寫(xiě)入計(jì)數(shù)初值后的第一個(gè)CLK脈沖下降沿,CR寄存器的內(nèi)容被送到CE計(jì)數(shù)器 單元內(nèi),隨后CE開(kāi)始工作。如果是在非重載方式下(方式0,方式1,方式4,方式5),CR的內(nèi)容只向CE 寫(xiě)入一次;在重載方式下(方式2,方式3),當(dāng)計(jì)數(shù)終到

17、后,CR的內(nèi)容又重新寫(xiě)入CE,一維持CE以同樣的 計(jì)數(shù)初值連續(xù)工作。 CE計(jì)數(shù)執(zhí)行部件 接收CR送來(lái)的計(jì)數(shù)初值,在GATE的控制下決CLK進(jìn)行減1計(jì)數(shù), 當(dāng)計(jì)數(shù)終到時(shí)減1到0,該計(jì)數(shù)通道的OUT引腳發(fā)出OUT信號(hào)。CPU不能訪問(wèn)CE寄存器。 OL輸出鎖存器 用來(lái)鎖存某一時(shí)刻CE中的計(jì)數(shù)值。由于8253的數(shù)據(jù)總線只有8 位,而CE是16位的,不可能在一個(gè)總線周期內(nèi)將CE的內(nèi)容全部讀入CPU,因此用OL將不斷變化的CE值保 持住,以便CPU讀到正確的CE值。CPU可隨時(shí)用IN指令讀出該寄存器的當(dāng)前計(jì)數(shù)值,但不能寫(xiě)該寄存器。,23,8253輸入信號(hào)與各功能的對(duì)應(yīng)關(guān)系,24,初始化,1)寫(xiě)入控制字 2

18、)按控制字要求寫(xiě)入計(jì)數(shù)初值 計(jì)數(shù)器初值計(jì)算:N=fCLK/fOUT,二.8253編程,8253控制寄存器的格式如下:,25,例:設(shè)三個(gè)計(jì)數(shù)器的CR/OL端口地址為70H、71H、72H,控制寄存器端口地址73H。計(jì)數(shù)器1,工作模式1,CR/OL使用16位,初值為1234,計(jì)數(shù)值使用BCD,MOV AL, 73H OUT 73H, AL MOV AX, 1234H OUT 71H, AL MOV AL, AH OUT 71H, AL,例:設(shè)三個(gè)計(jì)數(shù)器的CR/OL端口地址為70H、71H、72H,控制寄存器端口地址73H。計(jì)數(shù)器0,工作模式2,CR/OL僅使用低8位,初值為100,計(jì)數(shù)值使用二進(jìn)制

19、,MOV AL, 14H OUT 73H, AL MOV AL, 100 OUT 70H, AL,26,讀操作,1)發(fā)出鎖存命令,使當(dāng)前計(jì)數(shù)值鎖存在OL中 2)讀OL,獲得當(dāng)前計(jì)數(shù)值,例:設(shè)三個(gè)計(jì)數(shù)器的CR/OL端口地址為70H、71H、72H,控制寄存器端口地址73H。讀出計(jì)數(shù)器0的當(dāng)前計(jì)數(shù)值,放在BX中,MOV AL, 0H OUT 73H, AL IN AL, 70H MOV BL, AL IN AL, 70H MOV BH, AL,27,寫(xiě)操作 寫(xiě)命令字 A1A0=11 寫(xiě)計(jì)數(shù)值,對(duì)各計(jì)數(shù)器口地址 一個(gè)計(jì)數(shù)器在工作之前,需要先設(shè)置控制字,用來(lái)選擇計(jì)數(shù)器,設(shè)定工作模式和計(jì)數(shù)格式等。 設(shè)置

20、初值命令用來(lái)給出計(jì)數(shù)的初始值,初值可為8位,也可為16位。如為16位,則要用兩條輸出指令完成初值設(shè)置。,28,例:設(shè)8253的口地址為40H 43H,則下列程序意義為:MOV AL,74H ;01110100B初始化計(jì)數(shù) 器1為方式2,OUT 43H,AL ;先讀低8字節(jié)再讀高8字節(jié)二進(jìn)制數(shù)MOV AL,20H ;寫(xiě)入計(jì)數(shù)器1計(jì)數(shù)初值0420H OUT 41H,AL MOV AL,04H OUT 41H,AL MOV AL,40H ;01000000B向計(jì)數(shù)器1 發(fā)鎖存命令 OUT 43H,AL,29,三. 8253工作模式,8253作為一個(gè)可編程計(jì)數(shù)器/定時(shí)器,可以用6種工作模式,不論工作在

21、那種模式,都會(huì)遵守下面幾條基本規(guī)則: 1) 控制字寫(xiě)入寄存器時(shí),所有控制邏輯電路立即復(fù)位,輸出端OUT進(jìn)入初始狀態(tài)。2) 初值寫(xiě)入后,要經(jīng)過(guò)一個(gè)時(shí)鐘上升沿和一個(gè)下降沿,計(jì)數(shù)執(zhí)行部件才開(kāi)始進(jìn)行計(jì)數(shù)。 3) 通常在時(shí)鐘脈沖CLK的上升沿時(shí),門(mén)控信號(hào)GATE被采樣。 模式0,4中,門(mén)控信號(hào)為電平觸發(fā) 模式1,5中,門(mén)控信號(hào)為上升沿觸發(fā) 模式2,3中,門(mén)控信號(hào)為電平或上升沿觸發(fā)4) 在時(shí)鐘脈沖的下降沿,計(jì)數(shù)器作減1計(jì)數(shù)。 0是計(jì)數(shù)器所能容納的最大初始值。 二進(jìn)制時(shí),0相當(dāng)于216;BCD碼時(shí),0相當(dāng)于104。,30,工作模式?jīng)Q定以下內(nèi)容: 1)門(mén)控信號(hào)的影響 高電平允許,當(dāng)GATE=0,即使出現(xiàn)CLK

22、,也不計(jì)數(shù) 模式0,2,3,4 上升沿允許(上升沿觸發(fā)) 模式1,5 2)OUT信號(hào)的狀態(tài) 寫(xiě)入控制字后, OUT的狀態(tài) 計(jì)數(shù)過(guò)程中, OUT的狀態(tài) 計(jì)數(shù)終了, OUT的狀態(tài) 3)計(jì)數(shù)操作可否重復(fù) 不可重復(fù)模式0,4 自動(dòng)重復(fù)模式2,3 條件重復(fù)模式1,5,31,6種工作模式主要區(qū)別:,輸出波形不同。 啟動(dòng)計(jì)數(shù)器的觸發(fā)方式不同。 計(jì)數(shù)過(guò)程中門(mén)控信號(hào)GATE對(duì)計(jì)數(shù)操作的影響不同。 有的工作方式具備“初值自動(dòng)重裝”的功能。初值自動(dòng)重裝的功能是:當(dāng)計(jì)數(shù)值減到規(guī)定的數(shù)值后,計(jì)數(shù)初值將會(huì)自動(dòng)地重新裝入計(jì)數(shù)器。,32,33,6種工作模式,方式0: 計(jì)數(shù)初值寫(xiě)入CR后,OUT由0到1跳變出現(xiàn)在n+1個(gè)時(shí)鐘脈

23、沖之后 延遲時(shí)間TD=(n+1)TCLK 方式1: 單脈沖寬度T=n TCLK 方式2: 對(duì)輸入端n個(gè)時(shí)鐘脈沖,在輸出端僅出現(xiàn)一個(gè)時(shí)鐘脈沖 N分頻計(jì)數(shù)器,34,方式3: 例:計(jì)數(shù)器工作模式3,計(jì)數(shù)器初值15,時(shí)鐘脈沖頻率為2MHz,確定OUT端輸出方波的特性。 解:TCLK=1/2MHz=500ns 計(jì)數(shù)器初值15為奇數(shù),輸出分頻波高電平寬度 TCLK(N+1)/2=4s 輸出分頻波低電平寬度 TCLK(N-1)/2=3.5s 方式4、5: 觸發(fā)后n+1個(gè)時(shí)鐘脈沖之后輸出端產(chǎn)生選通脈沖信號(hào),35,例:計(jì)數(shù)器0工作模式4,初始化計(jì)數(shù)器,使裝入計(jì)數(shù)器10 s后產(chǎn)生選通信號(hào)(設(shè)時(shí)鐘頻率2MHz,82

24、53端口地址為50H53H)。 解:n+1=T/ TCLK=10/0.5=20 n=19=13H MOV AL, 18H OUT 53H, AL MOV AL, 13H OUT 50H, AL,36,四. 8253的應(yīng)用,1. PC機(jī)中8253的應(yīng)用,計(jì)數(shù)器0:向系統(tǒng)日歷時(shí)鐘提供定時(shí)中斷 模式3,控制字36H,計(jì)數(shù)器初始值0 計(jì)數(shù)器1:動(dòng)態(tài)RAM刷新 模式2,控制字54H,計(jì)數(shù)器初始值18(12H) 計(jì)數(shù)器2:控制揚(yáng)聲器發(fā)聲 模式3,控制字B6H,計(jì)數(shù)器初始值1331(533H),PC機(jī)中,8253的端口地址為40H43H,37,BIOS對(duì)8253初始化 :計(jì)數(shù)器0 MOV AL,36H 控制

25、字00,11,011,0 OUT 43H,AL 二通道0,16位,方式3,二進(jìn)制MOV AL,0 初值0,計(jì)數(shù)65536次(最大) OUT 40H,AL 寫(xiě)入CRO的低計(jì)數(shù)值 OUT 40H,AL 寫(xiě)入CRO的高計(jì)數(shù)值 OUT0輸出兩次變高的間隔為840ns*65536 = 55ms,即每隔55ms發(fā)出一次請(qǐng)求。,38,計(jì)數(shù)器1 MOV AL,54H ; 控制字00,11,011,0 OUT 43H,AL; 二通道1,只裝低8位,方式2,二進(jìn)制MOV AL,12H; 初值18 OUT 41H,AL; 寫(xiě)入計(jì)數(shù)器低8位,高8位自動(dòng)為0 OUT1輸出兩次變高的間隔為840ns*18 = 15us,

26、于是2ms內(nèi)可有132次刷新。,39,計(jì)數(shù)器2 MOV AL,0B6H ; 控制字00,11,011,0 OUT 43H,AL ;二通道2,16位,方式3,二進(jìn)制MOV AX,533H; 初值 533H = 1331 OUT 42H,AL; 寫(xiě)入計(jì)數(shù)器低8位 MOV AL,AH; OUT 42H,AL; 寫(xiě)入計(jì)數(shù)器高8位 OUT2輸出兩次變高的間隔為840ns*1331 = 1.12ms,頻率為894Hz。,40,3. 以2MHz輸入8253,實(shí)現(xiàn)每5秒定時(shí)中斷(設(shè)8253端口地址40H43H),分析:8253最大初值65536,CLK=2MHz可實(shí)現(xiàn)最大時(shí)間間隔: 65536/(2106)=32.769ms 所以需要兩個(gè)計(jì)數(shù)器串聯(lián),一個(gè)計(jì)數(shù)器的輸出作為另一個(gè)計(jì)數(shù)器的輸入,計(jì)數(shù)器1:模式2,OUT1每5ms輸出一個(gè)脈沖 初值(2106)/(1/0.005)=10000 計(jì)數(shù)器0:模式2,OUT0每5s輸出一個(gè)脈沖 初值(1/0.005)/(1/5)=1000,41,程序:,MOV AL, 74H OUT 43H, AL MOV AX, 10000 OUT 41H, AL MOV AL,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論