版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第六章MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器
6.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理6.2定時(shí)/計(jì)數(shù)器的控制寄存器6.3定時(shí)/計(jì)數(shù)器的方式6.4定時(shí)/計(jì)數(shù)器的應(yīng)用6.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理
圖6-1單片機(jī)的定時(shí)/計(jì)數(shù)器結(jié)構(gòu)框圖
MCS-51單片機(jī)的兩個(gè)定時(shí)/計(jì)數(shù)器都屬于增1計(jì)數(shù)器,具有定時(shí)和計(jì)數(shù)功能。1.計(jì)數(shù)功能。定時(shí)/計(jì)數(shù)器的計(jì)數(shù)是指對外部事件計(jì)數(shù)。外部事件以脈沖信號的形式來表示,計(jì)數(shù)的實(shí)質(zhì)是對脈沖信號進(jìn)行計(jì)數(shù)。外部事件脈沖信號通過引腳T0(P3.4)或T1(P3.5)輸入給單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器,負(fù)跳變有效。在收到有效的負(fù)跳變信號后,定時(shí)/計(jì)數(shù)器在初值基礎(chǔ)上進(jìn)行加1操作。單片機(jī)復(fù)位后計(jì)數(shù)器的初值為0,可通過指令給計(jì)數(shù)器裝入一個(gè)新的初值。2.定時(shí)功能。定時(shí)/計(jì)數(shù)器的定時(shí)功能也是通過計(jì)數(shù)來實(shí)現(xiàn)的。當(dāng)定時(shí)/計(jì)數(shù)器工作在定時(shí)方式下時(shí),將對單片機(jī)內(nèi)部的時(shí)鐘振蕩器信號經(jīng)片內(nèi)12分頻后的內(nèi)部脈沖信號計(jì)數(shù)。由于一個(gè)機(jī)器周期等于12個(gè)振蕩周期,因此,在定時(shí)方式下,定時(shí)/計(jì)數(shù)器對內(nèi)部機(jī)機(jī)器周期脈沖計(jì)數(shù),由于時(shí)鐘頻率是定值,,所以可根據(jù)計(jì)數(shù)值計(jì)算出定時(shí)時(shí)間。6.2定時(shí)/計(jì)數(shù)器的控制寄存器
1.方式控制寄存器TMODTMOD是一個(gè)8位的特殊功能寄存器,字節(jié)地址為89H,不可位尋址,其低4位用于定時(shí)/計(jì)數(shù)器0,高4位用于定時(shí)/計(jì)數(shù)器1,其格式如圖6-2所示,各位定義如下:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT02.定時(shí)/計(jì)數(shù)器控制寄存器TCONTCON也是一個(gè)8位的特殊功能寄存器,字節(jié)地址為88H,可位尋址,其格式如圖6-3所示。在第5章中介紹了與外部中斷有關(guān)的低4位,在此只介紹與定時(shí)/計(jì)數(shù)器有關(guān)的高4位。6.3定時(shí)/計(jì)數(shù)器的方式6.3.1方式0
當(dāng)M1M0為00時(shí),定時(shí)器計(jì)數(shù)器被設(shè)置為方式0,是一個(gè)13位的計(jì)數(shù)器,16位的寄存器(TH0、TL0、TH1、TL1)只用了TH0(TH1)8位和TL0(TL1)的低5位,TL0(TL1)的高3位不用。當(dāng)TL0(TL1)計(jì)數(shù)溢出時(shí)則向TH0(TH1)溢出,TH0(TH1)計(jì)數(shù)溢出則把TCON中的溢出標(biāo)志位TF0(TF1)置1。在方式0下,定時(shí)/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器T1的邏輯結(jié)構(gòu)和操作是完全相同的,下面以定時(shí)/計(jì)數(shù)器1為例說明其操作方法,其邏輯結(jié)構(gòu)如圖6-4所示。圖6-4定時(shí)/計(jì)數(shù)器方式0邏輯結(jié)構(gòu)圖對一次溢出而言,其定時(shí)時(shí)間為:(213-定時(shí)/計(jì)數(shù)器初值)×機(jī)器周期或(213-定時(shí)/計(jì)數(shù)器初值)×12/fosc最小定時(shí)時(shí)間為:[213-(213-1)]×12/fosc最長定時(shí)時(shí)間為:(213-0)×12/fosc當(dāng)=1時(shí),多路開關(guān)打在下面,連接T1引腳,此時(shí),定時(shí)/計(jì)數(shù)器1工作在計(jì)數(shù)模數(shù),對外部輸入脈動沖計(jì)數(shù)。對一次溢出而言,其計(jì)數(shù)值范圍為:1~213(8192)。6.3.2方式1
當(dāng)M1M0為01時(shí),定時(shí)/計(jì)數(shù)器被設(shè)置為方式1。在方式1下,定時(shí)/計(jì)數(shù)器0和定時(shí)/計(jì)數(shù)器1的邏輯結(jié)構(gòu)和操作是完全相同。兩個(gè)定時(shí)/計(jì)數(shù)器都是16位計(jì)數(shù)器,由TH0(TH1)8位和TL0(TL1)8位構(gòu)成,工作原理和工作過程與方式0時(shí)完全相同,在此不再贅述。
對一次溢出而言,其定時(shí)時(shí)間為:
(216-定時(shí)/計(jì)數(shù)器初值)×機(jī)器周期或(216-定時(shí)/計(jì)數(shù)器初值)×12/fosc則最小定時(shí)時(shí)間為:[216-(216-1)]×12/fosc最長定時(shí)時(shí)間為:(216-0)×12/fosc計(jì)數(shù)值范圍為:1~216(65536)6.3.3方式2
當(dāng)M1M0為10時(shí),定時(shí)/計(jì)數(shù)器被設(shè)置為方式2。在方式2下,定時(shí)/計(jì)數(shù)器1和定時(shí)/計(jì)數(shù)器0的邏輯結(jié)構(gòu)和操作完全相同,均為可重置初值的8位計(jì)數(shù)器,以定時(shí)/計(jì)數(shù)器1為例,其邏輯結(jié)構(gòu)如圖6—5所示。圖6-5定時(shí)/計(jì)數(shù)器方式0邏輯結(jié)構(gòu)圖
在方式2下,以TL1(TL0)作為8位計(jì)數(shù)器,以TH1(TH0)作為預(yù)置寄存器,用來保存初值。當(dāng)TL1(TL0)計(jì)數(shù)滿溢出時(shí),硬件在將溢出標(biāo)志位TF1置1的同時(shí),還自動將TH1(TH0)保存的初值送入TL1(TL0)中,使定時(shí)/計(jì)數(shù)器又開始新一輪的計(jì)數(shù)。
對一次溢出而言,其定時(shí)時(shí)間為:(28-定時(shí)/計(jì)數(shù)器初值)×機(jī)器周期或(28-定時(shí)/計(jì)數(shù)器初值)×12/fosc則最小定時(shí)時(shí)間為:[28-(28-1)]×12/fosc最長定時(shí)時(shí)間為:(28-0)×12/fosc計(jì)數(shù)值范圍為:1~28(256)6.3.4方式3
在方式3下,定時(shí)/計(jì)數(shù)器1和定時(shí)/計(jì)數(shù)器0的設(shè)置和使用是不同的。方式3只適用于定時(shí)/計(jì)數(shù)器0,定時(shí)/計(jì)數(shù)器1不能工作在方式3下。當(dāng)將定時(shí)/計(jì)數(shù)器1設(shè)置為方式3時(shí)相當(dāng)于使TR1=0,它將停止工作。1.方式3下的定時(shí)/計(jì)數(shù)器0圖6-6定時(shí)/計(jì)數(shù)器0方式3邏輯結(jié)構(gòu)圖2.方式3下的定時(shí)/計(jì)數(shù)器1
當(dāng)將定時(shí)/計(jì)數(shù)器1設(shè)為方式3時(shí),它將停止工作。在定時(shí)/計(jì)數(shù)器0工作在方式3時(shí),定時(shí)/計(jì)數(shù)器1仍可工作在方式0~2,但是由于`TR1、TF1均由定時(shí)/計(jì)數(shù)器0使用,定時(shí)/計(jì)數(shù)器`1一般作為串行口的波特率發(fā)生器使用。在實(shí)際使用中,常把定時(shí)/計(jì)數(shù)器1設(shè)置為方式2作為串行口的波特率發(fā)生器來用。邏輯結(jié)構(gòu)如圖6-7所示。
圖6-7定時(shí)/計(jì)數(shù)器0方式3時(shí)定時(shí)/計(jì)數(shù)器1的工作邏輯結(jié)構(gòu)圖。
圖6-7定時(shí)/計(jì)數(shù)器0方式3時(shí)定時(shí)/計(jì)數(shù)器1的工作邏輯結(jié)構(gòu)圖6.4定時(shí)/計(jì)數(shù)器的應(yīng)用6.4.1方式0的應(yīng)用
例6.1選用定時(shí)/計(jì)數(shù)器1方式0產(chǎn)生500μs定時(shí),在P1.1引腳上輸出周期為1ms的方波,設(shè)晶振頻率fosc=6MHz。(1)計(jì)算定時(shí)/計(jì)數(shù)器的初值
機(jī)器周期=2μs
設(shè)需要裝入T1的初值為X,則有(213-X)×2=500,可得X=7942D=1000000000010B,低五位送入TL1的低五位,高八位送入TH1,即(TL1)=00110B=06H,(TH1)=11111000B=F8H(2)初始化程序設(shè)計(jì)
根據(jù)題意,對TMOD進(jìn)行始化。GATE=0,用TR1控制定時(shí)器的啟動和停止,=0,設(shè)為定時(shí)工作模式,M1M0=00,設(shè)為方式0,定時(shí)/計(jì)數(shù)器0不用,TMOD低四位置零即可,則(TMOD)=00H(3)程序設(shè)計(jì)程序的實(shí)現(xiàn)可以查用查詢方式或中斷方式。采用查詢方式,參考程序如下:ORG0000H
LJMPMAIN
ORG0300HMAIN:MOVTMOD,#00H;對TMOD初始化
MOVTH1,#0F8H;設(shè)置計(jì)數(shù)初值MOVTL1,#06HMOVIE,#00H;禁止中斷SETBTR1;啟動T1LOOP:JBCTF1,ZCZ;查詢計(jì)數(shù)是否溢出
AJMPLOOPZCZ:CLRTR1;停止T1MOVTL1,#06H;重置計(jì)數(shù)初值MOVTH1,#0F8HCLPP1.1;輸出取反SETBTR1;啟動T1AJMPLOOP;重復(fù)循環(huán)若采用中斷方式,參考程序如下:ORG0000H
LJMPMAINORG001BH;定時(shí)/計(jì)數(shù)器1的中斷服務(wù)程序入地址
AJMPZCZ
ORG0300HMAIN:MOVTMOD,#00H;對TMOD初始化
MOVTH1,#0F8H;設(shè)置計(jì)數(shù)初值MOVTL1,#06HSETBET1;允許T1中斷SETBEA;總中斷允許SETBTR1;啟動T1$:SJMP$;等待中斷ZCZ:CLRTR1;T1中斷服務(wù)子程序,停止T1MOVTL1,#06H;重置計(jì)數(shù)初值MOVTH1,#0F8HCLPP1.1;輸出取反SETBTR1;啟動T1RETI;中斷返回6.4.2方式1的應(yīng)用
方式1是16位的定時(shí)/計(jì)數(shù)器,初值的計(jì)算較方式0簡單,應(yīng)用較廣。
例6-2假設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,使用定時(shí)/計(jì)數(shù)器0工作在方式1,在P1.0端輸出周期為20ms的方波。(1)計(jì)算定時(shí)/計(jì)數(shù)器的初值
要輸出周期20ms的方波,只需在P1.0引腳每隔10ms交替輸出高、低電平即可,因此定時(shí)時(shí)間為10ms。機(jī)器周期=1μs。設(shè)計(jì)數(shù)初值為X,則有
(216-X)×1=10000,X=55536D=0D8F0H。
低8位送TL0,高八位送TH0,即(TL0)=0F0H,(TH0)=0D8H。
(2)對TMOD初始化
由題意,GATE=0,=0,M1M0=01,定時(shí)/計(jì)數(shù)器1不用,TMOD高4位置0,則(TMOD)=01H。(3)程序設(shè)計(jì)采用中斷方式實(shí)現(xiàn),參考程序如下:ORG0000H
LJMPMAINORG000BH;定時(shí)/計(jì)數(shù)器0的中斷服務(wù)程序入地址
LJMPZCZ
ORG0300HMAIN:MOVTMOD,#01H;對TMOD初始化
MOVTH0,#0D8H;設(shè)置計(jì)數(shù)初值MOVTL0,#0F0HSETBET0;允許T0中斷SETBEA;總中斷允許SETBTR0;啟動T0HERE:AJMPHERE;等待中斷ZCZ:CLRTR0;T0中斷服務(wù)子程序,停止T0MOVTL0,#0D8H;重置計(jì)數(shù)初值MOVTH0,#0F0HCLPP1.0;輸出取反SETBTR0;啟動T0RETI;中斷返回6.4.3方式2的應(yīng)用
方式2是可重裝初值的8位定時(shí)/計(jì)數(shù)器,這種方式可以免去用戶在計(jì)數(shù)溢出后用指令重裝初值的麻煩。
例6-3使用定時(shí)/計(jì)數(shù)器1工作在方式2下,對外部信號計(jì)數(shù),要求每計(jì)滿100個(gè)數(shù),進(jìn)行累加器加1操作。(1)計(jì)算定時(shí)/計(jì)數(shù)器的初值
設(shè)計(jì)數(shù)初值為X,則(28-X)=100,X=156=9CH。所以,(TL1)=9CH,(TH1)=9CH。(2)對TMOD初始化
由題意,外部信號由T1(P3.5)引腳輸入,每發(fā)生一次負(fù)跳變計(jì)數(shù)器加1,每100個(gè)脈沖,T1溢出產(chǎn)生中斷,在中斷服務(wù)器程序中進(jìn)行累加器加1操作。因此,有:GATE=0,由TR1控制定時(shí)/計(jì)數(shù)器1的運(yùn)行;=1,工作在計(jì)數(shù)模式;M1M0=10,設(shè)為方式2;定時(shí)/計(jì)數(shù)器0不用,低四位任意,但不能使T0工作在方式3,這里低4位全置0,因此(TMOD)=60H。(3)程序設(shè)計(jì)采用中斷方式實(shí)現(xiàn),參考程序如下:ORG0000H
LJMPMAINORG001BH;定時(shí)/計(jì)數(shù)器1的中斷服務(wù)程序入口地址
INCA
RETI
ORG0300HMAIN:MOVTMOD,#60H;對TMOD初始化
MOVTH0,#9CH;設(shè)置計(jì)數(shù)初值MOVTL0,#9CHSETBET1;允許T1中斷SETBEA;總中斷允許SETBTR1;啟動T1HERE:AJMPHERE;等待中斷END6.4.4方式3的應(yīng)用
例6-4假設(shè)系統(tǒng)晶振頻率為12MHz,定時(shí)/計(jì)數(shù)器1工作在方式2下,已作為波特率發(fā)生器使用?,F(xiàn)要求利用定時(shí)/計(jì)數(shù)器0(P3.4)增加一個(gè)外部中斷源,并控制從P1.0引腳輸出周期為200μs的方波。
分析:由于定時(shí)/計(jì)數(shù)器1用作波特率發(fā)生器,因此,T0應(yīng)工作在方式3。在方式3下,TL0初值設(shè)為0FFH,工作于計(jì)數(shù)模式,當(dāng)T0引腳收到負(fù)跳變信號時(shí),即產(chǎn)生中斷,TH0控制從P1.0引腳輸出周期200μs方波,即完成100μs定時(shí)。
(1)計(jì)數(shù)初值(TL0)=0FFH,機(jī)器周期=1μs,設(shè)TH0的初值為X,則(28-X)×1=100,X=156D=9CH,(TH0)=9CH。(2)TMOD初始化
定時(shí)/計(jì)數(shù)器1設(shè)為方式2,定時(shí)/計(jì)數(shù)器0設(shè)為方式3,TL0工作于計(jì)數(shù)模式,則(TMOD)=00100111B=27H(3)程序設(shè)計(jì)采用中斷方式實(shí)現(xiàn),參考程序如下:ORG0000HLJMPMAINORG000BH;TL0的中斷服務(wù)程序入口地址LJMPTL0INTORG001BH;TH0的中斷服務(wù)程序入口地址LJMPTH0INT
ORG0300HMAIN:MOVTMOD,#27H;對TMOD初始化
MOVTH0,#9CH;設(shè)置初值MOVTL0,#0FFHSETBET0;允許TL0中斷SETBET1;允許TH0中斷SETBEA;總中斷允許SETBTR0;啟動TL0HERE:AJMPHERE;等待中斷TH0INT:MOVTL0,#0FFH;重置TH0初值SETBTR1;啟動TH0RETI;中斷返回TH0INT:MOVTH0,#9CH;重置TH0初值CLPP1.0;輸出取反RETI
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州財(cái)經(jīng)職業(yè)學(xué)院《先進(jìn)制造訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽職業(yè)技術(shù)學(xué)院《戶外基礎(chǔ)技能》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025浙江省安全員A證考試題庫
- 白玉桃種植示范基地建設(shè)項(xiàng)目可行性研究報(bào)告-白玉桃市場需求持續(xù)擴(kuò)大
- 廣州中醫(yī)藥大學(xué)《商業(yè)銀行管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025江蘇省安全員B證考試題庫
- 2025黑龍江省建筑安全員知識題庫附答案
- 2025河南省建筑安全員考試題庫附答案
- 2025河北建筑安全員《A證》考試題庫
- 2025年遼寧省安全員《A證》考試題庫
- 社區(qū)矯正人員心理健康講座模板課件
- 中國和新加坡的英漢雙語教育政策比較研究
- 危險(xiǎn)品運(yùn)輸車輛租賃合同
- 英語完形填空閱讀理解40篇
- 裝配式鋼結(jié)構(gòu)工程計(jì)量與計(jì)價(jià)PPT完整全套教學(xué)課件
- 小說面面觀(譯文經(jīng)典)
- 普通地質(zhì)學(xué)教材
- 《并聯(lián)機(jī)器人運(yùn)動學(xué)》
- 竣工圖繪制規(guī)范及標(biāo)準(zhǔn)
- 中國聯(lián)通動環(huán)監(jiān)控系統(tǒng)C接口-0812
- GB/T 37433-2019低功率燃油燃燒器通用技術(shù)要求
評論
0/150
提交評論