第六講-定時器_第1頁
第六講-定時器_第2頁
第六講-定時器_第3頁
第六講-定時器_第4頁
第六講-定時器_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學1第六講-定時器軟件編程例:編制一個延時2mS的子程序。

D2MS:MOVR7,#2D2MS0:MOVR6,#250DJNZR6,$DJNZR7,D2MS0RET例:統(tǒng)計開關(guān)按動次數(shù),并存于30H單元。

MOV30H,#0UP:JBP1.0,$JNBP1.0,$INC30HSJMPUP第1頁/共18頁可編程定時/計數(shù)器

有的控制系統(tǒng)是按時間間隔來進行控制的,如定時的溫度檢測等。雖然可以利用延遲程序來取得定時的效果,但這會降低CPU的工作效率。如果能用一個可編程的實時時鐘,以實現(xiàn)定時或延時控制,則CPU不必通過等待來實現(xiàn)延時,就可以提高CPU的效率。另外也有些控制是按計數(shù)的結(jié)果來進行的,因此在微機控制系統(tǒng)中常使用可編程的硬件定時/計數(shù)器?,F(xiàn)在有很多專門用作定時/計數(shù)器的接口芯片。單片機內(nèi)帶有硬件定時/計數(shù)器可以簡化系統(tǒng)設(shè)計。不論是獨立的定時器芯片還是單片機內(nèi)的定時器,都有以下特點:1.定時/計數(shù)器可以有多種工作方式,可以是計數(shù)方式也可以是定時方式等等。2.計數(shù)器模值是可變的,當然計數(shù)的最大值是有一定限制的,這取決于計數(shù)器的位數(shù)。計數(shù)的最大值也就限制了定時的最大值。3.可以按照規(guī)定的定時或計數(shù)值,當定時的時間到或者計數(shù)終止時,發(fā)出中斷申請,以便實現(xiàn)定時或計數(shù)控制。除了上述共同特點外,各種定時器還會有各自的特點,各自的工作方式和控制方式。第2頁/共18頁

5.2MCS51單片機內(nèi)部的定時/計數(shù)器

5.2.1定時/計數(shù)器結(jié)構(gòu)5.2.2定時/計數(shù)器工作方式5.2.3定時/計數(shù)器應(yīng)用第3頁/共18頁

5.2.1定時/計數(shù)器結(jié)構(gòu)

MCS51單片機內(nèi)有2個獨立的16位的可編程定時/計數(shù)器T0和T1。它們的結(jié)構(gòu)相似。T0的結(jié)構(gòu)如圖所示:振蕩器÷12C/T=0C/T=1&+加1計數(shù)器TF0合/斷T0TR0GATE0INT0TCONTMODTH0TL0TH1TL1第4頁/共18頁

TMOD:89H只能按字節(jié)操作。振蕩器÷12C/T=0C/T=1&+加1計數(shù)器TF0合/斷T0TR0GATE0INT0GATE1C/T:用來確定To(T1)是工作在計數(shù)方式還是工作在定時方式。C/T=0為定時方式,C/T=1為計數(shù)方式。即對外部引腳的外部輸入脈沖計數(shù)。外部引腳上輸入的每一個脈沖的負跳變使計數(shù)值加1,由于外輸入脈沖的每個高、低電平持續(xù)時間各應(yīng)大于一個機器周期,因此最小的計數(shù)周期為兩個機器周期。例如,若單片機晶振頻率為12MHZ,則外部計數(shù)脈沖的最高頻率只能為500KHZ。M1和M2:兩位用來確定To(T1)的具體工作模式。M1、M2的四種組合剛好與四種工作模式對應(yīng),分別是方式0、方式1、方式2、方式3。GATE:一般稱為門控標志。它對定時/數(shù)器的啟動起著控制作用。當GATE=1時,定時計數(shù)器的啟動除了受TR控制外,還受INT引腳的控制。當TR=0且INT引腳上出現(xiàn)高電平時才能啟動定時計數(shù)器。TMODC/T1M11M10GATE1C/T1M11M10第5頁/共18頁

TCON:88H可以按字節(jié)操作,也可以按位操作。振蕩器÷12C/T=0C/T=1&+加1計數(shù)器TF0合/斷T0TR0GATE0INT0TCONTF1TR1TF0TR0IE1IT1IE0IT0TF0:

T0溢出中斷標志位。當T0計數(shù)溢出時,TF0=1。在允許中斷的情況下,CPU響應(yīng)T0中斷,轉(zhuǎn)向T0中斷服務(wù)程序,此時由硬件自動將TF0清0。該標志位可由軟件查詢,也可用軟件清0或置1。TR0:為T0啟動控制位。當TR0=1時,啟動T0;TR0=0時,關(guān)閉T0。該位由軟件進行設(shè)置。TF0:

T0溢出中斷標志位。當T0計數(shù)溢出時,TF0=1。在允許中斷的情況下,CPU響應(yīng)T0中斷,轉(zhuǎn)向T0中斷服務(wù)程序,此時由硬件自動將TF0清0。該標志位可由軟件查詢,也可用軟件清0或置1。TR0:為T0啟動控制位。當TR0=1時,啟動T0;TR0=0時,關(guān)閉T0。該位由軟件進行設(shè)置。第6頁/共18頁振蕩器÷12C/T=0C/T=1&+加1計數(shù)器TF0合/斷T0TR0GATE0INT0

MCS-51單片機內(nèi)部有兩個16位的定時/計數(shù)器T0和T1。每個定時/計數(shù)器占用兩個特殊功能寄存器:

T0由TH0和TL0兩個8位計數(shù)器組成,字節(jié)地址分別是8CH和8AH。

T1由TH1和TL1兩個8位計數(shù)器組成,字節(jié)地址分別是8DH和8BH。用于存放定時或計數(shù)的初值。當計數(shù)器工作時,其值隨計數(shù)脈沖做加1變化。計數(shù)寄存器TH0TL0第7頁/共18頁由于T0由TL0(低8位)和TH0(高8位)組成;T1由TH和THl組成。所以T0、T1都是16位計數(shù)器。但是若將它們設(shè)置成不同的工作方式,其計數(shù)長度(最大值)和計數(shù)方式都可變化。內(nèi)部定時/計數(shù)器一共有四種工作方式,由TMOD的相關(guān)位設(shè)置。

5.2.2定時/計數(shù)器的工作方式GATE1C/T1M11M10GATE1C/T1M11M10M1和M2:兩位用來確定To(T1)的具體工作模式。M1、M2的四種組合剛好與四種工作模式對應(yīng)。定時/計數(shù)器工作模式如下:M1M0模式說明00方式013位定時/計數(shù)器(TH高8位加上TL中的低5位)01方式116位定時/計數(shù)器10方式2自動重裝初值的8位定時/計數(shù)器11方式3模式3只針對T0,T0分成兩個獨立的8位定時/計數(shù)器;T1無模式3方式0方式1方式2方式3第8頁/共18頁振蕩器÷12C/T=0C/T=1&+TF0合/斷T0TR0GATE0INT0在方式0下,T0構(gòu)成一個13位的計數(shù)器,由TH0的8位和TL0的低5位組成,TL0的高3位未用,滿計數(shù)值為213。

T0啟動后立即加1計數(shù),當TL0的低5位計數(shù)溢出時向TH0進位,TH0計數(shù)溢出則對相應(yīng)的溢出標志位TF0置位,以此作為定時器溢出中斷標志。當單片機進入中斷服務(wù)程序時,由內(nèi)部硬件自動清除該標志。TH0D5方式0×××D4D3D2D1D0TL0當選擇了定時或計數(shù)工作方式后,定時/計數(shù)脈沖卻不一定能到達計數(shù)器輸入端,只有當控制開關(guān)合上時,計數(shù)脈沖才能到達計數(shù)器輸入端,開始加1計數(shù)??刂崎_關(guān)閉合的條件如下:①GATE=0時,開關(guān)的打開、合上取決于TR0,只要TR0是1,開關(guān)就合上,計數(shù)脈沖得以暢通無阻,而如果TR0等于0則開關(guān)打開,計數(shù)脈沖無法通過,因此定時/計數(shù)是否工作,只取決于TR0。②GATE=1時,控制開關(guān)不僅要由TR0來控制,而且還要受到引腳的控制,只有TR0為1,且INT0引腳也是高電平,開關(guān)才合上,計數(shù)脈沖才得以通過。計數(shù)器第9頁/共18頁振蕩器÷12C/T=0C/T=1&+TF0合/斷T0TR0GATE0INT0

在方式1下,定時/計數(shù)器T0和T1的方式1都是相同的。以下僅以T0為例。T0構(gòu)成一個16位的計數(shù)器,由TH0的8位和TL0的8位組成,滿計數(shù)值為216。

T0啟動后立即加1計數(shù),當TL0計數(shù)溢出時向TH0進位,TH0計數(shù)溢出則對相應(yīng)的溢出標志位TF0置位,以此作為定時器溢出中斷標志。當單片機進入中斷服務(wù)程序時,由內(nèi)部硬件自動清除該標志。TH0TL0方式1計數(shù)器第10頁/共18頁振蕩器÷12C/T=0C/T=1&+TF0合/斷T0TR0GATE0INT0

在方式2下,定時/計數(shù)器T0和T1的方式1都是相同的。以下僅以T0為例。TH0和TL0被當作兩個8位計數(shù)器,計數(shù)過程中,TH0寄存8位初值并保持不變,由TL0進行8位計數(shù)。當?shù)?位計數(shù)溢出時,除了可產(chǎn)生中斷申請外,還將TH0中保存的內(nèi)容向TL0重新裝人,以便于重新計數(shù),而TH0中的初值仍然保留,以便下次再行對TL0進行重裝。方式2對于連續(xù)計數(shù)比較有利。這時不需要在溢出后用軟件重新裝入計數(shù)初值,而是可以自動裝入,但此時計數(shù)的長度將受到很大的限制,只有28=256次。TH0TL0方式2計數(shù)器第11頁/共18頁振蕩器÷12C/T=0C/T=1&+TF0合/斷T0TR0GATE0INT0方式3只適用于定時/計數(shù)器T0。這種工作方式下,定時/計數(shù)器T0被拆成2個獨立的定時/計數(shù)器來用。

TL0方式3計數(shù)器振蕩器÷12TF1TH0計數(shù)器TR1合/斷在方式3下,T0和T1的工作有很大的不同。⑴若把T1置于方式3,則Tl停止計數(shù),定時器T1保持其內(nèi)容不變。所以,一般不會把T1置于方式3。⑵若把T0置于方式3,則16位計數(shù)器拆開為兩個獨立工作的8位計數(shù)器TL0和TH0。但這兩個8位計數(shù)器的工作是有差別的。首先是工作方式的不同:①對TL0來說它既可以按計數(shù)方式工作,也可以按定時方式工作,②而TH0則只能按定時方式工作。另外是控制方式的不同。一般情況下,當定時/計數(shù)器T0處于工作方式3時,定時/計數(shù)器T1可工作為方式0、1、2,但由于此時其已沒有控制通斷和溢出中斷的功能,T1只能作為串行口的波特率發(fā)生器使用,或不需要中斷的場合。第12頁/共18頁

MCS-51的定時/計數(shù)器是可編程的,因此,在進行定時或計數(shù)之前也要用對其進行初始化。初始化一般應(yīng)包括以下幾個步驟:1、對TMOD寄存器賦值,以確定定時器的工作方式。2.置定時/計數(shù)器初值,直接將初值寫入寄存器的TH0,TL0或TH1,TLl。3.根據(jù)需要,對寄存器IE置初值,開放定時器中斷。4.對TCON寄存器中的TRl或TR0置位,啟動定時/計數(shù)器。啟動以后,計數(shù)器即按規(guī)定的工作方式和初值進行計數(shù)或開始定時。5.2.3定時/計數(shù)器的應(yīng)用例1例2例3第13頁/共18頁定時/計數(shù)器初值在初始化過程中,要置入定時值或計數(shù)值的初值,這時要作一些計算。方法如下:設(shè)計數(shù)器的最大值為M(在不同的工作方式中,M可以為213,216或28),則置入的初值X可這樣來計算:

計數(shù)方式時:X=M—計數(shù)模值

定時方式時:(M—X)·T=定時值,所以X=M—定時值/T。其中T為計數(shù)周期,它是單片機時鐘周期的12倍。當時鐘周期為1/12MHZ時,計數(shù)周期為1us。在這種情況下,若定時器工作在方式0,則最大定時值為213·X·1/12MHZs=8.192ms;若工作在方式1,則最大定時值為216·X·1/12MHZs=65.536ms例若單片機的頻率為12MHz,請計算2ms所需要的定時器初值。解:計數(shù)脈沖個數(shù)為2/0.001=2000若方式0,則計數(shù)初值為:213-2000=6192=1830HTH0=18H,TL0=30H若方式1,則計數(shù)初值為:216-2000=63536=F830HTH0=F8H,TL0=30H第14頁/共18頁方法1:用延時程序?qū)崿F(xiàn)1mS的延時。

UP:SETBP1.0LCALLD2MSCLRP1.0LCALLD2MSSJMPUP方法2:用T0定時2mS,查詢TF0①確定工作方式方式0②計算初值E018H③編程

MOVTMOD,#00HSETBTR0LOOP:MOVTH0,#0E0HMOVTL0,#18HJNBTF0,$CPLP1.0

CLRTF0SJMPLOOP例1使P1.0輸出一個周期為2mS的方波。方法3:用T0定時2mS,中斷。

ORG0000HLJMPMAINORG000BHLJMPAT0MAIN:MOVTMOD,#00HMOVTH0,#0E0HMOVTL0,#18HSETBEASETBET0SETBTR0SJMP$AT0:MOVTMOD,#00HMOVTH0,#0E0HCPLP1.0RETI第15頁/共18頁欲產(chǎn)生周期為2秒的方波,定時器T0必須能定時1秒,這個值已經(jīng)超過了定時器的最大定時時間。為此,我們只有采用定時器定時和軟件計數(shù)相結(jié)合的方法才能解決問題。例2使P1.1輸出一個周期為2S的方波。

ORG0000HLJMPMAINORG000BHLJMPAT0MAIN:MOVTMOD,#01HMOVTH0,#0B1HMOVTL0,#0E0HMOVIE,#82HSETBTR0MOVR7,#50SJMP$

AT0:MOVTMOD,#00HMOVTH0,#0E0HDJNZR7,AT1CPLP1.0MOVR7,#50AT1:RETI例如:我們可以在主程序中設(shè)定一個初值為20的軟件計數(shù)器和使T0定時50ms。這樣,每當T0定時到50ms時CPU就響應(yīng)它的溢出中斷請求,從而進入它的中斷服務(wù)程序。在中斷服務(wù)程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為零。若為零,則說明1S時間到,完成所需操作后返回主程序;若不為零,則說明1S時間未到,不進行任何操作,直接返回主程序。第16頁/共18頁

ORG0000HAJMPMAINORG000BHAJMPTIMEORG001BHAJMPDISP

MAIN:

MOVIE,#8AHMOVTMOD,#11HMOVSP,#70HMOVR3,#0MOVR4,#0MOVR5,#0MOVR6,#0MOVTL1,#30HMOVTH1,#0F8HMOVTL0,#0B0HMOVTH0,#3CHMOVR7,#20SETBTR1SETBTR0MOVR0,#0SJMP$例3分秒表TIME:

MOVTL0,#0B0HMOVTH0,#3CHDJNZR7,TIMEFMOVR7,#20INCR3CJNER3,#0AH,TIMEFMOV

溫馨提示

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

評論

0/150

提交評論