單片機(jī)常用功能模塊的使用 Part4. 定時(shí)器
①、軟件定時(shí):如常用的延時(shí)程序 Delay(),在定時(shí)過程中,CPU 循環(huán)測(cè)試延時(shí)變量是否滿足條件,此時(shí) CPU 利用率低下;
本文引用地址:http://cafeforensic.com/article/201611/315368.htm②、硬件定時(shí):如外部芯片555 時(shí)基電路,通過外部阻容,達(dá)到一定的延時(shí)功能,改變阻容大小可以改變延時(shí)長度,這種定時(shí)器取決于硬件,設(shè)定好以后不能通過軟件更改;
③、定時(shí)器:利用單片機(jī)內(nèi)部定時(shí)器,實(shí)現(xiàn)對(duì)時(shí)間的操作。
1、定時(shí)器功能:
(1)、定時(shí):產(chǎn)生一個(gè)標(biāo)準(zhǔn)的時(shí)間間隔:如 20 ms,100 ms 等,單片機(jī)使用這種方式可以產(chǎn)生一個(gè)符合某一要求的脈沖方波;
(2)、計(jì)數(shù):對(duì)外部的事件(脈沖)進(jìn)行統(tǒng)計(jì),很明顯外部事件的發(fā)生是隨機(jī)的,單片機(jī)不可能預(yù)知外部事件何時(shí)發(fā)生,但可以進(jìn)行統(tǒng)計(jì),當(dāng)達(dá)到所要求的數(shù)值時(shí),單片機(jī)進(jìn)行相應(yīng)的操作。
2、四種工作模式:
模式 0:13 位計(jì)數(shù)器模式
在某一個(gè)初值的基礎(chǔ)上加 1 計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)滿為全“1”,再來一個(gè)計(jì)數(shù)脈沖時(shí),就產(chǎn)生一個(gè)“溢出中斷信號(hào)”TF1=1。
注:由于低 8 位計(jì)數(shù)器中的高三位沒有參與工作,故填裝初值時(shí)應(yīng)“避開”此三位。
模式 1:16 位定時(shí)/計(jì)數(shù)模式
類同于模式 0,由于兩個(gè)計(jì)數(shù)器為完整的 8 位,故將計(jì)算好的 16 位初值可直接填裝到 TH、TL 中。
模式 2:8 位自動(dòng)重裝初值模式
TL 做計(jì)數(shù)器,TH 做初值寄存器,工作前 TL1,TH1 分別預(yù)置相同的初值,TL1 計(jì)數(shù)時(shí),產(chǎn)生溢出的同時(shí),將 TH1 中的初值自動(dòng)重裝 TL1,TL1 繼續(xù)計(jì)數(shù)。
模式 3:組合擴(kuò)展模式(僅適用于 T0)
將 T0 和 T1 重新進(jìn)行“拆分、組合”,將 T0 變?yōu)橛?TH0,TL0 組成的兩個(gè)獨(dú)立的 8 位定時(shí)/計(jì)數(shù)器。
補(bǔ)充:四種模式比較:
3、定時(shí)器參數(shù):
(1)、定時(shí)器的個(gè)數(shù):網(wǎng)上見到的 51 單片機(jī)教程都說定時(shí)器有 2 個(gè):定時(shí)器 0 和定時(shí)器 1,實(shí)際上有的單片機(jī)有 3 個(gè)定時(shí)器,如博主買的開發(fā)板上的單片機(jī):STC89C54RD+,因此,編程時(shí)注意看好有幾個(gè)定時(shí)器……
(2)、TL,TH:初值寄存器,分別是低 8 位,高 8 位,后邊加上一個(gè)數(shù)字 0 或 1,代表定時(shí)器 0 或定時(shí)器 1
(3)、TMOD:模式控制寄存器,屬于 SFR 特殊功能寄存器,地址:89H,決定定時(shí)/計(jì)數(shù)器的四種工作模式,8 位
GATE 選通門:GATE=0 時(shí),只要 TR=1,計(jì)數(shù)器就開始工作
GATE=1 時(shí),只有 INT=TR=1 時(shí),計(jì)數(shù)器工作(用來測(cè)量 INT 腳高電平脈沖的寬度)
C/T:計(jì)數(shù)器輸入脈沖選擇開關(guān),決定著計(jì)數(shù)器的“定時(shí)”或“計(jì)數(shù)”的兩種工作方式
C/T=0:定時(shí)方式:計(jì)數(shù)器接收內(nèi)部時(shí)鐘信號(hào) fosc
C/T=1:計(jì)數(shù)方式:計(jì)數(shù)器接收引腳上的外部信號(hào)
M1、M0 模式選擇:確定 4 種工作模式
(4)、TCON:控制寄存器,屬于 SFR 特殊功能寄存器,地址:88H,8 位
TF:定時(shí)器溢出標(biāo)志,計(jì)數(shù)器溢出時(shí)硬件自動(dòng)置位,即 TF=1,進(jìn)入中斷后再由硬件自動(dòng)清除(TF=0)
TR:計(jì)數(shù)器的控制位
TR=1:計(jì)數(shù)器開始工作
TR=0:計(jì)數(shù)器停止計(jì)數(shù)
IE:外部中斷 INT 的請(qǐng)求標(biāo)志
當(dāng)單片機(jī)檢測(cè)到 INT 引腳上有下降沿時(shí),IE=1 申請(qǐng)中斷,進(jìn)入中斷服務(wù)程序時(shí),硬件自動(dòng)清除 IE 標(biāo)志
IT:外中斷觸發(fā)類型控制
IT=1 時(shí),外中斷信號(hào)的下降沿觸發(fā) IE 標(biāo)志
IT=0 時(shí),外中斷信號(hào)的低電平觸發(fā) IE 標(biāo)志
(5)、作為“定時(shí)器”使用時(shí),“定時(shí)”與“初值”的關(guān)系如下:
T = ( M - TC ) ×t
其中:T:定時(shí)時(shí)間
M:計(jì)數(shù)器的模
TC:計(jì)數(shù)初值
t:計(jì)數(shù)器計(jì)數(shù)脈沖的周期(t = fosc / 12)
注:具體計(jì)算實(shí)例,參見前面“四種模式比較”中的第二張圖……
評(píng)論