版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章單片機的定時器/計數(shù)器定時/計數(shù)器的結(jié)構(gòu)與工作原理6.1定時器的控制6.2定時/計數(shù)器的工作方式6.3定時/計數(shù)器的編程和應(yīng)用6.4純軟件定時/計數(shù)方法:定時——空循環(huán)預(yù)定周次,等待預(yù)定時間計數(shù)——讀取I/O口電平,統(tǒng)計變化次數(shù)基本思路:由CPU統(tǒng)計狀態(tài)變化次數(shù),待預(yù)定結(jié)果出現(xiàn)后結(jié)束統(tǒng)計。delay(unsigned
inttime){unsignedintj=0;
for(;time>0;time--)
for(j=0;j<125;j++);}存在問題:占用過多CPU機時2023/2/136.1定時/計數(shù)器的結(jié)構(gòu)和工作原理
定時/計數(shù)器的結(jié)構(gòu)基本型:T0,定時、計數(shù)。T1,定時、計數(shù)、串口波特率發(fā)生器。增強型:增加了T2。TH1、TL1TH0、TL0TCONTMOD定時/計數(shù)器的結(jié)構(gòu)2個16位計數(shù)器T0(TH0、TL0)和T1(TH1、TL1)——加1計數(shù)器2個控制寄存器TCON和TMOD——管理計數(shù)器的運行2個外部引腳T0(P3.4)和T1(P3.5)——接入外部脈沖2023/2/15定時/計數(shù)器的工作原理實質(zhì)是16位加1計數(shù)器定時器模式時,是對內(nèi)部機器周期計數(shù)。計數(shù)值乘以機器周期就是定時時間計數(shù)器模式時,是對外部事件計數(shù)。脈沖由T0(P3.4)或T1(P3.5)引腳輸入。
注意:(若計數(shù)值為N,計數(shù)初值為X)溢出信號使TF0或TF1置1,并發(fā)出中斷請求,16位時有:
N=65536-X,或X=65536-N12MHz晶振時,計數(shù)頻率低于0.5MHz
單片機軟硬件聯(lián)合定時/計數(shù)方法:等待CPU響應(yīng)系統(tǒng)時鐘脈沖加1計數(shù)器溢出標志溢出定時器外來信號脈沖加1計數(shù)器溢出標志溢出等待CPU響應(yīng)計數(shù)器外來信號脈沖加1計數(shù)器溢出標志溢出等待CPU響應(yīng)系統(tǒng)時鐘脈沖K定時/計數(shù)器定時器的本質(zhì)是計數(shù)器(對時鐘脈沖計數(shù)),計數(shù)器則是對外來脈沖計數(shù).計數(shù)器的溢出空間可隨計數(shù)初值改變→定時時間tt=(計數(shù)器最大空間-計數(shù)初值)×機器周期
=(2n-a)×12/fosc(s)基本工作原理:t與n、a、fosc三個因素有關(guān)
TFx(X=0、1)Tx端(每個機器周期產(chǎn)生一個計數(shù)脈沖)邏輯開關(guān)功能:=0→定時器方式,=1計數(shù)器方式
TFx(X=0、1)Tx端計數(shù)值N=(計數(shù)器滿計數(shù)值-計數(shù)初值)=(2n–a)N與n、a兩個因素有關(guān)定時/計數(shù)器的控制關(guān)系(以T1為例)門控位GATE=0-允許TR1啟動計數(shù)器GATE=1-允許INT1啟動計數(shù)器啟動控制位TR1=1-啟動計數(shù)器TR1=0-停止計數(shù)器外部中斷1參與定時器的啟停管理中斷請求標志位TF1=1-請求TR1=0-復(fù)位
T1模式選擇位=0-定時=1-計數(shù)6.2定時/計數(shù)器的控制2023/2/110工作方式寄存器TMOD
76543210TMODGATEC/TM1M0GATEC/TM1M0字節(jié)地址:89HGATE:門控位。GATE=0時,只要TRx為1,就可啟動計數(shù)器工作;GATA=1時,定時器的啟動還要加上INTx引腳為高電平這一條件。
C/T:模式選擇位。清0為定時模式,置1為計數(shù)方式。M1M0:工作方式設(shè)置位??稍O(shè)置四種工作方式(見下頁)。2023/2/111M1M0工作方式說明00方式013位定時/計數(shù)器01方式116位定時/計數(shù)器10方式28位自動重裝定時/計數(shù)器11方式3T0分成兩個獨立的8位定時/計數(shù)器;T1此方式停止計數(shù)注意:TMOD不能進行位尋址
GATEC/TM1M0GATEC/TM1M0D7D5D4D3D2D1D0TMODD6(89H)T1T0
T1方式選擇位00-方式001-方式110-方式2T1工作狀態(tài)
T1
T0
TF0
TR0
T0腳INT0T0方式選擇位00-方式001-方式110-方式211-方式3T0工作狀態(tài)GATEC/TM1M0GATEC/TM1M0D7D5D4D3D2D1D0TMODD6(89H)T1T0
注意:TMOD只能以字節(jié)方式進行初始化例如,設(shè)置T0為定時器方式1,允許TR0啟動;T1為計數(shù)器方式0,允許INT1啟動。則TMOD=11000001B=0xc1又如,系統(tǒng)上電默認值為TMOD=0,則默認狀態(tài)應(yīng)為:T0和TI均為定時器方式0,允許TR0、TR1啟動。2023/2/114控制寄存器TCON
76543210TCONTF1TR1TF0TR0字節(jié)地址:88HTFx:Tx溢出標志位。響應(yīng)中斷后TFx有硬件自動清0。用軟件設(shè)置TFx可產(chǎn)生同硬件置1或清0同樣的效果。TRx:Tx運行控制位。置1時開始工作;清0時停止工作。TRx要由軟件置1或清0(即啟動與停止要由軟件控制)。TF1TR1TF0TR0IE1IT1IE0IT08FH8DH8CH8BH8AH89H88HTCON8EH(88H)定時器控制位外部中斷控制位
T1
T0
TF0
TR0
T0腳INT0注意,系統(tǒng)上電默認值為TCON=0,則默認狀態(tài)應(yīng)為:TR0和TR1均為關(guān)閉狀態(tài)、電平中斷觸發(fā)方式、沒有外部中斷請求M1M0工作方式功能說明00110101012313位定時/計數(shù)器16位定時/計數(shù)器8位自動重裝定時/計數(shù)器3種定時/計數(shù)器關(guān)系T0工作方式注意:T0有4種工作方式,每種工作方式都有定時和計數(shù)2種方式。T1只有3種工作方式(T0的方式3中占用了T1的部分資源)。M1M0工作方式功能說明00101001213位定時/計數(shù)器16位定時/計數(shù)器8位自動重裝定時/計數(shù)器T1工作方式學(xué)習(xí)順序:方式1→方式2→方式06.3定時/計數(shù)器的工作方式2023/2/117方式1:16位方式
X=216-N=65536-N計數(shù)范圍:1~65536
計數(shù)初值要分成2個字節(jié)分別送入TH0、TL0方式1定時時間:t=(216-a)×12/fosc(s)——使用16位定時/計數(shù)器(THx+TLx)(M0M1為01組合時)定時范圍為1~65,536μs(≈65ms)。最大定時時間(a=0,fosc=12MHz):t=216(s)=65536(s)定時方式最大計數(shù)值:N=65536(脈沖)計數(shù)值:N=(216–a)由于檢測一個負跳變需要2個機器周期,即24個振蕩周期,故最高計數(shù)頻率=。計數(shù)方式故,對于12MHz晶振,最大外部脈沖的頻率為0.5MHz。實例1
設(shè)單片機的fosc=12MHz,采用T0定時方式1在P1.0腳上輸出周期為2ms的方波。虛擬示波器分析:周期為2ms的方波由2個半周期為1ms的正負脈沖組成方波輸出原理:定時1ms后將端口輸出電平取反。2ms1msTH0
=
0xfc
TL0
=
0x181ms定時的計數(shù)初值應(yīng)為:a=216–t*fos/12=216–1000*12/12=64536=0xfc18注意:需要不斷重裝計數(shù)初值。(1)查詢方式#include<reg51.h>sbitP1_0
=
P1^0;main(){
TMOD
=
0x01;
//設(shè)置T0定時方式1(00000001B)TR0=1;//啟動T0
for(;;){
TH0
=
0xfc;
//裝載計數(shù)初值
TL0
=
0x18;
do{
}while(!TF0);//等待TF0溢出P1_0
=!P1_0;
//定時時間到P1.0反相
TF0
=
0;
//TF0標志清0
}}T0圖6.14實例1仿真波形圖(2)中斷方式#include<reg51.h>sbitP1_0=P1^0;timer0()interrupt1{//T0中斷函數(shù)P1_0=!P1_0; //P1.0取反
TH0=0xfc; //裝載計數(shù)初值
TL0=0x18;}main(){
TMOD=0x01; //T0定時方式1
TH0=0xfc; //裝載計數(shù)初值
TL0=0x18;EA=1; //開總中斷
ET0=1; //開T0中斷
TR0=1; //啟動T0 while(1);}注意:中斷響應(yīng)后系統(tǒng)可自動將TFx標志位清0小結(jié):使用定時/計數(shù)器的步驟強調(diào):TMOD的設(shè)置只能以字節(jié)形式給出T0
(1)設(shè)置TMOD——確定定時/計數(shù)器的工作狀態(tài)
(2)計算計數(shù)初值——產(chǎn)生期望的定時間隔計數(shù)初值a=216-t×fosc/12(t≤65536s)THx=a/256TLx=
a/
%256
裝載計數(shù)初值:3)確定采用何種方式處理溢出結(jié)果若是查詢方式——采用條件判斷語句若是中斷方式→中斷初始化設(shè)置和中斷服務(wù)程序:do{}while(!TFx);
//x=0或1……ETx=1;//開定時x中斷,x=0或1EA=1; //開總中斷tx_srv()interruptn
{//n=1或3……}4)啟動定時器:
TR0=1
或TR1=1
5)進行定時或計數(shù)結(jié)束后的其它工作6)為下次定時/計數(shù)做準備(清TFx標志+重裝載計數(shù)初值)若是中斷方式,則無需軟件清TFx標志位;若是查詢方式,需要軟件清除TFx標志位。2023/2/129方式2:8位自動重裝方式
X=28-N=256-N計數(shù)范圍:1~256
特別適合于脈沖信號發(fā)生器采用8位計數(shù)器,延時時間t=(28-a)×12/fosc(微秒)→12MHz時的最大定時量為256s;可自動重裝載計數(shù)初值(TLx溢出后,THx數(shù)值可自動裝入TLx);因沒有裝載計數(shù)初值造成的定時延誤,方式2定時精度相對較高。方式2(1)查詢方式#include<reg51.h>sbitP1_0
=
P1^0;main(){TMOD
=
0x02;
TH0=
TL0=0x06;
TR0=1;
for(;;){
do{}while(!TF0);
P1_0
=!P1_0;
TF0
=
0; }}(2)中斷方式#include<reg51.h>sbitP1_0=P1^0;timer0()interrupt1{P1_0=!P1_0; }main(){TMOD=0x02;
TH0=TL0=0x06;EA=ET0=1; TR0=1;
while(1);}實例2采用T0定時方式2在P1.0口輸出周期為0.5ms的方波(設(shè)fosc=12MHz)。分析:計數(shù)初值TL0=((256-250)*12/12)%256=0x06,TMOD=0x02周期為0.5ms方波實例3
將第4章實例5“計數(shù)顯示器”中的軟件查詢法進行按鍵檢測改用T0計數(shù)器方式2,并以中斷方式編程。【解】原圖中按鍵是由I/O口P3.7引腳接入的,本實例需要將其改由T0(P3.4)引腳接入。分析:將T0設(shè)置為計數(shù)器方式2,設(shè)法使其在1個外部脈沖到來時就能溢出(即計數(shù)溢出周次為1)產(chǎn)生中斷請求。計數(shù)初值為:a=28–1=255=0xff初始化TMOD=00000110B=0x06實例3參考程序運行效果2023/2/137方式0:13位方式
工作方式0使用13位的定時/計數(shù)器(THi7-0+TLi4-0)定時時間t=(213-a)×12/fosc(μs)計數(shù)初值a=213-t×fosc/1212MHz時的最大定時量t=213μs=8.192ms解:計數(shù)初值a=213-5000×12/12=3192=110001111000BTH0TL0011000110
0
011000
6 3 1 8H實例4
計算T0方式0定時5ms的計數(shù)初值a(設(shè)fosc=12MHz)由于方式0的TL0高3位未用(一般填0),因此
a=0110001100011000=6318H即,TH0=0x63;TL0=0x18;除計數(shù)器位數(shù)不同外,方式0與方式1的邏輯結(jié)構(gòu)并無差異。方式0采用13位計數(shù)器是為了與早期產(chǎn)品MCS-48單片機兼容。方式0的初值計算比較麻煩,一般采用方式1替代。方式0方式1應(yīng)用:定時器——用于定時控制,或作為分頻器發(fā)生各種不同頻率的方波;計數(shù)器——用于外部脈沖統(tǒng)計或外部中斷源擴充;復(fù)雜應(yīng)用—需要將定時與計數(shù)結(jié)合起來。6.4定時/計數(shù)器的應(yīng)用實例5由P3.4口輸入一個外部低頻窄脈沖信號。當(dāng)該信號出現(xiàn)負跳變時,由P3.0口輸出寬度為500μs的同步脈沖,如此往復(fù)。要求據(jù)此設(shè)計一個波形展寬程序(fosc=6MHz)。1)將T0設(shè)置為1次計數(shù)方式2,初值設(shè)為0xff。這樣P3.4一旦發(fā)生負跳變T0就會產(chǎn)生溢出;2)查詢TF0標志位。當(dāng)TF0=1時將T0設(shè)置為500s定時方式2,初值a為0x06(=256-500×6/12),同時使P3.0輸出低電平;3)查詢TF0標志位。待T0再次溢出后使P3.0輸出高電平,然后將T0設(shè)置為1次計數(shù)方式2,如此往復(fù)進行。分析:可以采取如下做法:T0實例5參考程序?qū)嵗?仿真運行效果P3.0P3.4實例6
采用10MHz晶振,在P1.0腳上輸出周期為2.5s,高電平占空比為20%的脈沖信號。分析:10兆晶振,方式1最大定時為54.613ms;可以采用定時中斷與軟件計數(shù)聯(lián)合法:利用定時中斷進行中斷次數(shù)統(tǒng)計;若取10ms產(chǎn)生定時,則2.5s=250次中斷之和;則500ms(20%占空比)相當(dāng)于50次中斷之和。a=216-10000×12/10=0xd1202.5s0.5s實例6參考程序?qū)嵗?仿真運行效果實例7采用定時中斷控制流水燈,實現(xiàn)每秒1位,自上而下循環(huán)功能(fosc=12MHz)。分析:可以利用20次50ms的定時中斷方案,計數(shù)初值為:
a=65536-50000×12/12=0x3cb0中斷函數(shù)的任務(wù)過多,不利于實時控制。如何減少中斷函數(shù)任務(wù)?新方案:中斷函數(shù)中僅做中斷次數(shù)統(tǒng)計和計數(shù)初值重入,控制操作改在主函數(shù)中進行。實例6的問題:實例7參考程序?qū)嵗?運行效果實例8測量從P3.2(INT0)輸入的正脈沖的寬度,測量結(jié)果以BCD碼形式存放在片內(nèi)RAM40H開始的單元處(設(shè)40H地址存放個位,系統(tǒng)時鐘為12MHz,被測脈沖信號周期不超過100ms)
。0分析:GATE=TR0=1時允許INT0的脈沖控制定時器的啟停,則根據(jù)T0先啟動、再關(guān)閉后的計數(shù)值可算出被測脈沖寬度。INT0端信號T0中的脈沖數(shù)實例8參考程序INT0端信號T0中的脈沖數(shù)0實例8電路脈沖設(shè)置(100ms)在Proteus軟件中實現(xiàn)C51源碼級調(diào)試的方法:形成OMF(absoluteobjectmoduleformatfiles,絕對目標文件)格式文件。omf文件設(shè)置omf文件加載啟動調(diào)試omf文件窗口片內(nèi)RAM窗口實例8的運行結(jié)果結(jié)果:計數(shù)值為50000脈沖→脈寬值為50ms。運行到光標實例8小結(jié)1、測量未知脈沖寬度的方法——利用INTx引腳接入待測脈沖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年冀教新版選擇性必修1生物下冊階段測試試卷含答案
- 2025年浙科版七年級生物上冊階段測試試卷
- 二零二五年度城市綜合體夜間安全管理打更合同3篇
- 房屋出租做旅社合同(2篇)
- 2025版城市軌道交通沿線商鋪租賃合同示范文本4篇
- 個人資金借給公司合同范本(2024版)版B版
- 2025版南寧國際學(xué)校教育設(shè)施租賃合同及學(xué)生教育服務(wù)協(xié)議3篇
- 個性化離婚合同模板2024年版B版
- 2025年度門窗配件專業(yè)供應(yīng)商合同4篇
- 2025技術(shù)員派遣及系統(tǒng)集成服務(wù)合同3篇
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國人民保險集團校園招聘高頻重點提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對法》及其應(yīng)用案例
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 銷售提成對賭協(xié)議書范本 3篇
- 勞務(wù)派遣招標文件范本
- EPC項目階段劃分及工作結(jié)構(gòu)分解方案
- 小學(xué)二年級數(shù)學(xué)口算練習(xí)題1000道
- 家譜、宗譜頒譜慶典講話
評論
0/150
提交評論