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