第五章:MCS-51單片機(jī)定時與計數(shù)器_第1頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第2頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第3頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第4頁
第五章:MCS-51單片機(jī)定時與計數(shù)器_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1單片機(jī)原理與接口技術(shù)韋必忠桂林電子科技大學(xué)建筑與交通工程學(xué)院Email:wbz@MCS-51單片機(jī)定時器/計數(shù)器35.1定時器/計數(shù)器概述軟件定時:執(zhí)行一個循環(huán)程序進(jìn)行時間延遲。定時準(zhǔn)確,不需要外加硬件電路,但增加CPU開銷。硬件定時:通過硬件電路實(shí)現(xiàn)定時,不占用CPU時間,但使用不夠方便??删幊潭〞r器定時:通過對系統(tǒng)時鐘脈沖的計數(shù)實(shí)現(xiàn)定時。計數(shù)值通過程序設(shè)定,定時準(zhǔn)確,使用方便靈活。計數(shù)與定時:定時器/計數(shù)器實(shí)際上是加1計數(shù)器。當(dāng)它對外部事件進(jìn)行計數(shù)時,由于頻率不固定,此時稱之為計數(shù)器。當(dāng)它對內(nèi)部固定頻率的機(jī)器周期進(jìn)行計數(shù)時,稱之為定時器。計數(shù)器容量:8051單片機(jī)有兩個計數(shù)器,分別稱之為T0和T1,這兩個計數(shù)器分別是由兩個8位的RAM單元組成,即每個計數(shù)器都是16位的計數(shù)器,最大計數(shù)量是65536.定時/計數(shù)器的結(jié)構(gòu)和工作原理

(一)、定時/計數(shù)器的結(jié)構(gòu)定時/計數(shù)器的實(shí)質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標(biāo)志。

(二)、定時/計數(shù)器的工作原理計數(shù)次數(shù)和時間之間的確十分相關(guān);只要計數(shù)脈沖的間隔相等,則計數(shù)值就代表了時間的流逝;單片機(jī)的晶振經(jīng)過12分頻后獲得一個脈沖源,如果晶振頻率12MHZ,則每秒產(chǎn)生1M脈沖,一個脈沖就是1微秒,所以計數(shù)脈沖的間隔與晶振頻率有關(guān)。

(二)、定時/計數(shù)器的工作原理

加1計數(shù)器輸入的計數(shù)脈沖有兩個來源:(1)由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;(2)另一個是T0或T1引腳輸入的外部脈沖源。

每來一個脈沖計數(shù)器加1,當(dāng)加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。

可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。

設(shè)置為定時器模式時:加1計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)(1個機(jī)器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。所以:計數(shù)值N乘以機(jī)器周期Tcy就是定時時間t

。一旦振蕩周期確定,機(jī)器周期亦確定。設(shè)置為計數(shù)器模式時:外部事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機(jī)器周期的S5P2期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值在下一個機(jī)器周期的S3P1期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。最高計數(shù)頻率是晶振頻率的1/24。當(dāng)晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2s。

11定時器/計數(shù)器的定時和計數(shù)功能MCS-51系列單片機(jī)有兩個可編程定時器/計數(shù)器:T0、T1,16位寄存器,加法計數(shù)結(jié)構(gòu),地址為:T0(TH0,TL0):8CH,8AHT1(TH1,TL1):8DH,8BH特殊功能寄存器每個寄存器(T0,T1)都具有定時和計數(shù)功能12MCS-51定時/計數(shù)器核心是一個16位計數(shù)器(寄存器)。加1信號來源:外部計數(shù)脈沖、內(nèi)部時鐘脈沖。信號來源方式:由特殊功能寄存器TMOD設(shè)置位

確定。,計數(shù)方式(外部);,定時方式(內(nèi)部)。

80C51單片機(jī)定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD:用于設(shè)置其工作方式;TCON:用于控制其啟動和中斷申請。5.2MCS-51定時/計數(shù)器控制與狀態(tài)寄存器14工作方式控制寄存器TMOD(狀態(tài)寄存器)字節(jié)地址89H(不可以位尋址)15M1M0為操作方式選擇位

:選擇定時/計數(shù)器模式,計數(shù)模式;,定時模式GATE:選通控制GATE=0,選通,通過TRX啟動定時器。GATE=1,端口高電平,通過TRX啟動定時器。16啟停與中斷控制寄存器TCON(控制寄存器)字節(jié)地址88HTCON由定時/計數(shù)器和中斷系統(tǒng)合用。TR0:定時/計數(shù)器0啟停控制位由軟件控制定時/計數(shù)器0的啟動/停止。TR1:定時/計數(shù)器1啟停控制位由軟件控制定時/計數(shù)器1的啟動/停止。17TF0:定時/計數(shù)器0中斷請求標(biāo)志位當(dāng)定時/計數(shù)器0計數(shù)回0時,由內(nèi)部硬件置位TF0(TF0=1),請求中斷。中斷服務(wù)程序一旦執(zhí)行,硬件自動清0(TF0=0)。TF1:定時/計數(shù)器1中斷請求標(biāo)志位當(dāng)定時/計數(shù)器1計數(shù)回0時,由內(nèi)部硬件置位TF1(TF1=1),請求中斷。中斷服務(wù)程序一旦執(zhí)行,硬件自動清0(TF1=0)。18IE0:外部中斷0中斷請求標(biāo)志IT0=1,負(fù)跳變觸發(fā)中斷,硬件置IE0=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE0=0。IT0=0,低電平觸發(fā)中斷。硬件置IE0=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE0=0。IE1:外部中斷1中斷請求標(biāo)志IT1=1,負(fù)跳變觸發(fā)中斷,硬件置IE1=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE1=0。IT1=0,低電平觸發(fā)中斷。硬件置IE1=1,當(dāng)轉(zhuǎn)向中斷服務(wù)程序后,硬件自動清IE1=0。19IT0:外部中斷0觸發(fā)方式控制位軟件設(shè)置。IT0=1,外部中斷,發(fā)生10跳變,產(chǎn)生中斷請求,向主機(jī)申請中斷。IT0=0,則端口低電平觸發(fā)中斷。IT1:外部中斷1觸發(fā)方式控制位軟件設(shè)置。IT1=1,外部中斷,發(fā)生10跳變,產(chǎn)生中斷請求,向主機(jī)申請中斷。IT1=0,則端口低電平觸發(fā)中斷。以上后四項(xiàng)用于中斷系統(tǒng)。TCON可位尋址,其位地址為88H—8FH。205.3定時/計數(shù)器的工作方式(工作模式)設(shè)置(TMOD寄存器)選擇定時模式還是計數(shù)模式;對M1M0的設(shè)置,用于選擇T0、T1的四種操作(工作)方式。四種工作模式:即模式0、模式1、模式2、模式3。TL0、TH0,TL1、TH1兩對定時/計數(shù)器21(1)定時/計數(shù)方式0

(13位計數(shù)器)以定時/計數(shù)器0(T0)為例TH0全部8位,TL0低5位構(gòu)成13位定時/計數(shù)器。當(dāng)時(定時方式),開關(guān)接至振蕩12分頻輸出;當(dāng)時(計數(shù)方式),開關(guān)接通T0(P3.4)當(dāng)計數(shù)脈沖發(fā)生負(fù)跳變計數(shù)器加1。22GATE:看圖,選擇了定時或計數(shù)工作方式后,定時/計數(shù)脈沖不一定能到達(dá)計數(shù)器端,中間還有一個開關(guān),如果這個開關(guān)不合上,計數(shù)脈沖就沒法過去。那開關(guān)什么時候合上呢?有兩種情況:GATE=0時,GATE非后是1,進(jìn)入或門,或門總是輸出1(與或門的另一個輸入端INT0無關(guān)),在這種情況下,開關(guān)打開或者合上只取決于TR0,只要TR0=1,開關(guān)就合上,計數(shù)脈沖就得以暢通無阻,如TR0=0則開關(guān)打開,計數(shù)脈沖無法通過。因此,定時/計數(shù)器是否工作,只取決于TR0。GATE=1時,計數(shù)脈沖通路上的開關(guān)不僅要由TR0來控制,而且還要受到INT0引腳的控制,只有TR0=1,且INT0引腳也是高電平,開關(guān)才合上,計數(shù)脈沖才能通過。2324定時/計數(shù)方式1

(16位計數(shù)器)邏輯結(jié)構(gòu)和方式0完全一樣,只是TL是8位計數(shù)器。計數(shù)范圍1—65536如晶振6MHz,最小定時時間為:2s(機(jī)器周期)最大定時時間為:131ms(大約)。該模式對應(yīng)的是一個16位的定時器/計數(shù)器,如圖5-5所示。其結(jié)構(gòu)與操作幾乎與模式0完全相同,惟一的差別是:在模式1中,寄存器TH0和TL0是以全部16位參與操作。用于定時工作方式時,定時時間為t=(216-T0初值)×振蕩周期×12用于計數(shù)工作方式時,計數(shù)最大長度為216=65536個外部脈沖。圖5-5定時器/計數(shù)器T0工作模式1邏輯結(jié)構(gòu)框圖26定時/計數(shù)方式2

(自動再裝入8位計數(shù)器)THx,TLx相互獨(dú)立(x=0,1)。TLx作為8位計數(shù)器,THx是初值寄存器。TLx溢出后,置TFx申請中斷。THx初值重新裝入TLx。只需通過軟件設(shè)置一次,啟動后無限次定時/計數(shù)運(yùn)行。(自動進(jìn)行下一次)模式2把TL0(或TL1)設(shè)置成一個可以自動重裝載的8位定時器/計數(shù)器,如圖5-6所示。TL0計數(shù)溢出時,不僅使溢出中斷標(biāo)志位TF0置1,而且還自動把TH0中的內(nèi)容重新裝載到TL0中。這時,16位計數(shù)器被拆成兩個,TL0用作8位計數(shù)器,TH0用以保存初值。用于定時工作方式時,其定時時間(TF0溢出周期)為t=(28-TH0初值)×振蕩周期×12用于計數(shù)工作方式時,最大計數(shù)長度為28=256個外部脈沖。圖5-6定時器/計數(shù)器T0工作模式2邏輯結(jié)構(gòu)框圖28定時/計數(shù)方式3

(T0分成兩個8位計數(shù)器,T1無效)將T0分成兩個獨(dú)立的8位計數(shù)器。TL0組成完整的8位定時/計數(shù)器;既能定時,又能計數(shù)。TH0只能組成8位定時器(內(nèi)部脈沖)。只能定時。TL0占用T0全部控制信號及中斷請求標(biāo)志位(TR0、TF0等)TH0只能借用TR1和TF1。P3.5口(T1外部計數(shù)脈沖輸入口)不能占用。工作模式3對T0和T1大不相同。若將T0設(shè)置為模式3,TL0和TH0被分成為兩個相互獨(dú)立的8位計數(shù)器,如圖5-7所示。圖5-7定時器/計數(shù)器T0工作模式3邏輯結(jié)構(gòu)框圖305.4定時/計數(shù)器應(yīng)用基本步驟:工作方式控制字(TMOD)的設(shè)置;計數(shù)初值的計算并裝入THx、TLx;中斷允許位ETx、EA的設(shè)置,使主機(jī)開放中斷;啟/停位TRx的設(shè)置。31計數(shù)初值的確定在方式0下,當(dāng)為計數(shù)方式時,計數(shù)值范圍1—8192(213

)在方式1下,當(dāng)為計數(shù)方式時,計數(shù)值范圍1—65536(216

)在方式2下,當(dāng)為計數(shù)方式時,計數(shù)值范圍1—256(28

)32當(dāng)計數(shù)時,采用預(yù)置數(shù)的方法,比如我們需要計數(shù)100次,那就先放入65436,再來100個脈沖,就到65536了。定時時間:(2n–計數(shù)初值)*機(jī)器周期33在方式0下最小定時時間為:2s最大定時時間為:16384s(8192*2)在方式1下最小定時時間為:2s最大定時時間為:131ms(65536*2)如晶振周期6MHz,機(jī)器周期為2s。思路:需要采用軟件計數(shù)器的概念,先用定時/計數(shù)器做一個(比如50毫秒)的定時器,定時時間到了以后不要立即執(zhí)行相關(guān)操作(比如輸出),而是將軟件計數(shù)器中的值加1,如果軟件計數(shù)器計到了20,那定時時間就是20*50=1000毫秒了。34如何實(shí)現(xiàn)定時1S或者其它定時時間?35例題:生成周期為500s的等寬正方波。機(jī)器晶振6MHz。使用T1以方式0工作,由P1.0輸出500s機(jī)器周期:2s。定時時間250s。以250s為周期在P1.0端交替輸出高低電平。368067-4096=397113971-2048=1923

11923-1024=8991899-512=387

1387-256=1311131-128=3164

032016

08040二進(jìn)制表示:111111000001137程序設(shè)計(查詢方式):

MOVTMOD,#00H ;設(shè)置T1 MOVTH1,#0FCH ;計數(shù)初值

MOVTL1,#03H ;

MOVIE,#00H ;禁止中斷

SETBTR1 ;啟動定時LOOP:JBCTF1,LOOP1 ;查詢計數(shù)溢出

AJMPLOOPLOOP1:MOVTH1,#FCH ;重新設(shè)置計數(shù)初值

MOVTL1,#03H ;

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論