第2章 2.6 定時器、計數(shù)器.ppt_第1頁
第2章 2.6 定時器、計數(shù)器.ppt_第2頁
第2章 2.6 定時器、計數(shù)器.ppt_第3頁
第2章 2.6 定時器、計數(shù)器.ppt_第4頁
第2章 2.6 定時器、計數(shù)器.ppt_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2.6 定時器/計數(shù)器 P33,MCS-51單片機內部有兩個16位的定時器/計數(shù)器,即定時器T0和定時器T1,它們既可以用做定時器方式,也可以用做計數(shù)器方式。 2.6.1結構一、結構 定時/計數(shù)器的實質是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。 作定時方式時,輸入由內部機器周期脈沖產(chǎn)生,定時器可以看作是對計算機機器周期的計數(shù)器。 作對外計數(shù)方式時,外部輸入信號由引腳P3.4(T0)或P3.5(T1)輸入。,定時器/計數(shù)器有四種工作方式,其工作方式選擇和控制由TMOD和 TCON寄存器的內容決定。 TMOD是定時/計數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控

2、制T0、T1的啟動和停止及設置溢出標志。,二、定時/計數(shù)器的工作原理,加1計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是T0或T1引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。 可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。,設置為定時器模式時,加1計數(shù)器是對內部機器周期計數(shù)(1個機器周期等于12個振蕩周期

3、,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值N乘以機器周期Tcy就是定時時間t 。,設置為計數(shù)器模式時,外部事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值在下一個機器周期的S3P1期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2 s。,三、定時/計數(shù)器的控制,80C51單片機定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD用

4、于設置其工作方式;TCON用于控制其啟動和中斷申請。 、工作方式寄存器TMOD 工作方式寄存器TMOD用于設置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:,GATE:門控位。GATE0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數(shù)器工作;GATA1時,要用軟件使TR0或TR1為1,同時外部中斷引腳或也為高電平時,才能啟動定時/計數(shù)器工作。即此時定時器的啟動條件,加上了引腳為高電平這一條件。 :定時/計數(shù)模式選擇位。 0為定時模式; = 1為計數(shù)模式。 M1、M0:工作方式設置位。定時/計數(shù)器有四種工作方式,由M1M0進行設置。,、控制寄存器TCON

5、 TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。其格式如下:,D7 D6 D5 D4 D3 D2 D1 D0,TCON,字節(jié) 地址 88H,IT0(IT1):外部中斷0(或1)觸發(fā)方式控制位。IT0(或IT1)0,則選擇外部中斷為電平觸發(fā)方式;IT0(或IT1)1,則選擇外部中斷為跳變觸發(fā)方式。IE0(IE1):外部中斷0(或1)的中斷請求標志位。當IT0(或IT1)= 1,IE0(IE1)由硬件置位,外部中斷0(或)請求中斷。在CPU響應中斷時由硬件將IE0(或IE1)清零。,TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出

6、 時由硬件自動置TF1為1。CPU響應中斷后TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。 TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。 TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。 TR0(TCON.4):T0運行控制位,其功能與TR1類同。,2.6.2 定時/計數(shù)器的工作方式,一、方式0 方式0為13位定時/計數(shù)器,由TL0的低5位(高3位

7、未用)和TH0的8位組成。TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發(fā)出中斷請求。,定時器模式時: C/T=0 定時時間為:t =(213-T0初始值)*機器周期 設: X = t /機器周期 T0初始值: N =(213- X) 計數(shù)模式時: C/T=1,計數(shù)脈沖是T0引腳上的外部 脈沖。,門控位GATE具有特殊的作用。當GATE=0時,經(jīng)反相后使 或門輸出為1,此時僅由TR0控制與門的開啟,與門輸出1 時,控制開關接通,計數(shù)開始;當GATE=1時,由外中斷引腳信號控制或門的輸出,此時控制與門的開啟由外中斷引腳信號和TR0共同控制。當TR0=1時,外

8、中斷引腳信號引腳的高電平啟動計數(shù),外中斷引腳信號引腳的低電平停止計數(shù)。這種方式常用來測量外中斷引腳上正脈沖的寬度。,二、方式1 方式1的計數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數(shù)器 。,計數(shù)個數(shù)與計數(shù)初值的關系為:N=216X,三、方式2 方式2為自動重裝初值的8位計數(shù)方式。,工作方式2特別適合于用作較精確的脈沖信號發(fā)生器。,計數(shù)個數(shù)與計數(shù)初值的關系為:N=28X,四、方式3 方式3只適用于定時/計數(shù)器T0,定時器T1處于方式3時相當于TR1=0,停止計數(shù)。,工作方式3將T0分成為兩個獨立的8位計數(shù)器TL0和TH0 。,初始化程序應完成如下工作: 對TMOD賦

9、值,以確定T0和T1的工作方式。 計算初值,并將其寫入TH0、TL0或TH1、TL1。 中斷方式時,則對IE賦值,開放中斷。 使TR0或TR1置位,啟動定時/計數(shù)器定時或計數(shù)。,2.6.3 定時/計數(shù)器應用舉例,、計數(shù)方式時間常數(shù)計算 P37,設:T0為方式工作(自動裝入時間常數(shù)),在外部發(fā)生一次事件時產(chǎn)生一個中斷請求,時間常數(shù)的計算為: 方式:當計數(shù)到 28 時,計數(shù)器溢出。設時間常數(shù)為N,當再發(fā)生一次外部事件時計數(shù)器就溢出,則: N+1= 28 N= 28 1 = 11111111 = FFH,2、定時方始時間常數(shù)計算,設:方式工作時,定時時間為 1ms,時鐘頻率為6MHz,要求計算定時器

10、初值。 計算:個機器周期時間為: 121/fosc = 121/6MHz = 210-6s = 2us 設時間常數(shù)為N,則 (213-N)2us = 1ms = 1000us N = 213-1000/2 = 213-500 = 7692 化成二進制為:N=1111 0000 0 1100 16進制: F 0 0 C,根據(jù)13位定時/計數(shù)器的特性,高8位F0H送TH0,低5位0CH送TL0,則初始化程序為: MOV TL0,#0CH ;低位送TL0寄存器 MOV TH0,#0F0H ;高位送TH0寄存器,3、初始化程序舉例 設:fosc=6MHz, T1作為定時器,以方始工作,定時時間為10m

11、s;T0作為計數(shù)器。以方始工作,外部發(fā)生一次事件即溢出,T1的時間常數(shù)為: (216N)2us=101000us N=EC78H,初始化程序為: MOV TMOD, #16H ;T1 為定時方始, ;T0為計數(shù)方式。 MOV TL0, #0FFH MOV TH0, #0FFH MOV TL1, #78H MOV TH1, #0ECH SETB TR0 ;置TR0為允許T1啟動計數(shù)SETB TR1 ;置TR1為允許T1啟動計數(shù),例1: 利用定時/計數(shù)器T0的方式1,產(chǎn)生10ms的定時,并使P1.0引腳上輸出周期為20ms的方波,采用中斷方式,設系統(tǒng)時鐘頻率為12 MHz。 解:1、計算計數(shù)初值X

12、: 由于晶振為12 MHz,所以機器周期Tcy為1 s。 所以: Xt/ Tcy 1010-3/110-610000 N655361000055536D8F0H 即應將D8H送入TH0中,F(xiàn)0H送入TL0中 2、求T0的方式控制字TMOD: M1、M0=01,GATE=0,C/T=0,可取方式控制字為01H;,ORG 0000H LJMP MAIN ;跳轉到主程序 ORG 000BH ;T0的中斷入口地址 LJMP DVT0 ;轉向中斷服務程序 ORG 0100H MAIN:MOV TMOD,#01H ;置T0工作于方式1 MOV TH0,#0D8H ;裝入計數(shù)初值 MOV TL0,#0F0H

13、 SETB ET0 ;T0開中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動T0 SJMP $ ;等待中斷,DVT0:CPL P1.0 ;P1.0取反輸出 MOV TH0,#0D8H ;重新裝入計數(shù)值 MOV TL0,#0F0H RETI ;中斷返回 END,例2:利用T1的模式2對外部信號計數(shù)。要求每計滿100次,將P1.0端取反。fosc=12MHz 外部信號由T1(P3.5)引腳輸入,每發(fā)生一次負跳變計數(shù)器加1,每輸入100個脈沖計數(shù)器發(fā)生溢出,中斷服務程序將P1.0取反。,T1計數(shù)工作方式模式2的控制字為:TMOD=60H。 計算T1的計數(shù)初值:N=28-100=156=

14、9CH 因此,TL1和TH1的初值都是9CH。 程序如下: ORG 001BH AJMP TTT MAIN: MOV TMOD, #60H MOV TL1, #9CH ;賦初值 MOV TH1, #9CH MOV IE, #88H ;定時器T1開中斷 SETB TR1 HERE: SJMP HERE TTT: ORG 0100H ;中斷服務程序入口 CPL P1.0 RETI,綜合應用:,例:設時鐘頻率為6MHz,利用T0產(chǎn)生1s的定時程序。 分析:因定時時間較長,采用哪一種工作方式合適?比較:方式0:最長可定時16.384ms t = 2132us = 16.382ms 方式1:最長可定時1

15、31.072ms t = 2162us = 131.072ms 方式2:最長可定時512us t = 282us = 512us 根據(jù)題中要求,可選方式1,每隔100ms中斷一次,中斷10次為1s。 設初始值為N,則: (216 - N)12 / 6106 = 100103 求得: N = 15536 = 3CB0H 因此: TL0 = 0B0H, TH0 = 3CH 程序清單如下:,ORG 0000H LJMP MAIN ORG 000BH ;T0中斷入口地址AJMP SERVE ;轉中斷服務程序ORG 0030H MAIN: MOV B, #0AH ;設置循環(huán)次數(shù)MOV TMOD, #01

16、H ;設T0為工作方式1 MOV TL0, #0B0H ;賦初值MOV TH0, #3CH SETB ET0 ;開T0中斷SETB EA ;開總中斷SETB TR0 ;啟動定時AJMP $ ;等待中斷,SERVE:MOV TL0,#0B0H ;重新賦值 MOV TH0,#3CH ;DJNZ B, LOOP CLR TR0 ;1s時間到,停止T0工作LOOP:RETI ;中斷返回END,實驗六 中斷、定時器系統(tǒng)應用實驗,實驗任務: 完成在每隔1秒鐘接在P1 口的八個發(fā)光二極管循環(huán)閃亮程序設計和調試。 要求: 1、選擇定時器T0為工作方式1,產(chǎn)生100mS定時。 2、用定時器串聯(lián)方式,在T0 定時

17、溢出(產(chǎn)生100mS定時)后,使T1 工作計數(shù)(計數(shù)10次,正好1秒)。每次T0溢出后從P3.0 口給T1 端送出一個負脈沖,當T1溢出后P1口的八個發(fā)光二極管循環(huán)閃亮。T0、T1的溢出,采用中斷方式。,ORG 0000H AJMP MAIN ORG 000BH AJMP TT1 ORG 001BH AJMP XS1 MAIN:MOV R0,#0FEH CPL C MOV TMOD, #61H MOV TL0, #0B0H MOV TH0, #3CH MOV TL1, #0F6H MOV TH1, #0F6H MOV IE, #8AH SETB TR0 SETB TR1 LOOP:SJMP L

18、OOP,TT1:CPL P3.0 NOP SETB P3.0 MOV TL0, #0B0H MOV TH0, #3CH SETB TR0 RETI XS1:MOV A, R0 MOV P1, A RLC A MOV R0, A MOV TL0, #0B0H MOV TH0, #3CH SETB TR0 RETI RET END,作業(yè): P44,2-8 2-9 1、利用定時/計數(shù)器T0從P1.0輸出周期為1s,脈寬為20ms的正脈沖信號,晶振頻率為12MHz。試設計程序。 2、利用定時/計數(shù)器T0產(chǎn)生定時時鐘,由P1口控制8個指示燈。編一個程序,使8個指示燈依次一個一個閃動,閃動頻率為20次/秒 (8個燈依次亮一遍為一個周期)。,思考題及習題 1、定時/計數(shù)器工作于定時和計數(shù)方式時有何異同點? 2、定時/計數(shù)器的4種工作方式各有何特點? 3、要求定時/計數(shù)器的運行控制完全由TR1、TR0確定和 完全由、高低電平控制時,其初始化編程應作何處理? 4、當定時/計數(shù)器T0用作方式3時,定時/計數(shù)器T1可以工作在何種方式下?如何控制T1的開啟和關閉? 5、利用定時/計數(shù)器T0從P1.0輸出周期為1s,脈寬為20

溫馨提示

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

評論

0/150

提交評論