定時器原理 定時器是單片機(jī)內(nèi)部的特殊功能模塊。 在控制系統(tǒng)中,常常要求有一些實時時鐘以實現(xiàn)定時或者延時控制,如定時中斷、定時檢測、定時掃描等等,也往往要求有計數(shù)器,對外部事件進(jìn)行計數(shù)。 要實現(xiàn)定時或者延時功能,一般有三種方法:軟件定時,不可編程硬件定時,可編程硬件定時。 軟件定時——讓軟件循環(huán)執(zhí)行一段程序,程序本身并無執(zhí)行目的,而是通過執(zhí)行程序延時固定的時間,也就是以前的程序中經(jīng)常使用的延時程序。這種方法降低了cpu 的利用率。 不可編程硬件定時——如外部芯片555 時基電路,通過外部阻容,達(dá)到一定的延時功能,改變阻容大小可以改變延時長度。這種定時器取決于硬件,設(shè)定好以后不能通過軟件更改。 可編程定時器——這種定時器的定時值可以通過軟件確定和修改,使用靈活。 T0/T1 2 個相同的16 位定時/計數(shù)器 TR. 定時計數(shù)器的啟動控制開關(guān)。 TR=1:計數(shù)器開始計數(shù); TR=0:計數(shù)器停止計數(shù)。 C/T. 計數(shù)器輸入脈沖選擇開關(guān),決定著計數(shù)器的“定時”或“計數(shù)”的兩種工作方式。 C/T=0:計數(shù)器接收內(nèi)部時鐘信號fosc--- 定時方式;C/T=1:計數(shù)器接收引腳上的外部 信號---計數(shù)方式。 F. 計數(shù)器溢出標(biāo)志。 TF=1 :定時或計數(shù)時間到,可以采用查詢或中斷方式處理; 初值寄存器:預(yù)裝用來決定計數(shù)器產(chǎn)生溢出周期的參數(shù), 此參數(shù)決定著定時或計數(shù)的周期。通常要預(yù)算并送入初值寄存器中。 定時/計數(shù)器的4 種工作模式,由特殊功能寄存器TMOD 決定 模式0:13 位定時/計數(shù)器 在某一個初值的基礎(chǔ)上加1 計數(shù),當(dāng)計數(shù)器計滿為全“1”,再來一個計數(shù)脈沖時,就產(chǎn)生一個“溢出中斷信號”TF1=1。 由于低8 位計數(shù)器中的高三位沒有參與工作,故填裝初值時應(yīng)“避開”此三位。 模式1:16 位定時/計數(shù)器 類同于模式0。由于兩個計數(shù)器為完整的8 位,故將計算好的16 位初值可直接填裝到TH、TL 中。 模式2:8 位自動重裝值模式 TL 做計數(shù)器,TH 做初值寄存器,工作前TL1,TH1 分別預(yù)置相同的初值。 TL1 計數(shù)時, 產(chǎn)生溢出的同時, 將TH1 中的初值自動重裝TL1。TL1 繼續(xù)計數(shù)。 8 位計數(shù)器的模式,定時或計數(shù)的范圍遠(yuǎn)遠(yuǎn)小于模式0 和模式1; 具備初值“硬件自動重裝”功能,非常適合進(jìn)行重復(fù)性定時的場合,如產(chǎn)生連續(xù)方波信號等。 編成中省去了軟件重裝初值的麻煩; 式3:組合擴(kuò)展模式(只適用于T0) GATE 選通門: GATE=0 時,只要TR=1,計數(shù)器就開始工作; GATE=1 時,只有INT=TR=“1”時,計數(shù)器工作(用來測量INT 腳高電平脈沖的寬度)。 C/T 計數(shù)、定時方式選擇位: C/T=1 時,計數(shù)方式。 C/T=0 時:定時方式。 M1 、M0 模式選擇:確定四種工作模式. TF0 定時器T0 的溢出標(biāo)志: 計數(shù)器溢出時硬件自動置位,即TR=1。進(jìn)入中斷后再由硬件自動清除(TF0=0); TR0 計數(shù)器T0 的控制位: 由軟件設(shè)定: TR0=1 計數(shù)器開始工作; TR0=0 計數(shù)器停止計數(shù)。 TF1、TR1 同上。 IE1,IE0 外部中斷INT1,INT0 的請求標(biāo)志: 當(dāng)單片機(jī)檢測到INT 引腳上有下降沿時,IE=1 申請中斷.進(jìn)入中斷服務(wù)程序時,硬件自動清除IE 標(biāo)志. IT1,IT0 外中斷觸發(fā)類型控制: IT=1 時,外中斷信號的下降沿觸發(fā)IE 標(biāo)志; IT=0 時,外中斷信號的低電平觸發(fā)IE 標(biāo)志。 主編:高悅 實習(xí)編輯:樊興旺 文章來源:西郵通院科協(xié)微信組 |
|