單片機(jī)原理與應(yīng)用 第5章 定時(shí)器計(jì)數(shù)器_第1頁(yè)
單片機(jī)原理與應(yīng)用 第5章 定時(shí)器計(jì)數(shù)器_第2頁(yè)
單片機(jī)原理與應(yīng)用 第5章 定時(shí)器計(jì)數(shù)器_第3頁(yè)
單片機(jī)原理與應(yīng)用 第5章 定時(shí)器計(jì)數(shù)器_第4頁(yè)
單片機(jī)原理與應(yīng)用 第5章 定時(shí)器計(jì)數(shù)器_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單片機(jī)原理與應(yīng)用,北京交通大學(xué)電子信息工程學(xué)院自動(dòng)化系 2017年1月,北京交通大學(xué),2,第5章 定時(shí)器/計(jì)數(shù)器,本章主要內(nèi)容 定時(shí)/計(jì)數(shù)器的功能 與定時(shí)/計(jì)數(shù)器有關(guān)的寄存器 定時(shí)/計(jì)數(shù)器四種工作方式 定時(shí)器的應(yīng)用,北京交通大學(xué),3,本章要求:熟練掌握計(jì)數(shù)/定時(shí)編程方法,定時(shí)方法,軟件定時(shí) 硬件定時(shí) 可編程定時(shí)器定時(shí),北京交通大學(xué),4,TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0,TCON,TMOD,TH1 TL1 TH0 TL0,CPU,一、定時(shí)/計(jì)數(shù)器的功能,圖1定時(shí)/計(jì)數(shù)器與TMOD、TCON的結(jié)構(gòu)框圖,共有兩個(gè)可編程的定時(shí)/計(jì)數(shù)器T0和T1

2、 都是十六位加法計(jì)數(shù)器結(jié)構(gòu),分別由TH0、TL0 和TH1、TL1四個(gè)8位計(jì)數(shù)器組成 每個(gè)定時(shí)計(jì)數(shù)器都具有定時(shí)和計(jì)數(shù)兩種功能,北京交通大學(xué),5,圖 2 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)框,北京交通大學(xué),6,功能:對(duì)外來(lái)脈沖進(jìn)行計(jì)數(shù) 外來(lái)計(jì)數(shù)脈沖加在單片機(jī)的兩個(gè)信號(hào)引腳T0(P3.4)T1(P3.5) 外部輸入的脈沖在負(fù)跳變時(shí)觸發(fā)計(jì)數(shù) 計(jì)數(shù)器在每個(gè)機(jī)器周期的S5P2期間采樣外部輸入信號(hào)。 若一個(gè)周期采樣值為1,下一個(gè)周期采樣值為0,則計(jì)數(shù)器加1。 脈沖的頻率最高為振蕩頻率的1/24 外部輸入信號(hào)的高電平和低電平保持時(shí)間大于一個(gè)機(jī)器周期 計(jì)數(shù)器計(jì)滿回零,發(fā)中斷申請(qǐng),1.計(jì)數(shù)功能,北京交通大學(xué),7,2.定時(shí)功能

3、計(jì)數(shù)器的計(jì)數(shù)來(lái)實(shí)現(xiàn) 計(jì)數(shù)脈沖:每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖。即計(jì)數(shù)頻率為振蕩頻率的1/12。 根據(jù)計(jì)數(shù)器的預(yù)置值計(jì)算出定時(shí)時(shí)間。按定時(shí)時(shí)間的要求,計(jì)算出計(jì)數(shù)器的預(yù)置值。,北京交通大學(xué),8,二、定時(shí)/計(jì)數(shù)器的方式和控制寄存器 1.定時(shí)器控制寄存器(TCON) 控制方式:外部中斷控制與定時(shí)控制。 定時(shí)控制功能: 定時(shí)器在溢出時(shí),設(shè)定標(biāo)志位(TFx) 控制定時(shí)器的運(yùn)行或停止等(TRx),北京交通大學(xué),9,定時(shí)控制寄存器(TCON),(88H),TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0,8F 8E 8D 8C 8B 8A 89 88,INT0觸發(fā)方式 0:電平觸發(fā)(低) 1:邊沿觸

4、發(fā)(下跳沿),INT0請(qǐng)求標(biāo)志 0:無(wú)請(qǐng)求(硬件置位或清除) 1:有請(qǐng)求,INT1觸發(fā) 請(qǐng)求標(biāo)志,用于定時(shí)/計(jì)數(shù)器,位地址,外部中斷,北京交通大學(xué),10,TF0(TF1):為T(mén)0(T1)定時(shí)器溢出中斷標(biāo)志位 當(dāng)T0(T1)計(jì)數(shù)溢出時(shí),由硬件置位,并在允許中斷的情況下,發(fā)出中斷請(qǐng)求信號(hào)。 當(dāng)CPU響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序(000BH,001BH)時(shí),由硬件自動(dòng)將該位清0。 TR0(TR1):為T(mén)0(T1)運(yùn)行控制位 當(dāng)TR0(TR1)=1時(shí)啟動(dòng)T0(T1); TR0(TR1)=0時(shí)關(guān)閉T0(T1) 該位由軟件進(jìn)行設(shè)置。 復(fù)位時(shí)TCON清零,北京交通大學(xué),11,2.定時(shí)器方式寄存器(TMOD),用

5、于控制兩個(gè)定時(shí)/計(jì)數(shù)器的工作方式 高4位定義T1,低4位定義T0, 字節(jié)地址為89H,格式:,GATE C/T M1 M0 GATE C/T M1 M0,T0,T1,GATE:門(mén)控位,GATE0,以運(yùn)行控制位TRx啟動(dòng)定時(shí)器 GATE1,啟動(dòng)信號(hào)=TRxINTx,在沒(méi)有外中斷請(qǐng)求信號(hào)(INTx=1)才允許定時(shí)器啟動(dòng),北京交通大學(xué),12,C/T:定時(shí)或計(jì)數(shù)方式選擇位: C/T0,定時(shí)工作方式; C/T1,計(jì)數(shù)工作方式。 M1M0:工作方式選擇位: M1M000 方式0:13位計(jì)數(shù)(TL0-4、TH0-7) M1M001方式1:16位計(jì)數(shù) M1M010方式2:8位計(jì)數(shù) 自動(dòng)裝入計(jì)數(shù)器初值功能 M1

6、M011方式3:T0分為兩個(gè)8位計(jì)數(shù)器 TL0允許作為定時(shí)或計(jì)數(shù)方式 TH0只能作為定時(shí)方式,北京交通大學(xué),13,三、定時(shí)/計(jì)數(shù)器工作方式 1.方式0 方式0工作邏輯結(jié)構(gòu)圖。,12 分頻,fosc,C/T=0 C/T=1,TL1 TH1 (5位)(8位),TF1,中斷,T1,控 制,GATE INT1,+,TR1,1,軟件啟動(dòng)方式,1/24fosc,1/12fosc,計(jì)數(shù)輸入,中斷,TF1 ET1 EA,北京交通大學(xué),14,方式0是13位結(jié)構(gòu)的工作方式,其計(jì)數(shù)器由 TH1的全8位和TL1的低5位構(gòu)成。TL1的高3位棄之 不用。 計(jì)數(shù)方式:計(jì)數(shù)值的范圍為:1-8192(213) 定時(shí)方式:定時(shí)時(shí)

7、間T的計(jì)算公式為: 啟動(dòng)的條件是: (TRx=1)AND(GATE=1 OR INTx=1),2000H,T(213計(jì)數(shù)初值x)晶振周期12 或 T(213計(jì)數(shù)初值x)機(jī)器周期 機(jī)器周期=12/晶振頻率=12*晶振周期,北京交通大學(xué),15,方式0應(yīng)用舉例 設(shè)單片機(jī)晶振頻率fosc=6MHz,使用定時(shí)器1以方式0產(chǎn)生周期為500us的方波,并由P1.0輸出。以查詢或中斷方式完成。 解:計(jì)算定時(shí)初值x 欲產(chǎn)生500us的方波,在P1.0端以250us為周期交替輸出高低電平即可實(shí)現(xiàn)。為此,定時(shí)時(shí)間應(yīng)為250us。晶振為6MHz,則1個(gè)機(jī)器周期為(12/6)2us。 則: (213x)*2uS250u

8、S x80671111110000011B(2000H-7DH) 即: TH10FCH,TL103H。,北京交通大學(xué),16,步驟:,TMOD初始化,工作方式選擇 計(jì)數(shù)器初值計(jì)算 置位EA使CPU開(kāi)中斷 置位ETx允許C/T中斷 置位TRx啟動(dòng)計(jì)數(shù),北京交通大學(xué),17, TMOD初始化 定時(shí)器1,M1M0=00H(方式0) C/T=0(定時(shí)) GATE0(以軟件啟動(dòng)定時(shí)器) 不用的位設(shè)定為0 TMOD為初始化00H。 TCON寄存器的TR1位來(lái)啟動(dòng)(1) 或停止(0)定時(shí)器,北京交通大學(xué),18,程序設(shè)計(jì) 查詢方式: MOV TMOD,#00H ;T1工作在方式0 SETB TR1 ;啟動(dòng)T1工作

9、 LOOP: MOV TL1,#03H MOV TH1,#0FCH ;置定時(shí)初值 WAIT: JNB TF1,WAIT ;定時(shí)未到,循環(huán)等待 CLR TF1 ;定時(shí)到,清TF1 CPL P1.0 ;由P1.0輸出,信號(hào)取反 SJMP LOOP ;循環(huán)輸出方波,北京交通大學(xué),19,中斷方式: ORG 8000H MOV TMOD,#00H ;T1工作在方式0 MOV TL1,#03H MOV TH1,#0FCH ;置定時(shí)初值 SETB EA ;開(kāi)中斷 SETB ET1 ;允許T1中斷 LOOP: SETB TR1 ;啟動(dòng)T1工作 WAIT: SJMP WAIT ;等待中斷 AJMP LOOP O

10、RG 001BH ;T1中斷入口 LJMP SUB ;跳至中斷服務(wù)程序SUB ORG 8100H ;中斷服務(wù)程序 SUB1: CPL P1.0 ;輸出信號(hào)取反 MOV TL1,#03H MOV TH1,#0FCH ;重置定時(shí)初值 RETI ;中斷返回,北京交通大學(xué),20,2.方式1 其邏輯電路和工作情況與方式完全相同。所不同的只是組成計(jì)數(shù)器的位數(shù)為16位。,計(jì)數(shù)值的范圍為: 1-65536(216) 定時(shí)時(shí)間的計(jì)算公式與方式0類(lèi)似。即:,TL1,TH1,TF1,計(jì)數(shù)輸入,7 0 7 0,T(216計(jì)數(shù)初值x)晶振周期12 或 T(216計(jì)數(shù)初值x)機(jī)器周期,北京交通大學(xué),21,12 分頻,fo

11、sc,C/T=0 C/T=1,TL0 (8位),TF0,TR0,控 制,GATE INT0,+,TR0,TH0 (8位),重裝入,中斷,3.方式2 工作方式2邏輯結(jié)構(gòu)如圖。,北京交通大學(xué),22,該方式把16位計(jì)數(shù)器分為兩部分 既以TL1作計(jì)數(shù)器 以TH1作預(yù)置計(jì)數(shù)器 初始化計(jì)數(shù)初值分別裝入TL1和TH1中 當(dāng)計(jì)數(shù)溢出后,由預(yù)置寄存器TH1, 以硬件方法自動(dòng)給計(jì)數(shù)器TL1重新加載 最大計(jì)數(shù)值只能到256,適用于循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用,方式2具有自動(dòng)重新加載功能,即自動(dòng)加載計(jì)數(shù)初值,北京交通大學(xué),23,方式2應(yīng)用舉例 設(shè)單片機(jī)晶振頻率fosc=6MHz,使用T0以方式2產(chǎn)生周期為200us的方波,

12、并由P1.0輸出。 以查詢或中斷方式完成 解: 計(jì)算計(jì)數(shù)初值x,晶振為6MHz,則1個(gè)機(jī)器周期為2us。則: (28x)2100,x206CEH 即 TH00CEH,TL00CEH。,TMOD寄存器初始化 定時(shí)器0 M1M0=10H(方式2) C/T=0(定時(shí)) GATE0 (以軟件啟動(dòng)定時(shí)器) 不用的位設(shè)定為0 最后得TMOD應(yīng)初始化為02H。,北京交通大學(xué),24,北京交通大學(xué),25, 用TCON寄存器的TR0位來(lái)啟動(dòng)(1)或停止(0)定時(shí)器。 程序設(shè)計(jì)(查詢方式): MOV TMOD,#02H ;T0工作在方式2 MOV TL0,#0CEH MOV TH0,#0CEH ;置定時(shí)初值 SET

13、B TR0 ;啟動(dòng)T0工作 WAIT: JNB TF0,WAIT ;定時(shí)未到, 循環(huán)等待 CLR TF0 ;定時(shí)到,清TF0 CPL P1.0 ;由P1.0輸出,信號(hào)取反 SJMP WAIT ;循環(huán)輸出方波,北京交通大學(xué),26,中斷方式: MOV TMOD,#02H ;T0工作在方式2 MOV TL0,#0CEH MOV TH0,#0CEH ;置計(jì)數(shù)初值 SETB EA ; 開(kāi)中斷 SETB ET0 ; 允許T0中斷 LOOP: SETB TR0 ;啟動(dòng)T0工作 WAIT: SJMP $ ;等待中斷 CLR TF0 ;計(jì)數(shù)溢出標(biāo)志位TF0清0 AJMP LOOP ORG 000BH ;中斷服務(wù)

14、程序 CPL P1.0 ;由P1.0輸出,信號(hào)取反 RETI ;中斷返回,北京交通大學(xué),27,TH0 (8位),TF1,T0,控制,GATE INT0,+,TR0,C/T=0 C/T=1,1/12fosc,1/12fosc TR1,中斷,TL0 (8位),TF0,控制,中斷,4. 方式3,計(jì)數(shù)/定時(shí),定時(shí),北京交通大學(xué),28,工作在方式3下的T0 T被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器。 1.TL0既可以作計(jì)數(shù)器使用,又可以作定時(shí)器使用,其功能和操作方式與方式或方式1完全相同。 2.TH0只能作8位定時(shí)器使用,并占用了T的中斷資源TR1和TF1。,北京交通大學(xué),29,工作在方式3下的T1 如果T已工作在

15、方式3下: T1只能工作在方式02下,用于任何不需要中斷控制的場(chǎng)合 用作串行口的波特率發(fā)生器 通常只有當(dāng)T1用作串行口的波特率發(fā)生器時(shí): T0才被定義為方式,以增加一個(gè)8位計(jì)數(shù)器。 T1設(shè)定工作方式2、計(jì)數(shù)器初值,T1便可自動(dòng)運(yùn) 如停止計(jì)數(shù):只需送入一個(gè)把它設(shè)為方式3的控制字即可,這時(shí)T1直接把溢出標(biāo)志TF1送給串行口,北京交通大學(xué),30,四、定時(shí)器的應(yīng)用,定時(shí)器門(mén)控位GATE的應(yīng)用: 當(dāng)GATE=1時(shí),定時(shí)器的啟動(dòng)受外部INTx的控制。 在TRx=1時(shí),若INTx=1,則啟動(dòng)計(jì)數(shù); 若INTx=0,則停止計(jì)數(shù)。 應(yīng)用:測(cè)試外部脈沖的寬度。,北京交通大學(xué),31,12 分頻,fosc,C/T=0

16、 C/T=1,TL1 TH1 (8位)(8位),TF1,中斷,T1,控 制,GATE INT1,+,TR1,1,軟件啟動(dòng)方式,1/24fosc,1/12fosc,計(jì)數(shù)輸入,中斷,TF1 ET1 EA,例:設(shè)被測(cè)脈沖由P3.3輸入,利用T1測(cè)試正脈沖的寬度。設(shè)fosc=12MHz,將測(cè)試結(jié)果存放在內(nèi)部RAM的40H,41H單元中。,北京交通大學(xué),32,四、定時(shí)器的應(yīng)用,分析: 測(cè)試時(shí),1.檢測(cè)INT1端由低變高時(shí), TR1=1啟動(dòng)計(jì)數(shù);,P3.3 (INT1),置TR1=1 啟動(dòng)計(jì)數(shù),停止計(jì)數(shù),2. INT1再次變低時(shí),計(jì)數(shù)停止,此時(shí)的計(jì)數(shù)值即為被測(cè)正脈沖的寬度。 3.由于T1工作于方式1,所以

17、可測(cè)最大脈寬為65536uS(fosc=12MHz); 4.由于外部脈寬的最高頻率為fosc/24,所以,測(cè)試值的合理范圍是2-65536x2。,北京交通大學(xué),33,四、定時(shí)器的應(yīng)用,ORG 300H START:MOV TMOD,#90H ;GATE=1 ,T1方式1 MOV TL1,#00H ;從零開(kāi)始計(jì)數(shù) MOV TH1,#00H MOV R0,#40H ;置數(shù)據(jù)指針 DONE:JNB P3.3,DONE ;等INT1變高 SETB TR1 ;啟動(dòng)計(jì)數(shù) DONE1:JB P3.3,DONE1 ;等INT1變低,北京交通大學(xué),34,四、定時(shí)器的應(yīng)用,CLR TR1 ;停止計(jì)數(shù) MOV A,

18、TH1 ;存結(jié)果 MOV R0,A INC R0 MOV A,TL1; MOV R0,A END,北京交通大學(xué),35,練習(xí)題,編程實(shí)現(xiàn)利用定時(shí)器T1產(chǎn)生一個(gè)50Hz的方波,由P1.3輸出,設(shè)晶體振蕩器頻率為12MHz。,北京交通大學(xué),36,作業(yè) P118: 2, 9,北京交通大學(xué),37,ORG 8000H START:MOV TMOD,#09H ;GATE=1,方式1,定時(shí) MOV TL0,#00H MOV TH0,#00H WAIT1:JB P3.2,WAIT1 SETB TR0 WAIT2:JNB P3.2,WAIT2 WAIT3:JB P3.2,WAIT3 CLR TR0 MOV R0,TL0 MOV R1,TH0 SJMP $,習(xí)題: 1.利用T0門(mén)控GATE測(cè)量INT0引腳出現(xiàn)的脈沖寬度 脈寬=計(jì)數(shù)值X機(jī)器周期 設(shè)T0方式1,GATE=1,TR0=1,計(jì)數(shù)初值=00H,INT0 (P3.2),計(jì)數(shù),停止,北京交通大學(xué),38,2.設(shè)重復(fù)周期大于1ms的低頻脈沖信號(hào)從T0(P3.4)輸入。要求P3.4每發(fā)生一次負(fù)跳變時(shí),P1.0,P1.1輸出如下波形. 設(shè)晶振為6MHz,P3.4 (T0),P1.0,P1.1,500US,1ms,方法:T0方式2計(jì)數(shù),初值為FFH。當(dāng)T

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論