MCS單片機(jī)的定時(shí)器計(jì)數(shù)器_第1頁(yè)
MCS單片機(jī)的定時(shí)器計(jì)數(shù)器_第2頁(yè)
MCS單片機(jī)的定時(shí)器計(jì)數(shù)器_第3頁(yè)
MCS單片機(jī)的定時(shí)器計(jì)數(shù)器_第4頁(yè)
MCS單片機(jī)的定時(shí)器計(jì)數(shù)器_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

MCS單片機(jī)的定時(shí)器計(jì)數(shù)器演示文稿第1頁(yè),共42頁(yè)。實(shí)現(xiàn)定時(shí)常用的三種方法:軟件定時(shí):占用CPU時(shí)間,效率低。用555電路:不可編程。可編程芯片:功能強(qiáng),需要另外擴(kuò)展。單片機(jī)內(nèi)部有2個(gè)16位的定時(shí)/計(jì)數(shù)器:使用靈活,編程方便。--優(yōu)先選用第2頁(yè),共42頁(yè)。6.1定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)一.定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及工作原理MCS-51單片機(jī)內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,即定時(shí)器T0和定時(shí)器T1。每個(gè)定時(shí)器/計(jì)數(shù)器的基本部件是兩個(gè)8位的計(jì)數(shù)器(其中TH1、TL1是T1的計(jì)數(shù)器,TH0、TL0是T0的計(jì)數(shù)器)拼裝而成。它們是采用加“1”方式工作的。

兩個(gè)特殊功能寄存器(TMOD和TCON)用來(lái)對(duì)定時(shí)器/計(jì)數(shù)器的工作方式進(jìn)行選擇和控制。

8051單片機(jī)的定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)如下圖所示。第3頁(yè),共42頁(yè)。內(nèi)部總線工作方式工作方式TH1TL1TH0TL0TCONTMODT1T0微處理器8051單片機(jī)定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)示意圖

加1計(jì)數(shù)器(高8位、低8位)TMOD,工作方式設(shè)置;TCON,啟動(dòng)、停止及設(shè)置溢出標(biāo)志。

第4頁(yè),共42頁(yè)。定時(shí)功能----計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,其計(jì)數(shù)脈沖來(lái)源于晶振時(shí)鐘輸出信號(hào)的12分頻,即每個(gè)機(jī)器周期使寄存器的值加1。定時(shí)器可看做是對(duì)機(jī)器周期的計(jì)數(shù)器。所以,定時(shí)計(jì)數(shù)頻率是振蕩頻率的1/12。計(jì)數(shù)功能----計(jì)數(shù)脈沖來(lái)自相應(yīng)的外部輸入引腳,T0為P3.4,T1為P3.5。只要T0或T1的引腳上有一個(gè)1到0的負(fù)跳變,相應(yīng)的計(jì)數(shù)器就加1.在TMOD中,各有一個(gè)控制位(C/T),分別用于控制定時(shí)/計(jì)數(shù)器T0和T1工作在定時(shí)器方式還是計(jì)數(shù)器方式。第5頁(yè),共42頁(yè)。定時(shí)模式,對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)定時(shí)時(shí)間t=計(jì)數(shù)值NxTcy計(jì)數(shù)模式,對(duì)外部事件脈沖計(jì)數(shù)計(jì)數(shù)脈沖周期要大于2TcyT0和T1計(jì)數(shù)器都只能遞增計(jì)數(shù),當(dāng)16位計(jì)數(shù)器的計(jì)數(shù)值增加到0FFFFH時(shí),再輸入1個(gè)脈沖就會(huì)使計(jì)數(shù)器的值回零,并發(fā)生溢出信號(hào),置相應(yīng)的標(biāo)志位(TCON中TF0或TF1置1),向CPU發(fā)出中斷請(qǐng)求。設(shè)定計(jì)數(shù)次數(shù):計(jì)數(shù)器的計(jì)數(shù)量程-計(jì)數(shù)初值。第6頁(yè),共42頁(yè)。二.定時(shí)器/計(jì)數(shù)器的控制寄存器

與定時(shí)器/計(jì)數(shù)器有關(guān)的控制寄存器有:1.定時(shí)器控制寄存器TCON第7頁(yè),共42頁(yè)。TF1:定時(shí)器/計(jì)數(shù)器1(T1)的溢出中斷標(biāo)志位。TF0:定時(shí)器/計(jì)數(shù)器0(T0)的溢出中斷標(biāo)志位。TR1:定時(shí)器/計(jì)數(shù)器1的運(yùn)行控制位。通過(guò)置1或清0來(lái)啟動(dòng)或停止T1的計(jì)數(shù)。TR0:定時(shí)器/計(jì)數(shù)器0的運(yùn)行控制位。單片機(jī)復(fù)位后,TCON寄存器的所有位均為0.第8頁(yè),共42頁(yè)。2.工作方式控制寄存器TMOD

高4位用于定時(shí)器1,低4位用于定時(shí)器0①M(fèi)1,M0:工作模式選擇位。定時(shí)器/計(jì)數(shù)器四種工作模式選擇如表6-1所示。第9頁(yè),共42頁(yè)。第10頁(yè),共42頁(yè)。②C/T:定時(shí)器方式或計(jì)數(shù)器方式選擇位C/T=0時(shí),為定時(shí)器方式C/T=1時(shí),為計(jì)數(shù)器方式③GATE:門控位當(dāng)GATE=0時(shí),TCON寄存器中的TR0或TR1為1,則可立即啟動(dòng)定時(shí)器/計(jì)數(shù)器;當(dāng)GATE=1時(shí),不但要TR0或TR1為1,且單片機(jī)的INT0或INT1引腳的輸入要為高電平,才能啟動(dòng)定時(shí)器/計(jì)數(shù)器。第11頁(yè),共42頁(yè)。三.定時(shí)器/計(jì)數(shù)器0或1的工作方式1.方式0—13位方式。由TL0的低5位和TH0的8位組成。TL0的5位計(jì)數(shù)溢出后,TH0的計(jì)數(shù)加1,直到全部的13位計(jì)數(shù)值為全1后,下一個(gè)計(jì)數(shù)脈沖的到達(dá)將使TF0置位為1,向CPU發(fā)出中斷請(qǐng)求,同時(shí)把計(jì)數(shù)器變?yōu)槿?”。第12頁(yè),共42頁(yè)。其定時(shí)時(shí)間為:(213-初值)×機(jī)器周期第13頁(yè),共42頁(yè)。2.方式1—16位方式16位計(jì)數(shù),由TL0作為低8位、TH0作為高8位;16位計(jì)數(shù),由TL1作為低8位、TH1作為高8位。其定時(shí)時(shí)間為:(216-初值)×機(jī)器周期第14頁(yè),共42頁(yè)。3.方式2—8位自動(dòng)裝入時(shí)間常數(shù)方式TL0作為8位內(nèi)部計(jì)數(shù)器,TH0作為重裝初值寄存器,在TL0計(jì)數(shù)溢出置位TF0標(biāo)志的同時(shí),由硬件控制直接將重裝初值裝入TL0,開始新一輪的計(jì)數(shù),如此不斷循環(huán)。方式2和方式0、1最大的差別就是計(jì)數(shù)器的初值是由硬件控制自動(dòng)裝入的。方式0、1一旦計(jì)數(shù)溢出,就表示計(jì)數(shù)器已回0,如果要按照原先的初值重新計(jì)數(shù),就需要通過(guò)軟件重裝計(jì)數(shù)器初值。第15頁(yè),共42頁(yè)。方式2適合于用作較精確的脈沖信號(hào)發(fā)生器。第16頁(yè),共42頁(yè)。4.方式3—2個(gè)8位方式僅T0可以工作在方式3,T1處于方式3時(shí)停止計(jì)數(shù)。此時(shí),T0分成2個(gè)獨(dú)立的計(jì)數(shù)器—TL0和TH0,前者用原來(lái)T0的控制信號(hào)(TR0、TF0),后者用原來(lái)T1的控制信號(hào)(TR1、TF1)。(1)TH0由TR1啟動(dòng)/停止,溢出TF1(2)TL0由TR0啟動(dòng)/停止,溢出TF0(3)TH0只能定時(shí),TL0可以定時(shí)/計(jì)數(shù),且都是8位。第17頁(yè),共42頁(yè)。1.初始化步驟MCS-51內(nèi)部定時(shí)器/計(jì)數(shù)器是可編程的,其工作方式和工作過(guò)程均可由MCS-51通過(guò)程序?qū)λM(jìn)行設(shè)定和控制。因此,MCS-51在定時(shí)器/計(jì)數(shù)器工作前必須先對(duì)它進(jìn)行初始化。初始化步驟為:(1)根據(jù)題目要求先給定時(shí)器方式寄存器TMOD送一個(gè)方式控制字,以設(shè)定定時(shí)器/計(jì)數(shù)器的相應(yīng)工作方式。(2)根據(jù)實(shí)際需要給定時(shí)器/計(jì)數(shù)器選送定時(shí)器初值或計(jì)數(shù)器初值,以確定需要定時(shí)的時(shí)間和需要計(jì)數(shù)的初值。6.2定時(shí)器/計(jì)數(shù)器的初始化第18頁(yè),共42頁(yè)。(3)根據(jù)需要給中斷允許寄存器IE選送中斷控制字和給中斷優(yōu)先級(jí)寄存器IP選送中斷優(yōu)先級(jí)字,以開放相應(yīng)中斷和設(shè)定中斷優(yōu)先級(jí)。(若采用中斷方式)(4)給定時(shí)器控制寄存器TCON送命令字,以啟動(dòng)或禁止定時(shí)器/計(jì)數(shù)器的運(yùn)行。第19頁(yè),共42頁(yè)。

2.計(jì)數(shù)器初值的計(jì)算

定時(shí)器/計(jì)數(shù)器可用軟件隨時(shí)隨地啟動(dòng)和關(guān)閉,啟動(dòng)時(shí)它就自動(dòng)加1計(jì)數(shù),一直計(jì)到滿,即全為1,若不停止,計(jì)數(shù)值從全1變?yōu)槿?,同時(shí)將計(jì)數(shù)溢出位置1并向CPU發(fā)出定時(shí)器溢出中斷申請(qǐng)。對(duì)于各種不同的工作模式,最大的定時(shí)時(shí)間和計(jì)數(shù)數(shù)值不同。這里在使用中就會(huì)出現(xiàn)兩個(gè)問(wèn)題:

一是要產(chǎn)生比定時(shí)器最長(zhǎng)的定時(shí)時(shí)間還要短的時(shí)間和比計(jì)數(shù)器最多的計(jì)數(shù)次數(shù)還要少的計(jì)數(shù)次數(shù);

二是要產(chǎn)生比定時(shí)器最長(zhǎng)的定時(shí)時(shí)間還要長(zhǎng)的時(shí)間和比計(jì)數(shù)器最多的計(jì)數(shù)次數(shù)還要多的計(jì)數(shù)次數(shù)。第20頁(yè),共42頁(yè)。

如果計(jì)數(shù)初值設(shè)定為C,則計(jì)數(shù)器從初值C開始作加1計(jì)數(shù)到計(jì)滿為全1所需要的計(jì)數(shù)值設(shè)定為D,由此便可得到如下的計(jì)算通式:C=?M?-D①式中,M為計(jì)數(shù)器量程,該值和計(jì)數(shù)器工作模式有關(guān)。在模式0時(shí),M為213;在模式1時(shí),M為216;在模式2和模式3時(shí),M為28。第21頁(yè),共42頁(yè)。3.定時(shí)器初值的計(jì)算在定時(shí)器方式下,計(jì)數(shù)器由單片機(jī)脈沖經(jīng)12分頻后計(jì)數(shù)。因此,定時(shí)器定時(shí)時(shí)間T的計(jì)算公式為式中,Tc為定時(shí)器的初始常數(shù)值;T為計(jì)數(shù)器從初值Tc開始作加1計(jì)數(shù)到計(jì)滿為全1所需要的時(shí)間;M為計(jì)數(shù)器量程,和定時(shí)器的工作模式有關(guān);fosc是單片機(jī)晶體振蕩器的頻率。第22頁(yè),共42頁(yè)。在上式中,若設(shè)Tc?=?0,則定時(shí)器定時(shí)時(shí)間為最大(初值為0,計(jì)數(shù)從全0到全1,溢出后又為全0)。由于M的值和定時(shí)器工作模式有關(guān),因此不同工作模式下定時(shí)器的最大定時(shí)時(shí)間也不一樣。例如,若設(shè)單片機(jī)主脈沖晶體振蕩器頻率fosc為12?MHz,則最大定時(shí)時(shí)間為模式0時(shí):Tmax?=?213?×?1μs?=?8.192?ms模式1時(shí):Tmax?=?216×?1μs?=?65.536?ms模式2和3時(shí):Tmax?=?28×?1μs?=?0.256?ms第23頁(yè),共42頁(yè)。例6-5.用定時(shí)器1,方式2實(shí)現(xiàn)1s的延時(shí)。第24頁(yè),共42頁(yè)。第25頁(yè),共42頁(yè)。

根據(jù)13位定時(shí)器/計(jì)數(shù)器特性,先把低5位0CH送TL0,TL0的高三位置零,高8位F0H送至TH0??捎孟铝兄噶顚?shí)現(xiàn)定時(shí)器T0初始化。

MOVTMOD,#00H;T0工作于模式0,定時(shí)方式

MOVTL0,#0CH;低5位送TL0寄存器

MOVTH0,#0F0H;高8位送TH0寄存器第26頁(yè),共42頁(yè)。第27頁(yè),共42頁(yè)。第28頁(yè),共42頁(yè)。第29頁(yè),共42頁(yè)。初始化程序:MOVTMOD,#16H;T1定時(shí)模式1,T0計(jì)數(shù)模式2MOVTL0,#0FFH ;T0時(shí)間常數(shù)送TL0MOVTH0,#0FFH ;T0時(shí)間常數(shù)送TH0MOVTL1,#78H;T1時(shí)間常數(shù)(低8位)送TL1MOVTH1,#0ECH;T1時(shí)間常數(shù)(高8位)送TH1SETBTR0;置TR0為1,允許T0啟動(dòng)計(jì)數(shù)SETBTR1;置TR1為1,允許T1啟動(dòng)計(jì)第30頁(yè),共42頁(yè)。第31頁(yè),共42頁(yè)。第32頁(yè),共42頁(yè)。例6-5.用定時(shí)器1,方式2實(shí)現(xiàn)1s的延時(shí)(12MHZ)。解:因方式2是8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:256*1μs=256μs,為實(shí)現(xiàn)1s的延時(shí),可選擇定時(shí)時(shí)間為250μs,再循環(huán)4000次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為250,則定時(shí)器1的初值為:X=M-計(jì)數(shù)值=256-250=6=6H。采用定時(shí)器1,方式2工作,因此,TMOD=20H。第33頁(yè),共42頁(yè)。DELAY:MOVR7,#40 ;置25ms計(jì)數(shù)循環(huán)初值MOVR6,#100 ;置250μs計(jì)數(shù)循環(huán)初值MOVTMOD,#20H ;設(shè)定時(shí)器1為方式2MOVTH1,#06H ;置定時(shí)器初值MOVTL1,#06HSETBTR1 ;啟動(dòng)T1LP1:JBCTF1,LP2 ;查詢計(jì)數(shù)溢出SJMPLP1 ;無(wú)溢出則繼續(xù)計(jì)數(shù)LP2: DJNZR6,LP1 ;未到25ms繼續(xù)循環(huán)MOVR6,#100DJNZR7,LP1 ;未到1s繼續(xù)循環(huán)RET ;返回主程序

第34頁(yè),共42頁(yè)。6.3定時(shí)器/計(jì)數(shù)器的應(yīng)用

定時(shí)器/計(jì)數(shù)器是單片機(jī)的重要組成部分,其工作方式靈活,功能強(qiáng)大,配合中斷使用可減輕CPU的負(fù)擔(dān),減少外圍電路。本節(jié)通過(guò)實(shí)例說(shuō)明定時(shí)器/計(jì)數(shù)器的使用方法?!纠?-6】試通過(guò)定時(shí)器實(shí)現(xiàn)方波輸出。

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論