版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、定時器工作原理通電延時型。只要在定時的時間段內(nèi)(即1分鐘)定時器一直得電,則常開觸電就會閉合,只要定時器不斷電常開觸電就會一直閉合。定時器斷電則常開觸電斷開1,定時器/計數(shù)器的結(jié)構(gòu)與功能主要介紹定時器0(T0)和定時器1(T1)的結(jié)構(gòu)與功能。圖6.1是定時器/計數(shù)器的結(jié)構(gòu)框圖。由圖可知,定時器/計數(shù)器由定時器0、定時器1、定時器方式寄存器TMOD和定時器控制寄存器TCON組成。定時器0,定時器1是16位加法計數(shù)器,分別由兩個8位專用寄存器組成:定時器0由TH0和TL0組成,定時器1由TH1和TL1組成。 圖6.1 定時器/計數(shù)器結(jié)構(gòu)框圖 T
2、L0、TL1、TH0、TH1的訪問地址依次為8AH8DH,每個寄存器均可單獨訪問。定時器0或定時器1用作計數(shù)器時,對芯片引腳T0(P3.4)或T1(P3.5)上輸入的脈沖計數(shù),每輸入一個脈沖,加法計數(shù)器加1;其用作定時器時,對內(nèi)部機器周期脈沖計數(shù),由于機器周期是定值,故計數(shù)值確定時,時間也隨之確定。TMOD、TCON與定時器0、定時器1間通過內(nèi)部總線及邏輯電路連接,TMOD用于設(shè)置定時器的工作方式,TCON用于控制定時器的啟動與停止。6.1.1 計數(shù)功能計數(shù)方式時,T的功能是計來自T0(P3.4)T1
3、(P3.5)的外部脈沖信號的個數(shù)。輸入脈沖由1變0的下降沿時,計數(shù)器的值增加1直到回零產(chǎn)生溢出中斷,表示計數(shù)已達預(yù)期個數(shù)。外部輸入信號的下降沿將觸發(fā)計數(shù),識別一個從“1”到“0”的跳變需2個機器周期,所以,對外部輸入信號最高的計數(shù)速率是晶振頻率的1/24。若晶振頻率為6MHz,則計數(shù)脈沖頻率應(yīng)低于1/4MHz。當(dāng)計數(shù)器滿后,再來一個計數(shù)脈沖,計數(shù)器全部回0,這就是溢出。脈沖的計數(shù)長度與計數(shù)器預(yù)先裝入的初值有關(guān)。初值越大,計數(shù)長度越??;初值越小,計數(shù)長度越大。最大計數(shù)長度為65536(216)個脈沖(初值為0)。6.1.2 &
4、#160; 定時方式定時方式時,T記錄單片機內(nèi)部振蕩器輸出的脈沖(機器周期信號)個數(shù)。 每一個機器周期使T0或T1的計數(shù)器增加1,直至計滿回零自動產(chǎn)生溢出中斷請求。定時器的定時時間不僅與定時器的初值有關(guān),而且還與系統(tǒng)的時鐘頻率有關(guān)。在機器周期一定的情況下,初值越大,定時時間越短;初值越小,定時時間越長。最長的定時時間為65536(216)個機器周期(初值為0)。6.2 定時器/計數(shù)器控制寄存器與對定時器/計數(shù)器有關(guān)的控制寄存器共有4個:TMOD、TCON、IE、IP。IE、IP已在中斷一節(jié)中介紹,這里不再贅述。6.2
5、.1 定時器/計數(shù)器控制寄存器TCON特殊功能寄存器TCON用于控制定時器的操作及對定時器中斷的控制。其各位定義格式如下。其中D0D3位與外部中斷有關(guān),已在中斷系統(tǒng)一節(jié)中介紹。 TF0和TF1:定時器/計數(shù)器溢出標(biāo)志位。當(dāng)定時器/計數(shù)器0(或定時器/計數(shù)器1)溢出時,由硬件自動使TF0(或TF1)置1,并向CPU申請中斷。CPU響應(yīng)中斷后,自動對TF1清零。TF1也可以用軟件清零。TR0和TR1:定時器/計數(shù)起運行控制位。TR0(或TR1)=0,停止定時器/計數(shù)器0(或定時器/計數(shù)器1)工作
6、。TR0(或TR1)=1,啟動定時器/計數(shù)器0(或定時器/計數(shù)器1)工作??捎绍浖?(或清0)來啟動(或關(guān)閉)定時器/計數(shù)器,使定時器/計數(shù)器開始計數(shù)。用指令SETB (或CLR)使運行控制位置1(或清0)。6.2.2 工作方式寄存器TMODTMOD用于控制定時器/計數(shù)器的工作方式。字節(jié)地址為89H,不可位尋址,只能用字節(jié)設(shè)置其內(nèi)容。其格式如下: 定時器/計數(shù)器1定時器/計數(shù)器0位序D7D6D5D4D3D2D1D0位標(biāo)志GATEC/M1M0GATEC/M1M0
7、0;其中,低4位用于T0,高4位用于T1的。GATE:門控位。GATE0,只要用軟件使TR0(或TR1)置1就能啟動定時器/計數(shù)器0(或定時器/計數(shù)器1);GATE1,只有在 (或 )引腳為高電平的情況下,且由軟件使TR0(或TR1)置1時,才能啟動定時器/計數(shù)器0(或定時器/計數(shù)器1)工作。不管GATE處于什么狀態(tài),只要TR0(或TR1)=0定時器/計數(shù)器便停止工作。C/ :定時器/計數(shù)器工作方式選擇位。C/ 0,為定時工作方式;C/ 1,為計數(shù)工作方式。M0、M1:工作方式選擇位,確定4種工作方式。如表6.1所示。 表
8、6.1 定時器/計數(shù)器工作方式選擇M1M0工作方式功 能 說 明00113位計數(shù)器01216位計數(shù)器103自動再裝入8位計數(shù)器114定時器0:分成兩個8位計數(shù)器定時器1:停止計數(shù) 【例6.1】 設(shè)置定時器1工作于方式1,定時工作方式與外部中斷無關(guān),則M1=0,M0=1,GATE=0,因此,高4位應(yīng)為0001;定時器0未用,低4位可隨意置數(shù),但低兩位不可為11(因方式3時,定時器1停止計數(shù)),一般將其設(shè)為0000。因此,指令形式為:MOV TMOD,#10H定時器/計數(shù)器工作方式與程序設(shè)計通過對特殊功能
9、寄存器TMOD中的設(shè)置M1、M0兩位的設(shè)置來選擇四種工作方式,定時器/計數(shù)器0、1和2的工作方式相同,方式3的設(shè)置差別較大。6.3.1 工作方式0工作方式寄存器TMOD中的M1M0為:00。定時器/計數(shù)器T0工作在方式0時,16位計數(shù)器只用了13位,即TH0的高8位和TL0的低5位,組成一個13位定時器/計數(shù)器。當(dāng)TL0的低5位計滿溢出時,向TH0進位,TH0溢出時,對中斷標(biāo)志位TF0置位,向CPU申請中斷。定時器/計數(shù)器0方式0的邏輯結(jié)構(gòu)如圖6.2所示。 1工作在定
10、時方式C/ 0,定時器對機器周期計數(shù)。定時器在工作前,應(yīng)先對13位的計數(shù)器賦值,開始計數(shù)時,在初值的基礎(chǔ)上進行減1計數(shù)。定時時間的計算公式為:定時時間(213 計數(shù)初值)×晶振周期×12或 定時時間(213 計數(shù)初值)×機器周期若晶振頻率為12MHz,則最短定時時間為213(2131)×(1/12)×106×121 s最長定時時間為(2130)×
11、;(1/12)×106×128 192 s2工作在計數(shù)方式C/ 1,13位計數(shù)器對外部輸入信號進行加1計數(shù)。利用 由0變?yōu)?時,開始計數(shù), 由1變?yōu)?時,停止計數(shù),可以測量在 端出現(xiàn)的正脈沖的寬度。計數(shù)值的范圍是1213=8192 (個外部脈沖)?!纠?.2】假設(shè)AT89S52單片機晶振頻率為12MHz,要求定時時間8ms,使用定時器T0,工作方式0,計算定時器初值X。解: t = (213 X)×機器周期 當(dāng)單片
12、機晶振頻率為12MHz時,機器周期=1s 8×103 = (213 X)×1 X = 8192-8000 = 192 轉(zhuǎn)換成二進制數(shù)為:11000000B【例6.3】假設(shè)AT89S52單片機晶振頻率為12MHz,所需定時時間為250s,當(dāng)T0工作在方式0時T0計數(shù)器的初值是多少?解: t = (213
13、60;X)×機器周期 當(dāng)單片機晶振頻率為12MHz時,機器周期=1s 250 = (213 X0)×1 X 0= 8192-250 = 7942 轉(zhuǎn)換成二進制數(shù)為:1111100000110B【例6.4】利用T0方式0產(chǎn)生1ms的定時,在P1.2
14、引腳上輸出周期為2ms的方波。設(shè)單片機晶振頻率fosc12MHz。解:(1)解題思路要在P1.2引腳輸出周期為2ms的方波,只要使P1.2每隔1ms取反一次即可。執(zhí)行指令為CPL P1.2。(2)確定工作方式 : 方式0 TMOD=00H C/ 0:T0為定時功能;(D2位)GATE0,只要用軟件使TR0(或TR1)置1就能啟動定時器T0(或T1); M1M0 = 00,工作方式0 T
15、MOD的值為 = 00H TMOD.4TMOD.7可取任意值,因T1不用,這里取0值。 使用 MOV TMOD , #00H 即可設(shè)定T0的工作方式(3)計算1 ms定時時T0的初值機器周期 T = 1fosc×12 = 1s計數(shù)個數(shù):X =1ms/ls = 1000設(shè)T0的計數(shù)初值為x0,則 x0 (213一X)s &
16、#160; 81921000 7192D 轉(zhuǎn)換成二進制
17、數(shù)為:11100000 11000B 高8位 低5位 &
18、#160;將高8位11100000 = 0E0H裝入TH0 將低5位11000 = 18H裝入TL0 1
19、0; 1 EA = 1 ,CPU開放中斷; ET0 = 1,允許T0中斷;(4)編程可采用中斷和查詢兩種方式編寫程序。方法一:中斷方式ORG 0000H
20、 AJMP MAIN ;轉(zhuǎn)主程序MAIN ORG 000BH
21、; AJMP IT0P ;轉(zhuǎn)T0中斷服務(wù)程序IT0P ORG 1000H MAIN:MOV SP,
22、#60H ;設(shè)堆棧指針 MOV TH0 , #0E0H ;給定時器T0送初值 MOV TMOD,#00H ;設(shè)置T0為方式0,定時&
23、#160; MOV TL0 , #18H ;送定時初值 MOV TH0,#0E0HSETB EA ;CPU開中斷
24、0; SETB ET0 ;T0允許中斷 SETB TR0 ;啟動T0定時HERE: SJMP HERE
25、0; ;等待中斷中斷服務(wù)程序:IT0P: ORG 1200H ;T0中斷入口 MOV TL0,#18H ;重新裝入計數(shù)初值
26、 MOV TH0,#0E0H CPL P1.2 ;輸出方波 RETI
27、160; ;中斷返回 END方法二:查詢方式 MOV TMOD,#00H ;設(shè)置T0為方式0,定時 MOV &
28、#160;TL0,#18H ;送初值 MOV TH0,#0E0H SETB TR0
29、 ;啟動T0定時LOOP: JBC TF0,NEXT ;查詢定時時間到否? SJMP LOOPNEXT:MOV TL0,#18H ;重新裝入計數(shù)初值
30、 MOV TH0,#0E0H CPL P1.2 ;輸出方波 SJMP LOOP
31、60; ;重復(fù)循環(huán)6.3.2 工作方式1工作方式寄存器TMOD中的M1M0為:01。定時器T0工作方式1與工作方式0類同,差別在于其中的計數(shù)器的位數(shù)。工作方式1以16位計數(shù)器參與計數(shù)。定時器/計數(shù)器0方式1的邏輯結(jié)構(gòu)如圖6.3所示。 1工作在定時方式C/ 0,定時器對機器周期計數(shù)。定時時間的計算公式為:定時時間(213 計數(shù)初值)×晶振周期×12或
32、 定時時間(213 計數(shù)初值)×機器周期若晶振頻率為12MHz,則最短定時時間為216(2161)×(1/12)×106×121 s最長定時時間為(2160)×(1/12)×106×1265 536 s65.5 ms2工作在計數(shù)方式C/ 1,16位計數(shù)器對外部輸入信號進行加1計數(shù)。計數(shù)值的范圍是1216=65 536 (個外部脈沖)?!纠?.5】假設(shè)AT89S52單
33、片機晶振頻率為12MHz,所需定時時間為10ms,當(dāng)T0工作在方式1時T0計數(shù)器的初值是多少?解: t = (216 X0)×機器周期 當(dāng)單片機晶振頻率為12MHz時,機器周期=1s 10×103 = (213 X0)×1 X = 65536-10000 = 55536
34、60; 轉(zhuǎn)換成二進制數(shù)為:1101100011110000 B = 0D8F0H【例6.6】假設(shè)AT89S52單片機晶振頻率為12MHz,定時器T0的定時初值為9800,計算T0工作在方式1時的定時時間。解: t = (216 X0)×機器周期 當(dāng)單片機晶振頻率為12MHz時,機器周期=1s t = (216 9800)×1
35、60; t = 65536-9800 = 55736s【例6.7】 用定時器T0產(chǎn)生50HZ的方波。由P1.0輸出此方波(設(shè)時鐘頻率為12MHZ)。采用中斷方式。解:50HZ的方波周期T為 T = 1/50 = 20ms 可以用定時器產(chǎn)生10ms的定時,每隔10ms改變一次P1.0的電平,即可得到50HZ的方波。定時器T0應(yīng)工作在方式1。(1)工作在方式1時的T0初值,根據(jù)下式計算: t = (216 X)
36、×機器周期 時鐘頻率為12MHz,則機器周期 = 1µs 10×103 = (216 X)× 1 X = 65536 10000 = 55536轉(zhuǎn)換為二進制數(shù):11011000 11001100B
37、0; 高8位 低8位高8位 = 0D8H裝入TH0,低8位 = 0CCH裝入TL0。(2)程序ORG 0000H
38、60; AJMP MAIN ORG 000BH
39、; ;T0的中斷入口地址AJMP T0INT ORG 0100HMAIN: MOV TMOD , #01H ;設(shè)置T0為工作方式1MOV TH0 , #0D8 H
40、; ;裝入定時器初值MOV TL0 , #0CC HSETB ET0 ;設(shè)置T0允許中斷SETB EA &
41、#160;;CPU開中斷SETB TR0 ;啟動T0SJMP $ &
42、#160; ;等待中斷 中斷服務(wù)程序;ORG 0300HT0INT:CPL P1.0 ;P1.0取反MOV TH0 , #0D8H ;重新裝入定時初值MOV TL0 , #0CCHRETI 注: SETB
43、0; ET0 ;設(shè)置T0允許中斷SETB EA ;CPU開中斷這兩條指令可以等效為 MOV IE , #82H。6.3.3
44、0; 工作方式2定時器/計數(shù)器0方式2的邏輯結(jié)構(gòu)如圖6.4所示。工作方式寄存器TMOD中的M1M0為:10定時器/計數(shù)器在工作方式2時,16位的計數(shù)器分成了兩個獨立的8位計數(shù)器TH和TL。此時,定時器/計數(shù)器構(gòu)成了一個能重復(fù)置初值的8位計數(shù)器。其中,TL用作8位計數(shù)器,TH用來保存計數(shù)的初值。每當(dāng)TL計滿溢出時,自動將TH的初值再次裝入TL。1工作在定時方式C/ 0,定時器對機器周期計數(shù)。定時時間的計算公式為:定時時間(28 計數(shù)初值)×晶振周期×12或
45、0; 定時時間(28 計數(shù)初值)×機器周期若晶振頻率為12MHz,則最短定時時間為28(281)×(1/12)×106×121 s最長定時時間為(280)×(1/12)×106×12256 s 2工作在計數(shù)方式C/ 1,8位計數(shù)器對外部輸入信號進行加1計數(shù)。計數(shù)值的范圍是128=256 (個外部脈沖)。【例6.8】利用T0方式2實現(xiàn)以下功能:當(dāng)T0(P3.
46、4)引腳每輸入一個負脈沖時,使P1.0輸出一個500s的同步脈沖。設(shè)晶振頻率為6MHz,請編程實現(xiàn)該功能。其波形如圖6.5所示。 圖6.5 例6.6波形圖(1) 確定工作方式首先選T0為方式2,外部事件計數(shù)方式。當(dāng)P3.4引腳上的電平發(fā)生負跳變時,T0計數(shù)器加1,溢出標(biāo)志TF0置1;然后改變T0為500s定時工作方式,并使P1.0輸出由1變?yōu)?。T0定時到產(chǎn)生溢出,使P1.0引腳恢復(fù)輸出高電平。T0先計數(shù),后定時,分時操作。根據(jù)題目要求方式控制字TMOD是:計數(shù)時:(TMOD) = 0000 0110B = 06H定時時:(TMOD) = 0000 0
47、010B = 02H(2)計算初值機器周期T = 12fosc = 12/6MHZ =2s計數(shù)時:計數(shù)個數(shù) X = 1計數(shù)初值 = (256X) = (2561) =255=0FFH,(TH0)=(TL0)=0FFH定時時:計數(shù)個數(shù) X =/ Tm= 500s2s =250定時初值 = 256X = 256250 = 6,(TH0) = (TL0) = 06H (3)編程方法采用查詢方法START:MOV TMOD,#06H
48、160; ;T0方式2,外部計數(shù)方式 MOV TH0,#0FFH ;T0計數(shù)初值 MOV TL0,#0FFH
49、 SETB TR0 ;啟動T0計數(shù)LOOPl:JBC TF0,PTF01 ;查詢T0溢出標(biāo)志,TF01時轉(zhuǎn)移,且TF00(查P3.4負跳變) &
50、#160; SJMP LOOPlPTF01:CLR TR0 ;停止計數(shù) MOV TMOD,#02H ;T0方式2,定時
51、 MOV TH0,#06H ;T0定時500s初值 MOV TL0,#06H CLR P1.0
52、160; ;P1.0清0 SETB TR0 ;啟動定時500sLOOP2:JBC TF0,PTF02 ;查詢溢出標(biāo)志,定時到TF0=l
53、;轉(zhuǎn)移,且TF00(第一個500s到否?) SJMP LOOP2PTF02:SETB P1 ;P1.0置1(到了第一個500s) CLR TR0
54、 ;停止計數(shù) SJMP START6.3.4 工作方式3工作方式寄存器TMOD中的M1M0為:11。工作方式3僅對定時器/計數(shù)器0有效,此時,將16位的計數(shù)器分為兩個獨立的8位計數(shù)器TH0和TL0。當(dāng)定時器/計數(shù)器0工作在方式3時,定時器/計數(shù)器1只能工作在方式02,并且工作在不需要中斷的場合。在一般情況下,當(dāng)定時器/計數(shù)器1用作串行口波特率發(fā)生器時,定時器/計數(shù)器0才設(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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 影樓修片調(diào)色課程設(shè)計
- 廣東抗衰老課程設(shè)計公司
- 微處理器應(yīng)用課程設(shè)計
- 幼兒食育課程設(shè)計
- 高層建筑消防監(jiān)控系統(tǒng)服務(wù)方案
- 底座銑床夾具課程設(shè)計
- 挖掘機動臂課程設(shè)計
- 科技孵化器項目考核方案
- 社會科學(xué)普及與志愿服務(wù)結(jié)合方案
- 乙醇一水課程設(shè)計
- 環(huán)境工程的課程設(shè)計---填料吸收塔
- 道路運輸達標(biāo)車輛客車貨車核查記錄表
- 兒童詩兒童詩的欣賞和創(chuàng)作(課件)
- 人力資源管理工作思路(共3頁)
- 五筆常用字根表3746
- 新生兒肺氣漏
- 氣管切開(一次性氣切導(dǎo)管)護理評分標(biāo)準(zhǔn)
- 保安工作日志表
- 姜太公釣魚的歷史故事
- 數(shù)控車床實訓(xùn)圖紙國際象棋圖紙全套
- 電子政務(wù)概論教案
評論
0/150
提交評論