




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章定時器/計數(shù)器6.189C52的定時/計數(shù)器
實現(xiàn)定時功能,比較方便的辦法是利用單片機(jī)內(nèi)部的定時/計數(shù)器。也可以采用下面三種方法:軟件定時:軟件定時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。采用時基電路定時:例如采用555電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進(jìn)行控制和修改,即不可編程。采用可編程芯片定時:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強(qiáng),使用靈活。在單片機(jī)的定時/計數(shù)器不夠用時,可以考慮進(jìn)行擴(kuò)展。定時器/計數(shù)器模塊的基本用途常用于測量時間、速度、頻率、脈寬,提供定時脈沖信號,還能為編程人員提供準(zhǔn)確定時AT89C52中有3個定時器/計數(shù)器定時器/計數(shù)器0定時器/計數(shù)器1定時器/計數(shù)器26.1定時器/計數(shù)器的基本用途6.2定時器/計數(shù)器0和1的結(jié)構(gòu)和工作原理
定時器/計數(shù)器0和1工作原理相關(guān)的特殊功能寄存器四種工作模式相關(guān)仿真實例6.2定時/計數(shù)器的結(jié)構(gòu)和工作原理
一、定時/計數(shù)器的結(jié)構(gòu)定時/計數(shù)器的實質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標(biāo)志。
二、定時/計數(shù)器的工作原理
加1計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是T0或T1引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當(dāng)加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。
可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。
設(shè)置為定時器模式時,加1計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)(1個機(jī)器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值N乘以機(jī)器周期Tcy就是定時時間t
。設(shè)置為計數(shù)器模式時,外部事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機(jī)器周期的S5P2期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值在下一個機(jī)器周期的S3P1期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。當(dāng)晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2s。
三、定時器/計數(shù)器結(jié)構(gòu)1、工作寄存器:T0、T1為16位
T0分為:TH0(高8位),TL0(低8位)T1分為:TH1(高8位),TL1(低8位)例:向T0送0FEDHMOVTH0,#0FHMOVTL0,#0EDH
2、定時/計數(shù)器的控制
89C52單片機(jī)定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;TCON用于控制其啟動和中斷申請。1)工作方式寄存器TMOD(*)
工作方式寄存器TMOD用于設(shè)置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:GATE:門控位。GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數(shù)器工作;GATA=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳也為高電平時,才能啟動定時/計數(shù)器工作。即GATE表示/INT0,/INT1是否參與對T1,T0進(jìn)行控制。
:定時/計數(shù)模式選擇位。=0為定時模式;=1為計數(shù)模式。M1M0:工作方式設(shè)置位。定時/計數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。TMOD不能進(jìn)行位尋址。系統(tǒng)復(fù)位后為0例:設(shè)置T1為軟件啟動,為定時器工作方式,選擇操作模式2,T0為計數(shù)方式,軟件啟動,選擇操作模式1TMOD各位為:00100101即25HMOVTMOD,#25H或MOV89H,#25H
3、控制寄存器TCON
TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。它可進(jìn)行位尋址,復(fù)位后為0。TF1(TCON.7):T1溢出中斷請求標(biāo)志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標(biāo)志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。TR1(TCON.6):T1運(yùn)行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。TF0(TCON.5):T0溢出中斷請求標(biāo)志位,其功能與TF1類同。TR0(TCON.4):T0運(yùn)行控制位,其功能與TR1類同。
6.3定時/計數(shù)器的工作方式
一、方式0
方式0為13位計數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時向TH0進(jìn)位,TH0溢出時,置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請求。
二、方式1方式1的計數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數(shù)器。
三、方式2方式2為自動重裝初值的8位計數(shù)方式。
工作方式2特別適合于用作較精確的脈沖信號發(fā)生器。
四、方式3方式3只適用于定時/計數(shù)器T0,定時器T1處于方式3時相當(dāng)于TR1=0,停止計數(shù)。
工作方式3將T0分成為兩個獨(dú)立的8位計數(shù)器TL0和TH0
。
6.4T0,T1編程時應(yīng)注意的問題一、初始化1、將工作方式控制字寫入TMOD(確定工作方式,操作方式,啟動控制方式)例:T1為16位,/INT1不參與控制,T1為定時器。控制字:00010000MOVTMOD,#10H2、將定時或計數(shù)初值寫入THi,TLi中(16位計數(shù)初值須分兩次寫入對應(yīng)的計數(shù)器)例:MOVTH1,#55HMOVTL1,#00H3、置ET1/ET0允許T1/T0申請中斷
例:SETBET0;允許T0中斷4、置EA,CPU對所有中斷開放SETBEA5、啟動T1或T0(*)
SETBTR1SETBTR0二、初值計算T0,T1選擇不同的工作方式,不同的操作方式,其初值均不相同。設(shè)最大計數(shù)值為M,則各方式下的M值為:方式0:M=213=8192方式1:M=216=65536方式2:M=28=256方式3:M=256(T0分為TH0和TL0,其M均為256)設(shè)計數(shù)初值為X,則X=M-計數(shù)值1、計數(shù)工作方式
脈沖由外部引入,對外部脈沖計數(shù),計數(shù)值根據(jù)要求確定。計數(shù)初值X=M-計數(shù)值例:某工序要求對外部脈沖信號計100次X=M-100
若為方式2,則X=256-100=1562、定時工作方式(*)
計數(shù)脈沖由內(nèi)部供給(相當(dāng)于對機(jī)器周期計數(shù)),計數(shù)脈沖頻率fcont=晶振頻率fosc/12所以:計數(shù)周期T=12/fosc,即每個脈沖的時間為12/fosc若要求的定時時間為t,則此時計數(shù)初值X=M-t/T=M-t/(12/fosc)=M-t*fosc/12例:設(shè)T0為計數(shù)器,以方式2工作,外界發(fā)生一次事件,溢出中斷;T1作為定時器,以操作方式1工作,定時時間為1ms(即延時1ms后就申請中斷),晶振頻率為6MHZ,計算T0,T1的計數(shù)初值。解:T0:計數(shù)器,方式2,X0=256-1=255=FFHT1:定時器,方式1,1msX1=65536-1ms*6*106/12 =65536-1*103/2=65536-500=65036=FE0CH三、初始化舉例(*)設(shè)T1為定時工作方式,定時50ms,選擇方式1,允許中斷,軟啟動; T0為計數(shù)工作方式,對外部脈沖計數(shù)10次,硬啟動,禁止中斷,選擇工作方式2; fosc=6MHZ解:T0:X0=256-10=246=F6H T1:X1=65536-50ms*6M/12 =65536-25000 =40536=9E58HTMOD=00011110=1EH初始化程序如下: MOVTMOD,#1EH MOVTH0,#0F6H MOVTL0,#0F6H MOVTH1,#9EH MOVTL1,#58H MOVIE,#88H SETBTR0; 要等到/INT0=1時方可真正啟動 SETBTR16.5定時器的操作方式及應(yīng)用1、方式0及應(yīng)用(僅用了TH和TL的低5位)(*)例:選用T0,操作方式0,用于定時,由P1.0輸出周期為1ms的方波,設(shè)fosc=6MHZ解:定時時間為500μs
初始值X0=8192-t*fosc/12=8192-250 =7942=1F06H
但由于是13為定時器,TL0的高3位未用,則填入0,所以X0的實際值為F806H
ORG8000H MOVTMOD,#00H MOVTL0,#06H MOVTH0,#0F8H SETBTR0;啟動T0,該程序未涉及中斷,所以可以不用設(shè)置IELP1:JBCTF0,LP2;TF0只有在申請中斷被響應(yīng)后才會自動清0,這里不涉及中斷,所以人工清0 AJMPLP1LP2:MOVTL0,#06H MOVTH0,#0F8H CPLP1.0 SJMPLP12、方式1及應(yīng)用(16位)設(shè)單片機(jī)的fosc=12MHZ,要求在P1.0腳上輸出周期為2ms的方波解:定時間隔為1ms,每次時間到時,P1.0取反。 機(jī)器周期為1μs,所以需計1000次
初值X=65536-1000
采用定時器0的方式1編程,采用中斷方式。 #include<reg51.h> sbitp1_0=p1^0; voidtimer0(void)interrupt1using1 {p1_0=!p1_0; TH0=(65536-1000)/256; TL0=(65536-1000)%256; } voidmain(void) {TMOD=0x01;
p1_0=0;TH0=(65536-1000)/256;TL0=(65536-1000)%256; ET0=1; EA=1; TR0=1; do{}while(1);}
3、方式2及應(yīng)用(如:用于外部中斷擴(kuò)展)
擴(kuò)展方法是,將定時/計數(shù)器設(shè)置為計數(shù)器方式,計數(shù)初值設(shè)定為滿程,將待擴(kuò)展的外部中斷源接到定時/計數(shù)器的外部計數(shù)引腳。從該引腳輸入一個下降沿信號,計數(shù)器加1后便產(chǎn)生定時/計數(shù)器溢出中斷。即實現(xiàn)邊沿觸發(fā)的外部中斷請求。例如,利用T0擴(kuò)展一個外部中斷源。將T0設(shè)置為計數(shù)器方式,按方式2工作,TH0、TL0的初值均為0FFH,T0允許中斷,CPU開放中斷。其初始化程序如下:
MOVTMOD,#06H;置T0為計數(shù)器方式2MOVTL0,#0FFH;置計數(shù)初值
MOVTH0,#0FFHSETBTR0;啟動T0工作
SETBET0;允許T0中斷
SETBEA;CPU開中斷4、方式3及應(yīng)用(僅T0有此方式,T1沒有)1)結(jié)構(gòu)(*)T0:TH0(8位)只用作簡單的內(nèi)部定時器功能,使用原T1的TR1和TF1,占用了T1的中斷源。TH0的啟動
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安徽蕪湖市國有資本投資運(yùn)營有限公司招聘10人考前自測高頻考點模擬試題及答案詳解(新)
- 張家口市中醫(yī)院醫(yī)療安全預(yù)警處置考核
- 2025內(nèi)蒙古錫林郭勒盟錫盟文體局招募公共服務(wù)文化人才志愿者1名模擬試卷附答案詳解(模擬題)
- 2025年上海市閔行區(qū)莘莊實驗小學(xué)代課教師招聘考前自測高頻考點模擬試題及答案詳解(易錯題)
- 滄州市人民醫(yī)院醫(yī)療器械消毒滅菌考核
- 2025年淮南毛集實驗區(qū)招聘區(qū)屬國有企業(yè)3人考前自測高頻考點模擬試題及答案詳解(典優(yōu))
- 2025年池州市貴池區(qū)招聘教師24人模擬試卷有完整答案詳解
- 秦皇島市中醫(yī)院鑒別診斷思維能力考核
- 2025第二人民醫(yī)院頸椎后路單開門椎管成形術(shù)專項技能考核
- 邢臺市中醫(yī)院腦血管畸形栓塞治療技術(shù)考核
- 2025-2030中國啤酒企業(yè)海外并購案例及跨文化整合經(jīng)驗總結(jié)
- 2025成人高考政治真題及答案
- 2025年紀(jì)檢監(jiān)察業(yè)務(wù)知識試題庫及參考答案
- 國開2025年《行政領(lǐng)導(dǎo)學(xué)》形考作業(yè)1-4答案
- 廣東省廣州市天河執(zhí)信中學(xué)2024-2025學(xué)年九年級上學(xué)期期中考試化學(xué)試卷(含答案)
- 盆底(肌)康復(fù)理論及技術(shù)規(guī)范考核考核試題及答案
- 2025年甘肅省輔警考試真題及答案
- 2024-2025年廣東省廣州市番禺中學(xué)附屬學(xué)校八年級上學(xué)期數(shù)學(xué)期中考試卷(含答案)
- 高中通用技術(shù)(相框)設(shè)計方案
- 醫(yī)院老院區(qū)病房樓改造工程案例課件
- 診斷學(xué)腹部檢查(英文)
評論
0/150
提交評論