單片機第5章-定時器控制LED—定時計數(shù)器原理及應(yīng)用課件_第1頁
單片機第5章-定時器控制LED—定時計數(shù)器原理及應(yīng)用課件_第2頁
單片機第5章-定時器控制LED—定時計數(shù)器原理及應(yīng)用課件_第3頁
單片機第5章-定時器控制LED—定時計數(shù)器原理及應(yīng)用課件_第4頁
單片機第5章-定時器控制LED—定時計數(shù)器原理及應(yīng)用課件_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第五章、定時器控制LED定時/計數(shù)器原理及應(yīng)用 50 你知道嗎 31 功能要求32 任務(wù)分析53 定時/計數(shù)器結(jié)構(gòu)及工作原理 54 定時/計數(shù)器的控制55 定時器控制廣告燈程序設(shè)計 在日常生活中,定時的應(yīng)用非常普及,如早上起床的鬧鈴、學(xué)校用的打鈴器、電視機的定時關(guān)機等。同樣的,計數(shù)器的應(yīng)用也非常廣泛,如選舉投票的計數(shù)、自動化生產(chǎn)線上產(chǎn)品個數(shù)數(shù)、球類比賽的電子計分牌等??梢赃@樣說,定時與計數(shù)的概念在我們的生活中隨處可見,同我們的工作與生活息息相關(guān)。非常幸運的是,在MCS-51單片機中就包含有兩個定時/計數(shù)器(T0、T1), 可以非常方便地實現(xiàn)定時與計數(shù)功能。在這一章中,我們將通過完成“定時器控制

2、LED”任務(wù)來學(xué)習(xí)MCS-51單片機定時器計數(shù)器的工作原理及其應(yīng)用方法 你知道嗎回目錄 51 功能要求 為了便于學(xué)習(xí),本項目與第三章廣告燈控制任務(wù)所要求功能一致,唯一區(qū)別是通過定時/計數(shù)器來實現(xiàn)定時,而非軟件延時方式來定時。 一基本要求利用定時/計數(shù)器定時,控制一個發(fā)光二極管LED定時閃爍。二發(fā)揮部分利用定時/計數(shù)器定時,控制8個發(fā)光二極管LED產(chǎn)生“跑馬燈”效果。52 任務(wù)分析要完成此任務(wù),主要需學(xué)習(xí)如下三方面知識:1)定時/計數(shù)器結(jié)構(gòu)及工作原理;2)單片機定時/計數(shù)器控制;3)單片機定時/計數(shù)器應(yīng)用程序設(shè)計。下面將針對這三方面知識來進行學(xué)習(xí)。 回目錄53 定時/計數(shù)器結(jié)構(gòu)及工作原理 MCS

3、51單片機內(nèi)部共有兩個16位的定時/計數(shù)器(T0、T1),它們都具有定時與計數(shù)兩個功能。 5.3.1 定時/計數(shù)器結(jié)構(gòu) 定時計數(shù)器的結(jié)構(gòu)如下圖所示。定時計數(shù)器的核心是兩個16位加1計數(shù)器T0、T1,每個16位計數(shù)器由兩個8位寄存器(高8位和低8位)組成 5.3.2 定時/計數(shù)器工作原理 當工作于定時器模式時,計數(shù)脈沖源來自機器周期信號。每來一個機器周期信號,計數(shù)器就加1,直到溢出為止。 當工作于計數(shù)器模式時,計數(shù)脈沖源來自T0(P3.4)或T1(P3.4)引腳輸入的外部脈沖信號。每輸入一個外部脈沖信號,計數(shù)器就加1,直到溢出為止。54 定時/計數(shù)器的控制 80C51單片機定時/計數(shù)器的控制主要

4、由兩個特殊功能寄存器來確定,其中TMOD控制定時/計數(shù)器的工作方式,TCON控制定時/計數(shù)器的啟動及設(shè)置溢出標志 5.4.1 工作方式寄存器TMOD C/C/位76543210TMODGATEC/TM1M0GATEC/TM1M0回目錄M1 MO:工作方式選擇位。定時/計數(shù)器有4種工作方式 C/T: 定時/計數(shù)方式選擇位。 C/T=0,為定時模式; C/T=1,為計數(shù)模式。 GATE:門控位。作一般定時/計數(shù)器用時,該位設(shè)置為0即可。 5.4.2 定時器控制寄存器TCON 位76543210TCONTF1TR1TF0TR0TR0:定時/計數(shù)器T0啟動控制位。TR0=1時,啟動T0開始工作;TR0

5、=0時,T0停止工作。 TR0由軟件置1或清0,這樣,通過軟件編程就可以控制定時/計數(shù)器的啟動與停止。TF0:定時/計數(shù)器T0溢出中斷請求標止位。當定時/計數(shù)器T0計數(shù)產(chǎn)生溢出時,由硬件自 動將TF0置1。 TR1:定時/計數(shù)器T1啟動控制位。其功能與TR0類似。TF0:定時/計數(shù)器T1溢出中斷請求標止位。其功能與TF0類似。5.4.3 定時/計數(shù)器的工作方式 80C51單片機定時/計數(shù)器T0有4種工作方式,而T1只有3種工作方式(無工作方式3)。 一、工作方式0 當M1M000時,定時/計數(shù)器工作于方式0,構(gòu)成13位定時/計數(shù)器(由TH0的8位和TL0的低5位組成)。之所以采用13位計數(shù)器,

6、是為了與單片機早期產(chǎn)品兼容。這種工作方式使用起來比較麻煩,在實際應(yīng)用中已基本不用。因此,在這里不作具體介紹。二、工作方式1當M1M001時,定時/計數(shù)器工作于方式1,構(gòu)成16位定時/計數(shù)器。 16位的計數(shù)器是由兩個8位寄存器TH0和TL0組成。TL0計數(shù)溢出時向TH0進位,TH0計數(shù)溢出時,則置位溢出標志TF0,向CPU發(fā)出中斷請求。 定時時間與計數(shù)初值有關(guān),二者間的關(guān)系為X = 216-N = 216-t/Tcy 由上述關(guān)系式可知,定時時間t與計數(shù)初值X、機器周期Tcy(或晶振頻率fosc)有關(guān)。在系統(tǒng)晶振頻率固定的情況下,計數(shù)初值X愈大,定時時間t就愈短;計數(shù)初值X愈小,定時時間t就愈長。

7、在計數(shù)初值X不變的情況下,機器周期Tcy愈大,定時時間t愈長;機器周期Tcy愈小,定時時間t就愈短。 當T0處于計數(shù)方式時,計數(shù)脈沖來自T0引腳(P3.2)。每來一個脈沖就對16位計數(shù)器進行加1計數(shù),當計數(shù)溢出時,則置位溢出標志TF0,向CPU發(fā)出中斷請求。其中計數(shù)次數(shù)N與計數(shù)初值X的關(guān)系為 N = 216 - X三、工作方式2當M1M010時,定時/計數(shù)器工作于方式2,構(gòu)成8位自動重裝初值的定時/計數(shù)器。 TH0為8位初值寄存器(用于保存8位計數(shù)初值),TL0為8位計數(shù)器。初始化時軟件編程將計數(shù)初值同時送到8位寄存器TH0和TL0中啟動計數(shù)器工作后,TL0開始加1計數(shù)。當TL0計數(shù)溢出時,由

8、硬件使TF0=1,向CPU發(fā)出中斷請求,并將TH0中的計數(shù)初值自動裝入TL0。使TL0又從初值開始重新計數(shù),不斷重復(fù),周而復(fù)始。 X= 28-N = 28-t/Tcy 定時時間與計數(shù)初值的關(guān)系為 四、工作方式3 當M1M011時,定時/計數(shù)器工作于方式3,定時/計數(shù)器T0設(shè)置為方式3時,TH0和TL0是兩個獨立的8位計數(shù)器。其中,TL0既可以作為定時器,也可以作為計數(shù)器 一般來說當系統(tǒng)需要由一個定時器(T1)產(chǎn)生串行通信波特率或者需要再增加一個額外8位定時器時,才將T0設(shè)置為工作方式3。 5.4.4 定時/計數(shù)器應(yīng)用的初始化 當單片機系統(tǒng)復(fù)位后,與定時/計數(shù)器有關(guān)的寄存器的值基本上均為0。因此

9、,在利用定時/計數(shù)器在進行定時或計數(shù)前,必須通過軟件編程對它進行初始化。定時/計數(shù)器初始化編程主要包括如下幾方面:1確定T0、T1的工作方式,給TMOD賦值;2計算計數(shù)初值,并將初值寫入計數(shù)寄存器TH0、TL0或TH1、TL1;3如允許T0、T1中斷,則須對定時/計數(shù)器有關(guān)的中斷控制位(包括ET0、ET1、 PT0、PT1、EA等)進行初始化;4啟動定時/計數(shù)器,即使TR0或TR1置位。 回目錄55 定時器控制廣告燈程序設(shè)計 一1個LED的單燈閃爍 假設(shè)讓LED燈D1進行單燈閃爍,閃爍的周期為0.2s(一周期內(nèi)D1亮與滅保持時間各0.1s),則P1.0輸出為高低電平交替出現(xiàn)的方波。根據(jù)項目的要

10、求,須利用定時/計數(shù)器進行定時,定時時間為0.1s。這里選用T0作定時器,工作于方式1,允許中斷。其程序設(shè)計流程圖如下圖所示 ORG 0000HLJMP STARTORG 000BH ; T0中斷入口地址LJMP TIME_INT0ORG 0100HSTART: MOV SP,#60H ;初始化堆棧指針,SP=60HMOV TMOD,#01H ;T0工作于方式1,定時器模式MOV TH0,#0FCH ;TH0=FCHMOV TL0,#18H ;TL0=18HSETB ET0;ET0=1,T0中斷允許CLR PT0;PT0=0,T0中斷為低優(yōu)先級SETB EA;EA=1,CPU開放中斷SETB

11、TR0;TR0=1,啟動T0 CLR P1.0 ;先將D1點亮LOOP: LJMP LOOP;跳回去循環(huán),等待定時中斷ORG 0800HTIME_INT0:;T0中斷服務(wù)程序 CPL P1.0 ;P1.0取反,D1改變顯示狀態(tài)MOV TH0,#0FCH ;重新裝入初值 TH0=FCHMOV TL0,#18H ;重新裝入初值 TL0=18H RETI;中斷返回程序清單如下: 二流水燈程序設(shè)計 假設(shè)讓8個LED每隔1秒就移位點亮一次。由于定時/計數(shù)器最大定時為65536個機器周期(工作于方式1),而實驗板上時鐘頻率為6MHz,機器周期Tcy=2us,這樣最大定時為655362=131.072ms。題目中要求定時為1s

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論