




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、定時/計數器要求(四學時)基本內容:定時計數的概念及作用,51單片機定時/計數器的工作原理,簡單應用實例講解。重點:定時計數的方式1,方式2原理及簡單應用。難點:工作原理的理解、初值計算。 基本內容:總結復習定時計數工作原理,講解定時/計數器的較復雜應用(結合數碼管顯示、中斷、按鍵)。重點:定時計數的方式1、方式2的應用。難點:應用設計思路及編程方法,編程初始化及 溢出處理。 第1頁,共32頁。定時計數的概念- 一個定時/計數的形象實例假如有一個水容器1000滴水剛好裝滿初始時已經裝入500滴水問:還需滴入多少滴水才能將其 裝滿?答:還需滴入500滴水才能將其 裝滿,501滴溢出。答:還需50
2、0秒時間才能將其裝滿,501秒溢出。問:如果每秒滴入1滴水,還需多 長時間才能將其裝滿?這就是“計數”這就是“定時”這就是“計數初值”第2頁,共32頁。定時與計數的關系定時/計數器:對電脈沖進行計數的單元電路。定時與計數的關系用計數器為周期性脈沖計數,產生定時。定時和計數是同一個概念,本質上定時只是計數的一個特例。定時計數器工作時,關心問題:1、定時/計數器(容器)的位寬度。2、初值(容器初始已有水滴數)的設置。3、水溢出以后的處理。第3頁,共32頁。定時/計數器的計數方向、初值計算及溢出處理計數方向加計數:每個脈沖計數器加1減計數:每個脈沖計數器減1。計數器的容量:計數器有一定的計數范圍(脈
3、沖計數的最大個數),由計數器的位寬度決定。 2n=X初值+要求(計數或定時) X初值= 2n 要求(計數或定時)計數器的溢出:不同CPU計數器的容量不同,若為16位,則計數容量最大可存放數值為65535,65536為剛好溢出時的值。當加到計數器為全1時,再輸入一個脈沖就使計數器回零并溢出。計數器溢出會產生溢出位,作為程序處理溢出的標記。第4頁,共32頁。以上寄存器均為SFR中單元結構2個16位T/C分別由8位計數器TH0、TL0、 TH1、TL1組成加“1”計數器控制寄存器TCON:控制T0、T1的啟停、中斷等方式寄存器TMOD:控制T0、T1 的工作方式T0T1 定時/計數器結構1個16位T
4、/C分別由8位計數器TH2、TL2 組成加/減/“1”計數器T2CON、 T2MOD :控制T2的啟停、中斷及工作方式等第5頁,共32頁。(1)51單片機定時/計數的輸入源脈沖作計數器用對T0(P3.4)、T1(P3.5)和T2(P1.0)引腳上輸入的外部脈沖進行計數。當外部輸入脈沖發(fā)生負 跳變時,進行“+1”計數,外部輸入脈沖周期應大于2個機器周期。作定時器用對系統(tǒng)的時鐘振蕩器輸出脈沖的12分頻信號( fOSC/12 )進行計數定時。即機器內部震蕩信號的1/12分頻,每一個機器周期做一次“+1”運算。以機器周期為最小定時單位。第6頁,共32頁。(2)定時計數器的結構框圖定時/計數器邏輯結構第
5、7頁,共32頁。 0 0 方式0 13位計數器 0 1 方式1 16位計數器 1 0 方式2 可自動重新裝載初值的8位計數器 1 1 方式3 T0分為2個8位計數器,T1停止計數M1M0操作方式功 能GATEC/TM1M0GATEC/TM1M0控制T1控制T0(3)51單片機定時/計數器工作方式定時/計數器(T0、T1)由TMOD中M1M0決定工作方式第8頁,共32頁。GATE= 二組M1、M0 分別 控制T0、T1的工作方式(二位組合對應方式0、方式1、方式2、方式3。INT1 INT0引腳輸入電平的控制。GATE: 門控位。設定T1、T0運行時是否受 0 不受外部中斷控制C/T=1 受外部
6、中斷控制0 為定時功能1為計數功能GATEC/TM1M0GATEC/TM1M0控制T1控制T07.3 定時/計數器控制T0、T1定時/計數器方式控制寄存器TMOD第9頁,共32頁。LSBMSBTF1TR1TF0TR0IE1IT1IE0IT0T1、T0 啟/??刂莆籘1、T0 溢出標志位與外部中斷INT1、INT0有關在中斷系統(tǒng)中已介紹“0” 停止“1” 啟動“1” 有溢出“0” 無溢出可編程 可控制當T溢出時,由硬件自動使TF置1,并向CPU申請中斷,CPU響應中斷后,自動對TF清零;也可查詢處理,用軟件對TF清零或置位。工作記錄有無溢出T0、T1定時/計數器控制寄存器TCON第10頁,共32
7、頁。(1) 方式0 M1M0=00工作原理 13位的定時計數器,由TH的8位和TL的低5位組成T1(P 3.5)GATETR1INT1震蕩器12TL15位TH18位TF1中斷KC/T=0C/T=1控制定時/計數器方式0邏輯圖111“+1”中斷TL40(以T1為例T0原理相同)。13位計數器TF1“+1”“+1”第11頁,共32頁。【例7-1】利用定時器T0( T0與T1的使用方式相同)產生定時脈沖。每隔2ms從P1.0腳上輸出脈寬為2個機器周期的正脈沖(單片機采用頻率為6MHZ的晶體)。解:首先求出定時器T0初值。由于時鐘頻率為6MHZ,所以,定時/計數器的計數脈沖的周期為2s=12/6M。根
8、據上面的公式可以得出:2ms =(213-T0初值) 定時/計數器計數脈沖周期。(213-T0初值) 210-6=210-3 T0初值=7096=1101110111000B,其中將高8位11011101B=DDH賦給TH0,低5位11000B=18H賦給TL0。第12頁,共32頁。(2) 方式1 M1M0=01工作原理 16位的定時計數器,由TH1的8位和TL1的8位組成T1(P 3.5)GATETR1INT1震蕩器12TL18位TH18位TF1中斷KC/T=0C/T=1控制 定時/計數器方式1邏輯圖16位計數器“+1”1(以T1為例,T0原理相同)中斷TF1“+1”“+1”第13頁,共32
9、頁?!纠?-2】選擇T1模式1用于定時,在P1.0腳上輸出周期為10ms的方波,單片機采用6M晶振。解:題目要求輸出周期為10ms的方波,也就是說高電平或低電平持續(xù)時間為5ms ,那么只要使P1.0腳上的電平每隔5ms取反一次就可得到周期為10ms方波,因而T1的定時時間為5ms。將T1設為定時方式1:GATE=0,C/T=0,M1M0=01;故TMOD=10H。下面計算5ms定時T1的初值:定時/計數器計數脈沖周期: T=12/fosc=12/6106=2s設初值為X則:(216X)2106 =5103 X=0 xF63C=1111011000111100B 因為在作16位計數器用時, X的
10、低8位裝入TL1,所以TL1=0 x3C;X的高8位應裝入TH1,所以TH1=0 xF6。第14頁,共32頁。 方式2 M1M0=10 可自動重裝載的8位計數器TH1(TH0)被定義為賦值寄存器TL1(TL0)被定義為計數器定時/計數器方式2邏輯圖 T1(P3.5) GATETR1 INT1震蕩器12TL18位TF1中斷KC/T=0C/T=1控制TH18位重裝載重裝載1“+1”以T1為例:中斷TL1 8位TF1“+1”“+1”第15頁,共32頁。(4)方式3邏輯圖及工作原理(只有T0有) 中 斷震蕩器121/12f0scTL08位TF0中斷KC/T=0C/T=1控制1/12f0sc T0(P3
11、.4)GATETR0INT0KTH08位TF1中斷控制1/12f0scTR11TH0借用了T1的TR1和TF1,因此控制了T1的中斷此時T1可作串行通信的波特率控制發(fā)生器(下周介紹)“+1”“+1”1“+1”“+1”TF0TF1 中 斷“+1”第16頁,共32頁。工作方式3應用小結僅僅T0能工作在方式3,將16位計數器T0分為兩個獨立的8位計數器TH0、TL0。TL0占用T0的控制位:C/T、GATE、TR0、INT0、TF0,TL0功能和操作與T0在方式0、1、2時相同,可工作在定時方式或計數方式。TH0只能工作在定時方式,占用T1的控制位TR1、TF1,并控制T1的中斷。當T0工作在方式3
12、時,T1只能工作在方式02,且不能產生中斷請求,此時,T1僅能控制C/T位切換計數或定時工作方式,計數器溢出輸出一般送往串行口,充當波特率發(fā)生器。第17頁,共32頁。(5)定時/計數器應用時的初值計算計數器的初值由程序設定設計數器寬度為n,定時時長為T,要求計數脈沖個數為N,計數初值為X,機器周期為TCY 。計數:2nN+X X= 2n -N定時:2nT/ TCY + X X= 2n - T/ TCY = -T/ TCY 計數器的初值由程序設定實際應用時最好用(簡單): X=-N 計數方式 X=-T/ TCY 定時方式第18頁,共32頁。(6)初值裝載與GATE影響要產生周期性定時(計數),方
13、式0、1計數溢出后必須軟件重新加載THn、TLn ,否則,THn、TLn將從0開始計數。方式2可自動重裝。GATE的作用當GATE=0時,軟件置TR為1,啟動計數器,軟件清除TR為0,停止計數器。當GATE=1時,僅在INTn為高時,軟件置TR為1才能啟動計數器,可由此可實現硬件對啟動的直接控制,如測脈沖寬度等。第19頁,共32頁。(7)定時/計數器T0和T1的控制小結 通過設置TMOD中的C/T位,可控制T0、T1工作在定時方式或計數方式 通過設置TMOD中的M1M0位,可控制T0、T1工作在4種不同的工作模式 通過控制TCON中的TR1、TR0位,啟動或停止計數器, GATE位決定啟動是否
14、受對應外部中斷引腳控制。 根據定時或計數長度計算初值,最好直接寫負值。第20頁,共32頁。定時/計數器應用時的初始化 MCS-51單片機的定時/計數器T0、T1是可編程的,因此在使用之前需要進行初始化。其編程包括以下幾個步驟:(1)確定工作方式,即對TMOD寄存器進行賦值(2)計算計數初值,并寫入寄存器TH0、TL0或TH1、TL1中,最好直接寫負值。(3)如果用中斷方式,置位ETx允許T/C中斷(4)如果用中斷方式,置位EA使CPU開中斷(5)置位TRx啟動計數第21頁,共32頁。應用實例(方式1應用實例1)例 要求:從P1.0引腳上輸出周期為2ms的方波(fOSC=12MHz),采用T0定
15、時1ms。計數初值計算:(12分頻的機器周期=1us)(216-X初值)TCY1ms X=216-(1*10-3 )/(1*10-6 )X初值65536-1000055536=FC18HTH0FCH, TL018H(等效為: TH0high(-1000), TL0low(-1000)中斷方式: ORG 0000H ;復位入口地址 AJMP MAIN ORG 000BH ;T0中斷服務入口地址 AJMP TIMER0 ORG 0100第22頁,共32頁。MAIN:MOV TMOD,#01H ;設置工作模式 MOV TH0,#0FCH ;T0送初值high(-1000) MOV TL0,#18H
16、SETB EA ;開放CPU中斷 SETB ET0 ;開放T0中斷 SETB TR0 ;啟動計數器 SIMP $ ;等待計數器溢出中斷TIMER0: MOV TH0,#0FCH ;T0送初值 MOV TL0,#18H CPL P1.0 ;P1.0取反產生方波 RETI END第23頁,共32頁。查詢方式 ORG 0000H ;復位入口地址 AJMP MAIN ORG 0100MAIN:MOV TMOD,#01H ;設置工作模式 SETB TR0 ;啟動計數器LOOP:MOV TH0,#0FCH ;T0送初值 MOV TL0,#18H JNB TF0,$ ;等待計數器溢出 CPL P1.0 ;P
17、1.0取反產生方波 CLR TF0 ;清除溢出標志 SJMP LOOP END第24頁,共32頁。工作方式2應用實例要求:從P1.0上輸出一個周期性方波,周期10ms,晶振=12M。分析:周期為10ms的方波要求P1.0上的電平每5ms變更一次,但在方式2,T0的最大定時為256us,因此不能直接實現,可用T0產生250us定時,再用軟件計數20次,實現5ms定時。計數初值計算:(28-X初值)TCY250us250us:X初值6H 第25頁,共32頁。實現程序講解: ORG 0000H AJMP MAINMAIN: MOV TMOD,#02H ;設置T0工作模式 SETB P1.0 ;置P1
18、.0為高 MOV TH0,#06H ;置T0初值,5ms MOV TL0,#06H SETB TR0 ;啟動T0LOOP: MOV R2,#20LOOP1:JNB TF0,LOOP1 ;等待T0溢出 CLR TF0 ;清除溢出標志 DJNZ R2,LOOP1 ;等待5ms CPL P1.0 ;置P1.0為低 AJMP LOOP第26頁,共32頁。門控位GATE的應用(測高電平寬度)設在單片機INT0引腳上接入一個高電平寬度小于65536us的周期性脈沖,試編程測量其正脈沖寬度分析:T0工作在方式1,計數初值為0,GATE=1,置TR0=1,則當INT0=1時,T0開始計數,直到INT0=0,此
19、時,T0中的值為INT0引腳上的脈沖寬度。INT0INT0為高時T1開始計數INT0為低時T1停止計數寬度65ms第27頁,共32頁。 ORG 0000HMAIN: MOV TMOD,#09H ;置T0方式控制字:方式1,定時方式 MOV TH0,#00H MOV TL0,#00H ;T0從0開始計數LOOP0:JB P3.2,LOOP0 ;等待高電平結束 SETB TR0 ;T0允許計數LOOP1:JNB P3.2,LOOP1 ;等INT0高電平LOOP3:JB P3.2,LOOP3 ;等INT0高電平結束 CLR TR0 MOV R6,TL0 ;存儲測量值;低八位存R6 MOV R7,TH
20、0 ; 高八位存31h JMP MAIN ENDINT0INT0為高時T1開始計數INT0為低時T1停止計數寬度65ms“與”第28頁,共32頁。工作方式1應用實例2例要求:從P1.0引腳上輸出周期為2s的方波(fOSC=12MHz,對應12分頻機器周期1us)產生2s周期的方波,需要1s的定時對P1.0進行取反,但1s超過T0、T1的最大定時范圍??捎肨0產生20ms定時,定時到后更改1個軟件計數器(初值50),當軟件計數器減到0時,1s定時時間到)計數初值計算:(216-X初值)TCY20ms=20000us)(定時20000us)X初值0-20000-20000=0B1E0H TH00E0H,TL00B1H(等效為: TH0high(-20000), TL0low(-20000)中斷方式: ORG 0000H ;復位入口地址 AJMP MAIN ORG 000BH ;T0中斷服務入口地址 AJMP TIMER0 ORG 0100H第29頁,共32頁。MAIN:MOV TMOD,#01H ;設置T0工作模式1 MOV TH0,HIGH(-20000) ;T0送初值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Selected寫字樓轉租合同7篇
- 股權質押合同怎么寫6篇
- 環(huán)境監(jiān)測作業(yè)指導書
- 2025年青海貨運從業(yè)資格證答題軟件
- 2025年揭陽貨運資格證考試答案
- 公司員工自駕出差安全協(xié)議書年
- 冷鏈物流倉儲合同(標準版)7篇
- 2025年石家莊貨運從業(yè)資格證題庫及答案
- 2023年高考真題全國乙卷物理試卷
- 聯營協(xié)議合同范本石油
- GB/T 36548-2024電化學儲能電站接入電網測試規(guī)程
- 土力學與地基基礎(課件)
- 球墨鑄鐵管道施工的學習課件
- 學習2022《工業(yè)和信息化領域數據安全管理辦法(試行)》重點內容PPT課件(帶內容)
- 光伏發(fā)電場建設工程資料表格(239表格齊全)
- 《紙馬》教學設計公開課
- 西服裙縫制工藝課件(PPT 14頁)
- 城市道路綠化養(yǎng)護工作
- 國內木材炭化技術專利現狀
- 施耐德公司品牌戰(zhàn)略
- 塑膠原料檢驗規(guī)范
評論
0/150
提交評論