




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
任務(wù)4:定時計數(shù)器的使用軟件延時法:利用指令(延時子程序)運行所消耗的時間實現(xiàn)所需的定時時間。特點:由CPU控制,占用CPU的資源;硬件法:利用一個硬件電路實現(xiàn)所需的時間定時,一旦時間到便產(chǎn)生一個標志信號通知CPU。特點:由CPU控制定時的啟動,但定時過程由專用模塊實現(xiàn),CPU不參與其過程。所以提高了CPU的工作效率。定時器就是專用于產(chǎn)生延時和計數(shù)的外圍模塊,是單片機內(nèi)部重要的組成部分。一、定時的兩種方式
定時:用于產(chǎn)生一個標準的時間間隔。單片機使用這種方式可以產(chǎn)生一個符合某一要求的脈沖方波(如下圖)。而定時/計數(shù)器是對89C51晶振信號12分頻后的脈沖計數(shù),即每個機器周期使定時器(T0或T1)的數(shù)值加1直至溢出。當89C51單片機晶振頻率為12MHz時,一個機器周期為1uS,計數(shù)頻率為1MHz,計數(shù)器計數(shù)1次所用時間為1uS,計數(shù)器計數(shù)N個,則所用時間為N*1uS。
20mS40mSMCS-51Px.y
輸出波形
計數(shù):通過引腳T0(P3.4)和T1(P3.5)對外部脈沖信號計數(shù)。當輸入脈沖信號產(chǎn)生由1至0的下降沿時,定時器加1計數(shù)。
外部脈沖外部設(shè)備說明:不管是定時還是計數(shù)方式,定時/計數(shù)器實質(zhì)都是對脈沖計數(shù),當對外部信號計數(shù)就是計數(shù)功能,對內(nèi)部晶振信號12分頻計數(shù)就是定時功能。每個定時/計數(shù)器都不占用CPU時間,除非計數(shù)器溢出,才可以中斷CPU當前操作。
二、定時器的相關(guān)寄存器GATE門控位:GATE=0時,只要軟件設(shè)置TR=1,就可以啟動計數(shù)器工作;
GATE=1時,只有外部中斷引腳INT=TR=“1”時,才能啟動計數(shù)器工作C/T計數(shù)/定時方式選擇位:C/T=1時,計數(shù)模式。
C/T=0時:定時模式。M1、M0工作方式設(shè)置位。GATEC/TM1M0GATEC/TM1M0定時器1定時器01.工作方式寄存器TMOD(SFR的地址:89H)M1M0工作方式說明00013位定時/計數(shù)器01116位定時/計數(shù)器1028位自動重裝定時/計數(shù)器113T0分成兩個獨立的8位定時/計數(shù)器;T1停止計數(shù)注意!不可以位尋址TF0:T0的溢出中斷請求標志:硬件自動置1或清0
計數(shù)器溢出時硬件自動置位,即TF0=1。進入中斷后再由硬件自動清除(TF0=0);TR0:T0的運行控制位:軟件置1或清0
由軟件設(shè)定:TR0=1
T0開始工作;
TR0=0
T0停止計數(shù)。TF1、TR1同上。TF1TR1TF0TR0IE1IT1IE0IT02、控制寄存器TCON(SFR地址:88H)可以位尋址定時/計數(shù)器相關(guān)位外部中斷相關(guān)位3、初值寄存器TH和TLTH1和TL1:T1的高八位和低八位寄存器。TH0和TL0:T0的高八位和低八位寄存器。在MCS-51單片機內(nèi)部,具有兩個完全相同的定時計數(shù)器T0、T1。它們都具有兩種工作模式:定時和計數(shù);無論是定時或計數(shù)模式,又都有具備四種工作方式,根據(jù)實際要求達到最佳的工作狀態(tài)。定時計數(shù)器的工作方式、工作模式是由SFR中的TMOD內(nèi)容來決定的。因此對其方式、模式的設(shè)定是靠對TMOD的初始化編程實現(xiàn)的。三、51單片機定時器/計數(shù)器的四種工作方式1,方式0:13位定時器/計數(shù)器THTL震蕩器1/12(8位)(低5位)TF中斷啟動控制T引腳TRGATEINT高三位棄用C/T=0C/T=113位加1計數(shù)器在某一個初值的基礎(chǔ)上加1計數(shù),當計數(shù)器計滿為全“1”,再來一個計數(shù)脈沖時,就產(chǎn)生一個“溢出中斷信號”TF=1,向CPU發(fā)出中斷請求。由于低8位計數(shù)器中的高三位沒有參與工作,故填裝初值時應(yīng)“避開”此三位。類同于模式0。由于兩個計數(shù)器為完整的8位,故將計算好的16位初值可直接填裝到TH、TL中。在某一個初值的基礎(chǔ)上加1計數(shù),當計數(shù)器計滿為全“1”,再來一個計數(shù)脈沖時,就產(chǎn)生一個“溢出中斷信號”TF=1,向CPU發(fā)出中斷請求。TLTH震蕩器1/12(8位)(8位)TF中斷啟動控制T引腳TRGATEINTC/T=0C/T=12,方式1:16位定時器/計數(shù)器16位加1計數(shù)器方式0、1的特點13位和16位的計數(shù)器方式。啟動后,從某一個初值的基礎(chǔ)上進行“加1”計數(shù)。當計到“全1”時再來一個計數(shù)脈沖,計數(shù)器就會產(chǎn)生一個“溢出中斷信號”即TF=1,此時計數(shù)器本身為“全零”。如果需要重復(fù)性的完成某一值的定時或計數(shù),需要在每一次計數(shù)前不斷的重新預(yù)裝初值,稱之為“軟件重裝初值”。TL做計數(shù)器,TH做初值寄存器,工作前TL,TH分別預(yù)置相同的初值。TL計數(shù)產(chǎn)生溢出的同時,將TH中的初值自動重裝TL。TL繼續(xù)計數(shù)。TL(8位)TH(8位)震蕩器1/12TF中斷控制T引腳TRGATEINTC/T=1C/T=03,方式2
:8位自動重裝定時器/計數(shù)器8位加1計數(shù)器8位初值寄存器方式2的特點及應(yīng)用8位計數(shù)器的方式,定時或計數(shù)的范圍遠遠小于方式0和方式1;具備初值“硬件自動重裝”功能,非常適合進行重復(fù)性定時的場合,如產(chǎn)生連續(xù)方波信號等。編成中省去了軟件重裝初值的麻煩;在MCS-51單片機中,T1設(shè)定成此模式用于做串行口波特率發(fā)生器。將T0和T1重新進行“拆分、組合”。將T0變?yōu)門H0,TL0組成的兩個獨立的8位定時/計數(shù)器。TH0+TF1+TR1組成8位定時/計數(shù)器;TL0+TF0+TR0組成8位定時/計數(shù)器;TL0震蕩器1/12TF0中斷控制T0引腳TR0GATEINT0C/T=0C/T=1TH0TF1中斷控制TR1Fosc/124,方式3
組合擴展模式(僅適用于T0)在方式3時T0,T1的電路結(jié)構(gòu)圖TL0八位定時/計數(shù)器TH0八位定時器TL1TF0TF1將T0分解為兩個計數(shù)器TL0:8位定時/計數(shù)器;TH0:8位定時器(借用TR1和TF1)T1(模式2)做波特率發(fā)生器。TH1定時/計數(shù)器4種方式比較(計數(shù)最大值)模式計數(shù)模M最大計數(shù)值模式013位Tmax=213=8192模式116位Tmax=216=
65536模式2,38位Tmax=28=256定時/計數(shù)器4種方式比較(定時最大時間)模式計數(shù)模M最大定時時間Tmax(fosc=12M)模式013位Tmax=8192*1μ?
=8.192ms模式116位Tmax=65536*1μ?=65.536ms模式2,38位Tmax=256*1μ?=0.256msM---計數(shù)器的模 模式0:M=213 =8192
模式1:M=216 =65536
模式2、3:M=28=256T=(M-TC)×t
其中,T:定時時間,M:計數(shù)器的模,TC:計數(shù)初值,t:計數(shù)器計數(shù)脈沖的周期(t=12/fosc)。四、51單片機初值的計算TC計算舉例定時方式:要求T0產(chǎn)生50mS的定時?!窘?】選擇模式1。
TC=65536?(50mS*1000)/1μS =65536?50000 =15536=3CB0H【思考題】為什么選擇模式1?【思考題】TC有沒有更簡潔的表示方式?
TH=(65536-50000)/256;TL==(65536-50000)%256;TH=(-50000)/256;TL==(-50000)%256;(1)設(shè)置定時/計數(shù)器的工作方式通過對方式寄存器TMOD的設(shè)置,確定相應(yīng)的定時/計數(shù)器是定時功能還是計數(shù)功能,以及工作方式及啟動方法。(2)設(shè)置定時/計數(shù)器的初始值,即設(shè)置THx和TLx的值。
定時/計數(shù)器允許用戶編程設(shè)定開始計數(shù)的數(shù)值,稱為賦初值。初值不同,則計數(shù)器產(chǎn)生溢出時,計數(shù)個數(shù)也不同。五、定時/計數(shù)器的應(yīng)用步驟(3)啟動定時/計數(shù)器當設(shè)置了定時器的工作方式并啟動定時器工作后,定時器就按被設(shè)定的工作方式獨立工作,不再占用CPU的操作時間,只有在計數(shù)器計數(shù)溢出時才能中斷CPU當前的操作。
(4)計數(shù)溢出計數(shù)溢出標志位在控制寄存器TCON中,用于通知用戶定時/計數(shù)器已經(jīng)計滿,用戶可以采用查詢方式或中斷方式進行操作。中斷方式查詢方式定時/計數(shù)器的編程六、51單片機定時器編程與控制(1)中斷方式——編程步驟設(shè)置中斷優(yōu)先級,當中斷只有一個時不用設(shè)置設(shè)置TMOD初始化設(shè)置定時/計數(shù)初值啟動定時/計數(shù)器編寫定時/計數(shù)器中斷的處理服務(wù)程序124563編程步驟開中斷(2)查詢方式——編程步驟設(shè)置TMOD初始化設(shè)置定時/計數(shù)初值啟動定時/計數(shù)器查詢溢出標志位TF0或TF1置位情況及相關(guān)處理1
2
4
5
3
開中斷編程步驟任務(wù):利用單片機定時/計數(shù)器實現(xiàn)1位簡易秒表的設(shè)計,顯示時間0到9秒。
舉例任務(wù)分析任務(wù)的關(guān)鍵是定時,可以利用單片機內(nèi)部定時/計數(shù)器完成。當單片機晶體振蕩頻率為12MHz,則定時計數(shù)器的定時基準為計數(shù)1次時間為1us,單片機定時計數(shù)器有4種工作模式,可以構(gòu)成8位、13位和16位計數(shù)器;不同位數(shù)的計數(shù)器其最大定時時間不同,可以采用不同的定時方案。1)8位計數(shù)器當構(gòu)成8位計數(shù)器時,其最大計數(shù)值為256,即最大定時時間為256us;可以利用定時計數(shù)器定時0.250ms,循環(huán)定時4000次,實現(xiàn)1S的定時;2)13位計數(shù)器當構(gòu)成13位計數(shù)器時,其最大計數(shù)值為8192,即最大定時時間為8.192ms,可以利用定時計數(shù)器1次定時5ms,循環(huán)定時200次,實現(xiàn)1S的定時;3)16位計數(shù)器當構(gòu)成16位計數(shù)器時,其最大計數(shù)值為65536,即最大定時時間為65.536ms,可以利用定時計數(shù)器1次定時50ms,循環(huán)定時20次,實現(xiàn)1S的定時;設(shè)計方案采用16位計數(shù)器實現(xiàn)定時50ms,循環(huán)反復(fù)20次,達到1S定時。顯示采用1位七段數(shù)碼管。硬件電路仿真圖
軟件程序單片機定時計數(shù)器溢出有中斷和查詢兩種處理方式;查詢方式是CPU啟動定時計數(shù)器工作后,馬上讀取定時計數(shù)器溢出標志位TF0(TF1),判斷是否為1,為1表示計數(shù)器溢出,1次定時時間到;如果為0,表示定時時間沒到,CPU繼續(xù)讀取并判斷,重復(fù)這個過程。中斷方式是在定時計數(shù)器溢出后,利用定時/計數(shù)器中斷系統(tǒng)向CPU提請中斷請求,CPU轉(zhuǎn)去處理相應(yīng)的中斷服務(wù)程序,如果定時計數(shù)器沒有溢出,則CPU執(zhí)行主程序。采用查詢方式,定時計數(shù)器在定時計數(shù)時,CPU在查詢中斷溢出標志位,CPU不能處理其他事件,占用了CPU的時間;而中斷方式,定時計數(shù)器在定時計數(shù)時,CPU執(zhí)行主程序,只有計數(shù)溢出后,CPU才停止其他程序的執(zhí)行,轉(zhuǎn)去處理定時計數(shù)器溢出中斷服務(wù)程序,不占用CPU資源。1)查詢方式程序設(shè)計參考程序:/*1位秒表,數(shù)碼管顯示,定時溢出采用查詢方式*/#include<reg51.h>voiddelay1s(){unsignedchari;TMOD=0x01;//置T0為模式1,16位計數(shù)器
for(i=0;i<20;i++)//20次循環(huán)定時,每次循環(huán)定時時間為50ms{ TH0=(65536-50000)/256;//定時器50mSTH0的初始值
TL0=(65536-50000)%256;//定時器50mSTL0的初始值
TR0=1; //啟動T0 while(!TF0);//查詢計數(shù)器是否溢出(TF0=1),即定時50ms時間到
TF0=0; //50ms定時時間到,將定時器溢出標志位TF0清零
}}參考程序:voidmain(){ unsignedcharS;//定義變量S,暫存秒的數(shù)值
TMOD=0X01;//定時器初始化
TH0=(65536-50000)/256;計數(shù)器初始值
TL0=(65536-50000)%256; S=0;//秒數(shù)值初始為0 TR0=1;//啟動計時
while(1) { P0=S;//顯示秒時間
delay1s();//調(diào)用1秒延時函數(shù)
S++;//秒變量加1
if(S==10)S=0;//判斷10S時間是否到,到了秒變量清零。
}}2)中斷方式程序設(shè)計參考程序:/*1位秒表,數(shù)碼
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文具及類似用品戰(zhàn)略市場規(guī)劃報告
- 自動絡(luò)筒機市場分析及競爭策略分析報告
- 包服務(wù)合同范本
- 企業(yè)股東股權(quán)合同范本
- 變更屬于合同范本
- 世界紅十字日紀念演講稿
- 中藥炮制工中級練習(xí)題及參考答案
- 少年兒童健康試題(附參考答案)
- 建筑制圖及識圖模擬習(xí)題及參考答案
- 《風(fēng)箏》大班教案
- 2023年株洲市石峰區(qū)網(wǎng)格員招聘筆試題庫及答案解析
- 數(shù)控機床的機械結(jié)構(gòu)-課件
- 古代希臘文明教學(xué)課件
- 《一生中愛》諧音歌詞
- 氬氣安全技術(shù)說明書MSDS
- 四年級數(shù)學(xué)下冊教案-練習(xí)一-北師大版
- 5G手機無線通訊濾波芯片產(chǎn)業(yè)化項目環(huán)境影響報告表
- 《對外援援助成套項目勘察設(shè)計取費標準內(nèi)部暫行規(guī)定(稿)》
- 通用反應(yīng)單元工藝
- 電飯煲的智能控制系統(tǒng)設(shè)計
- 儲罐玻璃鋼內(nèi)防腐
評論
0/150
提交評論