




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、微機原理及應用 Principle and Applications of Micro-Computers 第10講 MCS-51單片機定時/計數(shù)器(教材5.3節(jié))教學目的: 了解MCS-51單片機的定時/計數(shù)器的結構, 掌握其工作方式和模式及它們的編程控制要求: 掌握MCS-51單片機定時/計數(shù)器的4種工作方式的編程控制方法 難點: 定時/計數(shù)器的編程控制(初始化程序和初始值計算)本講的主要內(nèi)容pMCS-51單片機的定時/計數(shù)器的內(nèi)部結構p定時/計數(shù)器編程控制的幾個寄存器pTCON, TMOD, THi, TLip四種工作方式下定時/計數(shù)器的工作原理p構成, 編程控制方法(初始化和初始值計算
2、方法)p定時/計數(shù)器的應用p方波發(fā)生器, 脈沖寬度測量, 周期性任務調(diào)度器實現(xiàn)定時的方法p軟件定時p軟件延時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。例如延時程序。p采用時基電路定時p例如采用555電路,外接必要的元器件(電阻和電容),即可構成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進行控制和修改,即不可編程,且定時時間容易漂移。p可編程定時器定時p最方便的辦法是利用單片機內(nèi)部的定時器/計數(shù)器。結合了軟件定時精確和硬件定時電路獨立的特點。2022-3-23MCS-51單片機的定時/計數(shù)器p基于8051內(nèi)核的MCS-51單片機具有2個定時/計數(shù)器p16位定時/
3、計數(shù)器, 可編程作為8位, 13位和16位的定時/計數(shù)器p每個定時/計數(shù)器包含2個獨立的8位寄存器, 儲存定時/計數(shù)器的值p作定時器時, 時鐘源來自系統(tǒng)的晶體振蕩器, 頻率為系統(tǒng)頻率的1/12倍p作計數(shù)器時, 時鐘源來自連接在2個引腳(Ti)的外部脈沖信號, 最大計數(shù)頻率為系統(tǒng)頻率的1/24倍p定時/計數(shù)器以遞加方式累計計數(shù)p基于8052內(nèi)核的增強型MCS-51單片機至少具有3個定時/計數(shù)器, 為了滿足某些特殊應用, 許多增強型MCS-51單片機還具有可編程計數(shù)器陣列(PCA)p如Silicon Lab.的C8051F系列MCS-51單片機的定時/計數(shù)器結構外部計數(shù)脈沖輸入引腳外部計數(shù)脈沖輸入
4、引腳方式和模式控制寄存器方式和模式控制寄存器啟啟/停控制寄存器停控制寄存器溢出中斷信號溢出中斷信號p定時定時/計數(shù)器的計數(shù)器的實質(zhì)實質(zhì)是是加一計數(shù)器加一計數(shù)器(16位),由高位),由高8位和低位和低8位兩個寄位兩個寄存器組成存器組成。定時定時/計數(shù)器值的寄存器計數(shù)器值的寄存器定時定時/計數(shù)器值的寄存器計數(shù)器值的寄存器定時/計數(shù)器控制寄存器 TCONINT0/1的觸發(fā)方式控制的觸發(fā)方式控制(1:下降沿下降沿; 0:低電平低電平)INT0/1的中斷請求標志的中斷請求標志(1:有效有效; 0:無效無效)T0/1的中斷請求標志的中斷請求標志(1:有效有效; 0:無效無效)T0/1的啟動的啟動/停止控制
5、位停止控制位(1:啟動啟動; 0:停止停止)T0工作方式選擇控制工作方式選擇控制00B: 方式方式0; 01B:方式方式110B: 方式方式2; 11B:方式方式3定時器定時器/計數(shù)器選擇控制計數(shù)器選擇控制(1:計數(shù)器計數(shù)器; 0:定時器定時器)定時定時/計數(shù)器啟計數(shù)器啟/停方式控制選擇位停方式控制選擇位(簡稱門控位簡稱門控位)1: INTi引腳為高電平引腳為高電平,且且TRi=1, 則啟動則啟動, 否則停止否則停止;0: 啟啟/停與停與INTi引腳電平無關引腳電平無關, TRi=1啟動啟動, TRi=0停止停止定時/計數(shù)器控制寄存器 TMODD7D6D5D4D3D2D1D0TMOD GATE
6、C/TM1M0GATEC/TM1M0T1工作模式和方式控制位工作模式和方式控制位T0工作模式和方式控制位工作模式和方式控制位T1工作方式選擇控制工作方式選擇控制00B: 方式方式0; 01B:方式方式110B: 方式方式2; 11B:方式方式3本講的主要內(nèi)容pMCS-51單片機的定時/計數(shù)器的內(nèi)部結構p定時/計數(shù)器編程控制的幾個寄存器pTCON, TMOD, THi, TLip四種工作方式下定時/計數(shù)器的工作原理p構成, 編程控制方法(初始化和初始值計算方法)p定時/計數(shù)器的應用p方波發(fā)生器, 脈沖寬度測量, 周期性任務調(diào)度器存儲定時/計數(shù)器值的寄存器p定時/計數(shù)器0 (T0)pTH0 (高8
7、位), TL0 (低8位)p定時/計數(shù)器1 (T1)pTH1 (高8位), TL1 (低8位)pTHi和TLi組成一個16位的寄存器, 范圍: 065535p方式0 (13位定時/計數(shù)器): THi(高8位)+TLi(低5位) (08191)p方式1 (16位定時/計數(shù)器): THi(高8位)+TLi(低8位) (065535)p方式2 (8位自動重裝定時/計數(shù)器): TLi (0255) (THi(重裝值)p方式3 (僅對T0): TL0(第1個8位定時/計數(shù)器), TH0(第2個定時器) 定時/計數(shù)器的工作原理 方式0 ?1. 什么情況時為定時什么情況時為定時/計計數(shù)器溢出數(shù)器溢出? 2.
8、 作為遞加的計數(shù)器作為遞加的計數(shù)器, 計計劃劃10個脈沖后溢出個脈沖后溢出, 應從應從何時何時(初始值初始值)開始計數(shù)開始計數(shù)? 定時/計數(shù)器的編程控制 方式0編程控制包括如下操作設置工作方式設置工作方式, 選擇定時器或計數(shù)器模式選擇定時器或計數(shù)器模式 (TMOD)作為定時器作為定時器, 需根據(jù)待定時時間和系統(tǒng)晶體頻率需根據(jù)待定時時間和系統(tǒng)晶體頻率(或機器周期或機器周期)來來確定初始值確定初始值 (THi和和TLi)啟動和停止控制啟動和停止控制 (單獨設置單獨設置TRi位或直接寫位或直接寫TCON)若使用中斷若使用中斷, 需設置相應的中斷和優(yōu)先級控制寄存器需設置相應的中斷和優(yōu)先級控制寄存器(I
9、E,IP)13位定時/計數(shù)器的初始值計算方法13 _132, PMPMTInitialValBTTT定時周期(或定時時間)機器周期 ?這里的這里的InitialVal_13B的的有效數(shù)據(jù)位為有效數(shù)據(jù)位為13位位, 自然自然保存在一個保存在一個16位變量中位變量中, 那么如何給那么如何給THi和和TLi賦賦值值?定時/計數(shù)器的工作原理 方式116(_16 ) _162, (_16 ) , HighPLowMPMTHiInitialValBTInitialValBTLiInitialValBTTT定時周期(或定時時間)機器周期16位定時位定時/計數(shù)器的初始值計算方法計數(shù)器的初始值計算方法16位定時
10、位定時/計數(shù)器的構成計數(shù)器的構成見教材見教材p.155圖圖5-7定時/計數(shù)器的工作原理 方式28位自動重位自動重裝定時裝定時/計計數(shù)器的構成數(shù)器的構成見教材見教材p.156圖圖5-88 2, , PMPMTTLiTHiTLiTTT自動重裝寄存器 定時周期(或定時時間)機器周期8位自動重裝定時位自動重裝定時/計數(shù)器的初始值計算方法計數(shù)器的初始值計算方法8位自動重裝定位自動重裝定時時/計數(shù)器一般應計數(shù)器一般應用于用于UART的波的波特率發(fā)生器特率發(fā)生器(教材教材p.157圖圖5-11)(下一講說下一講說UART)方式0示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 其其機器周期為機器周
11、期為 s? 設計一個方波發(fā)生器設計一個方波發(fā)生器, 在在P1.0 引腳輸出周期為引腳輸出周期為1ms的方波的方波, 現(xiàn)要求用現(xiàn)要求用T1作為定時器作為定時器, 且工作在方式且工作在方式0.(用(用定時中斷定時中斷方式來實現(xiàn))方式來實現(xiàn))開開 始始P1.7置置1T1模式設置模式設置T1初值設置初值設置(0.5ms)中斷設置中斷設置開中斷開中斷循環(huán)等待中斷循環(huán)等待中斷啟動定時器啟動定時器T1中斷入口中斷入口T1初值設置初值設置(0.5ms)中斷返回中斷返回P1.7取反取反主程序流程主程序流程中斷服務子程序流程中斷服務子程序流程采用方式采用方式0:N=8192-500/1=7692=1E0CH數(shù)據(jù)格
12、式為:數(shù)據(jù)格式為:1111000000001100B=0F00CH所以(所以(TH1)=0F0H,(,(TL1)=0CH方式0示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 其其機器周期為機器周期為 s? 設計一個方波發(fā)生器設計一個方波發(fā)生器, 在在P1.0 引腳輸出周期為引腳輸出周期為1ms的方波的方波, 現(xiàn)要求用現(xiàn)要求用T1作為定時器作為定時器, 且工作在方式且工作在方式0.(用(用定時中斷定時中斷方式來實現(xiàn))方式來實現(xiàn))P1 ORG 0000HRESERT: AJMP MAIN ORG 001BH AJMP IT1P ORG 0100H MAIN: MOV SP,#60H A
13、CALL PT1M0 HERE: AJMP HERE Step1:計算初始值Step2:1)TMOD 2) TCON 3) Thx,Tlx 4) 開中斷 5)啟動C/TPT1M0: MOV TMOD, #00H MOV TL1,#0CH MOV TH1,#0F0H SETB ET1 SETB EA SETB TR1 RET IT1P: MOV TL1,#0CH MOV TH1,#0F0H CPL P1.0 RETI定時/計數(shù)器的編程控制 方式0示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 其其機器周期為機器周期為 s? 設計一個方波發(fā)生器設計一個方波發(fā)生器, 在在P1.0 引腳輸
14、出周期為引腳輸出周期為1ms的方波的方波, 現(xiàn)要求用現(xiàn)要求用T1作為定時器作為定時器, 且工作在方式且工作在方式0. (分別用分別用查詢溢出標志位查詢溢出標志位TF1和和定時中斷定時中斷兩種方式來實現(xiàn)兩種方式來實現(xiàn))P2 #include void main(void) while(1); /主程序 interrupt 0 x1B void T1_ISR(void) TR1 = 0; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; TH1 = ; TL1 = ; TR1 = 1; P1 #include void main(void) /主程序 while(TF1
15、 != 1); TF1 = 0; TR1 = 0; TR1 = 1; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; 定時/計數(shù)器的編程控制 方式1示例 某系統(tǒng)使用某系統(tǒng)使用12MHz晶體振蕩器晶體振蕩器, 如果用如果用T0作為定時器作為定時器, 且工作在方式且工作在方式1, 現(xiàn)要求現(xiàn)要求P1.0產(chǎn)生周期為產(chǎn)生周期為20ms的方波的方波, 如何實現(xiàn)?如何實現(xiàn)? #include void main(void) TMOD = 0 x01 ; TH0 = 0 xD8 ; TL0 = 0 xF0 ; IE = 0 x82; IP = 0 x02; TR0 = 1; P1
16、.0 = 1; while(1); /主程序 interrupt 0 x0B void T0_ISR(void) TR0 = 0; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; TH0 = 0 xD8 ; TL0 = 0 xF0 ; TR0 = 1; ?如果希望在該系統(tǒng)如果希望在該系統(tǒng)實現(xiàn)實現(xiàn)1s的定時周期的定時周期, 應該怎么實現(xiàn)應該怎么實現(xiàn)? 能能實現(xiàn)實現(xiàn)10s或更長的或更長的定時周期嗎定時周期嗎? 方式2的應用 假設系統(tǒng)的單片機使用假設系統(tǒng)的單片機使用6MHz的晶體振蕩器的晶體振蕩器.把把T0作為一個特殊外部中斷請作為一個特殊外部中斷請求輸入線求輸入線,要
17、求要求T0引腳發(fā)生負跳變時向引腳發(fā)生負跳變時向CPU申請中斷申請中斷.以以T0工作在方式工作在方式2計數(shù)計數(shù)器模式器模式,計數(shù)器的初始值為計數(shù)器的初始值為FFH,一旦一旦T0引腳出現(xiàn)負跳變時引腳出現(xiàn)負跳變時,計數(shù)器的計數(shù)值計數(shù)器的計數(shù)值加加1,立即產(chǎn)生立即產(chǎn)生T0計數(shù)器溢出中斷標志計數(shù)器溢出中斷標志 TF0=1,向向CPU申請中斷申請中斷.每發(fā)生一次每發(fā)生一次T0中斷后中斷后,P1.0腳的腳的LED亮亮50ms然后關閉然后關閉,直到再次出現(xiàn)直到再次出現(xiàn)T0中斷中斷LED再亮再亮50ms,如此重復如此重復. (1) TMOD (2) 初始值初始值 (3) 編寫初始化程序編寫初始化程序,裝入初始值
18、裝入初始值,開放中斷開放中斷 (4) 編寫中斷服務程序編寫中斷服務程序方式2的應用 程序代碼 ORG 0000H AJMP MAIN ORG 000B AJMP ITOP ORG 001B AJMP IT1P ORG 0100H MAIN: MOV SP, #60H ACALL PT0M2 HERE: AJMP HEREIT0P: CLR P1.0 SETB TR1 RETIIT1P: MOV TH1,#58H MOV TH1,#9EH SETB P1.0 CLR TR1 RETIPT0M2: MOV TMOD, #16H MOV TL0, #16H MOV TH0, #0FFH MOV TL0, #0FFH MOV HL1,#58H MOV TH1,#9EH SERB TR0 SETB ET0 SETB P1.0 SETB EA RET方式3的應用(P163) 程序代碼總結pMCS-51的定時的定時/計數(shù)器結構計數(shù)器結構: p定時定時/計數(shù)器值的寄存器計數(shù)器值的寄存器, 啟啟/停控制寄存器停
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目管理全生命周期試題及答案
- 現(xiàn)代棉紡紗新技術發(fā)展趨勢考核試卷
- 2025年黑龍江省安全員B證證考試題及答案
- 高校輔導員考試應考者心理建設試題及答案
- 皮革物理強度測試設備考核試卷
- 2025年注會學習小組活動試題及答案
- 電力系統(tǒng)中的能源路由器應用考核試卷
- 項目需求分析與變更的考核試題及答案
- 2023年中國電信貴州公司社會人才招聘41名筆試參考題庫附帶答案詳解
- 2023年中國林業(yè)出版社有限公司公開招聘工作人員4人筆試參考題庫附帶答案詳解
- 2024年美國商用車和乘用車市場現(xiàn)狀及上下游分析報告
- 2024醫(yī)療設備器械試用協(xié)議書
- DB32T3748-2020 35kV及以下客戶端變電所建設標準
- 中國近代三種建國方案
- 數(shù)學奧秘揭秘-揭開數(shù)學背后的奧秘
- 溫度傳感器Pt100-阻值-溫度對照表(方便實用)
- 《幽門螺桿菌檢測》課件
- 《云南土壤類型》課件
- 小兒肝臟間葉錯構瘤課件
- 2022智慧園區(qū)設計、建設與驗收技術規(guī)范
- 河南省濮陽市清豐縣2023-2024學年八年級上學期期中生物試題( 含答案解析 )
評論
0/150
提交評論