版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
14.2定時器/計數(shù)器定時的實現(xiàn)方式:1.軟件定時;2.不可編程硬件定時;3.可編程定時。2
定時/計數(shù)器的核心部件是二進制加1計數(shù)器(TH0、TL0或TH1、TL1)。4.2.1定時/計數(shù)器的定時和計數(shù)功能
1.定時功能——計數(shù)脈沖信號是內(nèi)部時鐘脈沖,每個機器周期使寄存器的值加1。所以,計數(shù)頻率是振蕩頻率的1/12。
2.計數(shù)功能——計數(shù)脈沖來自相應(yīng)的外部輸入引腳,T0為P3.4,T1為P3.5。需要2個機器周期。
在TMOD中,各有一個控制位(),分別用于控制定時/計數(shù)器T0和T1是工作在定時器方式還是計數(shù)器方式。3與定時器/計數(shù)器有關(guān)的控制寄存器有:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中斷請求標(biāo)志外部中斷觸發(fā)方式選擇啟動定時/計數(shù)器0低電平1下降沿0停止1啟動定時溢出標(biāo)志4.2.2定時器/計數(shù)器的控制寄存器
1.定時器控制寄存器TCON(字節(jié)地址88H)42.工作方式控制寄存器TMOD(89H)
T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—門控位C/T—計數(shù)/定時選擇M1M0—工作方式選擇54.2.3.定時器/計數(shù)器的工作方式
共有四種工作方式
(1)方式0—13位方式TF0T0TR0GATEINT0振蕩器1/12C/T=01≥1&C/T=1TL0TH08位低5位13位計數(shù)器定時器計數(shù)器申請中斷M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7●●AB計數(shù)脈沖輸入6(2)方式1—16位方式
振蕩器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TL0TH0TF08位8位16位計數(shù)器申請中斷M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D77(3)方式2—8位可自動重裝入時間常數(shù)方式
振蕩器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TF0TL0TH08位計數(shù)器申請中斷M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D78(4)方式3—T0為2個8位方式,T1工作方式為0、1、2振蕩器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TL0TF08位計數(shù)/定時器振蕩器1/12TR1TH0TF18位定時器申請中斷申請中斷工作方式:8位計數(shù)/定時工作方式:8位定時9振蕩器1/12T1C/T=0C/T=113或16位計數(shù)器串行口振蕩器1/12T1C/T=0C/T=1TL1TH18位計數(shù)器串行口TL1TH1T1方式0,1T1方式2串行口得到的波特率是固定的!串行口得到的波特率可編程的!104.2.4應(yīng)用舉例②
計算計數(shù)器的計數(shù)初值:編程時將計數(shù)初值送
THi、TLi;可編程器件在使用前需要進行初始化:①
確定TMOD控制字:編程時將控制字送TMOD;③
開中斷(如果使用中斷方式):編程時置位EA、ETi;④
TRi位置位控制定時器的啟動和停止。M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7IT0IE0IT1IE1TR0TF0TR1TF1TMODTCON11例題1:設(shè)晶振頻率fOSC=6MHz,使用定時器/計數(shù)器T0以方式0產(chǎn)生周期為2ms的方波脈沖,并由P1.0輸出。試以中斷方式實現(xiàn)。8051P1.02ms匯編語言編程12①TMOD確定0000XXXXM0M1C/TGATEM0M1C/TGATE控制字00H
要產(chǎn)生2ms的方波脈沖,只需在P1.0端以1ms為間隔,交替輸出高低電平即可實現(xiàn)。為此,定時間應(yīng)為1ms。使用6MHz晶振,則一個機器周期為2us,設(shè)待求計數(shù)初值為X,則:②計算計數(shù)器的計數(shù)初值;T1控制T0控制131000×10-6
=(213-X)×2×10-6
即
500=213-XX=213-500=2000H-1F4H=1E0CH=1111000001100B所以,初值為:
TH0=0F0H,TL0=0CH14程序設(shè)計 ORG 0000H LJMP MAIN;主程序入口
ORG 000BH LJMP INTT0 ;T0中斷入口③采用中斷方式:編程時打開全局和局部中斷。④由定時器控制寄存器TCON中的TR0位控制定時器的啟動和停止。
TR0=1,啟動;TR0=0,停止。15INTT0: MOV TH0,#0F0H ;重新設(shè)置初值
MOV TL0,#0CH CPL P1.0
;輸出取反
RETI ORG 0030HMAIN: MOV TMOD,#00H ;T0為方式0 MOV TH0,#0F0H ;初值
MOV TL0,#0CH SETB TR0 ;啟動T0 SETB ET0 ;允許T0中斷
SETB EA ;允許中斷
SJMP $ ;等待中斷主程序:中斷處理程序:16例題2:設(shè)晶振頻率fOSC=6MHz,使用定時器/計數(shù)器T1以方式1產(chǎn)生周期為2ms的方波脈沖,并由P1.0輸出。試以中斷方式實現(xiàn)。8051P1.02ms17①TMOD確定XXXX1000M0M1C/TGATEM0M1C/TGATE控制字10H
要產(chǎn)生2ms
的方波脈沖,只需在P1.0端以1ms為間隔,交替輸出高低電平即可實現(xiàn)。為此,定時間應(yīng)為1ms。使用6MHz晶振,則一個機器周期為2us,設(shè)待求計數(shù)初值為X,則:②計算計數(shù)器的計數(shù)初值;T1控制T0控制181000×10-6=(216-X)×2×10-6
即
500=216-XX=216-500=10000H-1F4H=0FE0CH=1111111000001100B所以,初值為:
TH1=0FEH,TL1=0CH19程序設(shè)計 ORG 0000H LJMP MAIN;主程序入口
ORG 001BH LJMP INTT1;T1中斷入口③采用中斷方式:編程時打開全局和局部中斷。④由定時器控制寄存器TCON中的TR1位控制定時器的啟動和停止。
TR1=1,啟動;TR1=0,停止。20INTT1: MOV TH1,#0FEH ;重新設(shè)置初值
MOV TL1,#0CH CPL P1.0
;輸出取反
RETI ORG 0030HMAIN: MOV TMOD,#10H ;T1為方式1 MOV TH1,#0FEH ;初值
MOV TL1,#0CH SETB TR1 ;啟動T1 SETB ET1 ;允許T1中斷
SETB EA ;允許中斷
SJMP $ ;等待中斷主程序:中斷處理程序:21例題3:設(shè)晶振頻率fOSC=6MHz,使用定時器/計數(shù)器測定如圖所示波形的一個周期長度。1外部計數(shù)脈沖INT0(P3.2)(P3.5)T1INT0一個周期啟動定時器T1計數(shù)器計數(shù)22C語言編程(以定時器0為例)
例題4:設(shè)單片機的fosc=12MHz,要求在P1.0腳上輸出周期為2ms的方波。
周期為2ms的方波要求定時間隔為1ms,每次定時時間到,則P1.0取反。由于fosc=12MHz,機器周期為12/fosc=1us。1ms=1000us,即為1000個機器周期。
①用定時器T0的方式1編程,采用查詢方式。#include<reg51.h>sbitsquare_wave=P1^0;voidmain(void)23{ TMOD=0x01; /*T0的方式1*/ TR0=1; /*啟動定時器T0*/ while(1) { /*裝計數(shù)器初值*/ TH0=(unsignedint)(-1000)/256; TL0=(unsignedint)(-1000)%256; while(!TF0) /*查詢等待TF0位*/
{ ; }
/*查詢時間到,P1.0變反*/
square_wave=!square_wave; TF0=0; /*軟件清除TF0位*/ }}24②用定時器T0的方式1編程,采用中斷方式。#include<reg51.h>sbitsquare_wave=P1^0;/*定時器T0的中斷服務(wù)程序*/voidtimer0(void)interrupt1using1{
/*P1.0取反*/
square_wave=!square_wave; /*計數(shù)器初值重裝*/ TH0=(unsignedint)(-1000)/256; TL0=(unsignedint)(-1000)%256;}25voidmain(void){ TMOD=0x01; /*T0的方式1*/ square_wave=0; TH0=(unsignedint)-1000/256;/*裝計數(shù)器初值*/ TL0=(unsignedint)-1000%256; EA=1; /*開中斷*/ ET0=1; /*T0中斷允許*/ TR0=1; /*啟動T0*/ while(1) { ; }}264.2.5定時/計數(shù)器用作外部中斷擴展③擴展的外部中斷請求信號接計數(shù)脈沖輸入端(T0
或T1);②TH和TL均置為FFH;①置定時/計數(shù)器為工作方式2,即自動加載式8位計數(shù),以便在一次中斷響應(yīng)后,自動為下一次中斷作準(zhǔn)備;
在計數(shù)方式下,如果把計數(shù)器預(yù)置為全1,則只要在計數(shù)輸入端(T0或T1輸入端)加一脈沖就可以使計數(shù)器溢出,產(chǎn)生溢出中斷。這就是定時/計數(shù)器實現(xiàn)外部中斷擴展的思想。具體方法是:27例:以T0實現(xiàn)一個外
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資經(jīng)理面試題及答案詳解
- 2025年物流信息化管理系統(tǒng)項目可行性研究報告
- 2025年醫(yī)療健康信息平臺構(gòu)建可行性研究報告
- 2025年智慧校園解決方案開發(fā)項目可行性研究報告
- 2026年福州黎明職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫附答案詳解
- 2026年浙江省湖州市單招職業(yè)傾向性考試題庫帶答案詳解
- 2026年黑龍江農(nóng)墾職業(yè)學(xué)院單招職業(yè)傾向性測試題庫含答案詳解
- 2026年寧德師范學(xué)院單招職業(yè)技能測試題庫及參考答案詳解1套
- 2026年桂林山水職業(yè)學(xué)院單招職業(yè)技能測試題庫參考答案詳解
- 2026年上海杉達學(xué)院單招職業(yè)技能測試題庫帶答案詳解
- 11.1黨和人民信賴的英雄軍隊課件-2025-2026學(xué)年統(tǒng)編版道德與法治八年級上冊
- 2025年軍隊文職保管員題庫及答案(可下載)
- 企業(yè)勞動用工風(fēng)險防范操作指南
- DB37-T 5337-2025 建筑隔震減震裝置檢測技術(shù)規(guī)程
- 立德樹人教育教學(xué)課件
- 餐飲宴會服務(wù)標(biāo)準(zhǔn)流程全流程管理方案
- 甲方安全技術(shù)交底
- 化療藥物輸注規(guī)范
- 礦山安裝施工方案
- 化工新材料生產(chǎn)線項目社會穩(wěn)定風(fēng)險評估報告
- 律所報銷管理辦法
評論
0/150
提交評論