在80c51單片機內(nèi)部,有2個定時器/計數(shù)器,分別稱為定時器/計數(shù)器0、定時器/計數(shù)器1。每個定時器/計數(shù)器都具有計數(shù)和定時兩大功能,并具有3~4種工作方式?,F(xiàn)用定時器/計數(shù)器0的方式1來說明定時器/計數(shù)器內(nèi)部結(jié)構(gòu)與工作原理。
1.定時器/計數(shù)器通道內(nèi)部結(jié)構(gòu)及工作原理
80c51單片機定時器計數(shù)器0內(nèi)部結(jié)構(gòu)如圖6-7所示。定時/計數(shù)器內(nèi)的核心器件是加1計數(shù)器,加1計數(shù)器由兩個特殊功能寄存器th0與tl0組成。當定時計數(shù)器工作于定時方式,加1脈沖由系統(tǒng)時鐘fosc經(jīng)12分頻后產(chǎn)生。當定時計數(shù)器工作于計數(shù)方式,加1脈沖由t0引腳直接提供。定時器工作于定時還是計數(shù)方式,取決于選擇開關(guān) ,當 =0時工作于定時方式, =1時工作于計數(shù)方式。加1脈沖要經(jīng)過啟動開關(guān)才能到達加1計數(shù)器,啟動開關(guān)由與門的輸出端控制,其輸入端分別接啟動控制位tr0與或門輸出端。或門的輸入端分別接gate位與外部中斷引腳 。啟動開關(guān)的控制方式將在下文中介紹。當加1 計數(shù)器溢出時,由硬件自動將中斷標志tf0置1,以此向cpu發(fā)中斷請求。
定時計數(shù)器4種工作方式的主要區(qū)別在于加1計數(shù)器,加1計數(shù)器可以是由th0、tl0組成的16位或13位計數(shù)器,也可以tl0組成的8位計數(shù)器。關(guān)于4種方式將在后文詳細介紹。
2.計數(shù)功能
計數(shù)功能的實質(zhì)就是對外來負脈沖進行計數(shù)。80c51單片機用t0(p3.4)、t1(p3.5)兩個引腳輸入定時計數(shù)器0與定時計數(shù)器1計數(shù)脈沖信號。
注意:計數(shù)方式下是對外來負脈沖進行計數(shù),且到達t0(t1)端時不一定有規(guī)律。
3.定時功能
定時的實質(zhì)也是計數(shù),不過定時時間不是對外來脈沖進行計數(shù),而是對cpu的內(nèi)部時鐘脈沖的12分頻(機器周期)進行計數(shù),即每過一個機器周期就加一次1。例如:設(shè)計數(shù)器是8位的tl0,計數(shù)初值為100,cpu時鐘頻率為12mhz,則機器周期為1μs,當產(chǎn)生計數(shù)溢出時,表示定時了(256-100)´1μs=156μs,從而就起到了定時器的作用。