定時(shí)/計數器都有定時(shí)或對外部事件計數的功能。通常,定時(shí)/計數器歸納起來(lái)一般有3種類(lèi)型: 硬件計數器 可在簡(jiǎn)單軟件控制下計數,特點(diǎn)是成本低,使用方便,但是專(zhuān)用性強,使用不廣泛。 軟件定時(shí)/計數器 特點(diǎn)是幾乎沒(méi)有硬件費用,但他占用CPU的運行時(shí)間,降低了CPU的工作效率。 可編程定時(shí)/計數器 特點(diǎn)是工作靈活,而且不占用CPU的運行時(shí)問(wèn),缺點(diǎn)是成本較高。其中可編程定時(shí)/計數器8253是一種使用較為普遍的可編程定時(shí)/計數器。 可編程定時(shí)/計數器8253通過(guò)軟件設定,可以產(chǎn)生各種時(shí)間延遲信號,他的使用非常廣泛,通常被用于定時(shí)控制、延時(shí)、計數等場(chǎng)合,如定時(shí)刷新RAM、系統時(shí)鐘的計時(shí)、揚聲器的發(fā)音長(cháng)短的控制。在使用的時(shí)候,需要進(jìn)行嚴密的計算和精確的測試,以滿(mǎn)足不同的要求。 1 可編程定時(shí)/計數器8253的工作原理 可編程定時(shí)/計數器8253是NMOS工藝制成的大規模集成電路,通過(guò)簡(jiǎn)單編程可實(shí)現不同的功能,圖1為可編程定時(shí)/計數器8253的基本原理圖。 從圖1可以看出,芯片內有3個(gè)獨立的計數器,分別為計數器0,計數器1,計數器2,每一個(gè)計數器都是16位的,可以分別對他們設定工作方式(通過(guò)控制字設定)。 圖2為封裝后的8253引腳圖。 可編程定時(shí)/計數器8253可以應用在兩種情況下:定時(shí)、計數。當用作定時(shí)器時(shí),可以循環(huán)計數,信號來(lái)源一般為系統本身;當用作計數器時(shí),信號來(lái)源一般為系統文件。在揚聲器驅動(dòng)系統中,可編程定時(shí)/計數器8253是作定時(shí)器來(lái)使用的。 圖2中對應引腳的含義如下: CLK0,CLK1,CLK2:對應計數器的時(shí)鐘輸入。 GATE0,GATE1,GATE2:對應計數器輸出信號。 OUT0,OUT1,OUT2:對應計數器輸出信號。 RD:讀信號。低電平有效,讀出計數器的計數值送入緩沖器。 WR:寫(xiě)信號。低電平有效,接收由緩沖器送來(lái)的數據。 CS:片選信號。低電平有效。只有在CS信號低電平時(shí)8253才能產(chǎn)生讀寫(xiě)操作,否則不會(huì )讀寫(xiě)。 A1~A0:對3個(gè)計數器和1個(gè)控制寄存器端口進(jìn)行尋址。 D7~D0:方式控制字?删幊潭〞r(shí)/計數器能正確工作與否,與方式控制字密切相關(guān)。方式控制字格式如下: 方式控制字對應位的含義如表1所示。 VCC:+5 V電源。 GND:接地引腳。 2 可編程定時(shí)/計數器8253在揚聲器中的應用 揚聲器驅動(dòng)系統的硬件組成如圖3所示。利用8253驅動(dòng)揚聲器發(fā)聲是由系統插件上8255的外圍電路來(lái)發(fā)出驅動(dòng)信號的。如圖3中的SPK DATA和TIM GATESPK就是接在8255的輸出端口上。其中TIM GATESPK控制8253定時(shí)器來(lái)驅動(dòng)揚聲器,SPK DATA來(lái)控制揚聲器的門(mén)電路。直接由門(mén)電路驅動(dòng)發(fā)出的聲音比較難聽(tīng),通過(guò)濾波器濾掉雜波之后會(huì )更動(dòng)聽(tīng)一些,所以最好如圖3所示加一個(gè)濾波器。 (1)首先以流程圖的方式說(shuō)明使用揚聲器發(fā)聲的過(guò)程,如圖4所示。 (2)可編程定時(shí)/計數器8253在揚聲器中應用的編程。一般情況下,8255的輸出端口地址為61H,分配給8253的控制口地址為46H,3個(gè)計數器端口地址分別為40H,42H,44H,讓計數器2工作在模式3下,可使8253作為定時(shí)器驅動(dòng)揚聲器發(fā)聲。 則編寫(xiě)程序如下: 從程序中可以看到利用可編程定時(shí)/計數器8253可以發(fā)出各種頻率的聲音,只要在程序中稍微更改一下輸入時(shí)鐘頻率或計數初值即可實(shí)現。 |