單片機應用技術項目化教程課件-項目4定時器控制報警燈的設計_第1頁
單片機應用技術項目化教程課件-項目4定時器控制報警燈的設計_第2頁
單片機應用技術項目化教程課件-項目4定時器控制報警燈的設計_第3頁
單片機應用技術項目化教程課件-項目4定時器控制報警燈的設計_第4頁
單片機應用技術項目化教程課件-項目4定時器控制報警燈的設計_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

*廣東松山職業技術學院課件制作組項目4定時器控制報警燈的設計【項目導入】在單片機的應用系統中,往往會遇到要求用定時器對某些控制系統進行設計,例如定時檢測系統,定時掃描系統等。51系列單片機中設置有2個16位定時/計數器,分別是T0和T1,要學會對定時器進行編程,必須掌握這兩個的定時器的工作方式和初值的計算。在此,我們通過一個項目設計,讓同學們掌握定時/計數器在單片機控制技術中的使用。*廣東松山職業技術學院課件制作組【項目目標】1.知識目標(1)掌握寄存器TMOD、TCON、TH0、TL0、TH1、TL1的功能;(2)掌握定時/計數器的工作方式;(3)掌握定時器的定時初值的計算;(2.能力目標(1)根據需要會選擇使用定時/計數器的工作方式;(2)會計算定時/計數器的初值;(3)能熟練使用定時/計數器對應用程序進行編程。3.態度目標(1)具有良好的思想政治素質與職業道德;(2)具有認真的學習態度和刻苦學習的精神;(3)養成良好的編程習慣。*廣東松山職業技術學院課件制作組4.1項目描述單片機的定時/計數器在工業控制與測量領域有著廣泛的應用,比如定時檢測、定時計數及定時掃描等。本項目通過設計一個由定時器控制的報警旋轉燈,使學生掌握定時/計數器的工作原理、工作方式和定時/計數器的初值計算。*廣東松山職業技術學院課件制作組4.2項目目的與要求本項目的目的就是設計一個由定時器控制的報警旋轉燈系統.。通過控制P2口的8個LED燈,要求它們旋轉閃爍紅燈并發出報警聲。項目在實施過程中需要解決的一下關鍵問題:(1)選擇哪種定時器,采用何種工作方式?如何計算定時初值?(2)延時程序的編寫;(3)如何裝入初值?。*廣東松山職業技術學院課件制作組4.3項目支撐知識連接一、定時/計數器的結構及工作原理1.定時/計數器組成框圖*廣東松山職業技術學院課件制作組

加1計數器(高8位、低8位)

TMOD,工作方式設置;

TCON,啟動、停止及設置溢出標志2.定時/計數器工作原理

計數器脈沖來源:振蕩器脈沖經過12分頻;T0或T1引腳的外部脈沖。計數器全1時,再輸入1個脈沖就回零,并發生溢出(TCON中TF0或TF1置1),發中斷請求。計數值:溢出時計數器值-計數初值。定時模式,對內部機器周期計數定時時間t=計數值NxTcy*廣東松山職業技術學院課件制作組1.工作方式寄存器TMODGATEC/TM1M0GATEC/TM1M0TMOD(89H)T0T1M1、M2控制的四種工作方式

00:13位計數器

01:16位計數器

10:可自動重裝的8位計數器

11:T0分為2個8位計數器;T1此時停止工作二、定時/計數器的相關寄存器C/T:計數器/定時器選擇位為“0”,選擇定時方式

為“1”,選擇計數方式,

*廣東松山職業技術學院課件制作組GATE:門控位為“0”,允許軟件控制位TR0或TR1啟動定時器為“1”,允許外部中斷0或1引腳為高電平,且由軟件使TR0(或TR1)置1時,才能啟動定時器工作。*廣東松山職業技術學院課件制作組2.控制寄存器TCON*廣東松山職業技術學院課件制作組初始化步驟如下:(1)確定工作方式,對TMOD賦值(2)預置定時或計數的初值,直接將初值寫入TH0、TL0或TH1、TL1(3)根據需要開啟定時/計數器中斷,直接對IE寄存器賦值。(4)啟動定時/計數器工作,將TR0或TR1置“1”。(5)當GATE=0時,直接由軟件置位啟動;當GATE=1時,除軟件置位外,還必須在外中斷引腳處加上相應的電平值才能啟動3定時/計數器的初始化*廣東松山職業技術學院課件制作組MCS-51單片機:定時/計數器T0有4種工作方式(方式0、1、2、3)T1有3種工作方式(方式0、1、2)。1.工作方式013位計數。由TL0的低5位和TH0的8位組成。TH0溢出時,置位TF0標志,向CPU發出中斷請求。(如下圖)4.3.2定時/計數器的工作方式*廣東松山職業技術學院課件制作組1.工作方式0為0,T0選擇為定時器模式,對CPU內部機器周期加1計數,其定時時間為:T=(213-T0初值)×機器周期。為1時,控制開關與引腳T0(P3.4)接通,計數器T0對來自外部引腳T0的輸入脈沖計數,當外部信號電平發生由1到0跳變時,計數器加1,T0成為外部事件計數器。*廣東松山職業技術學院課件制作組1.工作方式00或10

1

1

0或1*廣東松山職業技術學院課件制作組1.工作方式01

0

0或11

0

*廣東松山職業技術學院課件制作組2.工作方式1當M1M0為01時,定時/計數器工作在方式1,其邏輯電路結構和操作方法與方式0基本相同,它們的差別僅在于計數的位數不同(16位),如圖所示:*廣東松山職業技術學院課件制作組當TMOD的M1M0為10時,定時/計數器工作在方式2,其邏輯電路結構圖如圖所示。3.工作方式2*廣東松山職業技術學院課件制作組方式2為自動重裝初值的8位計數方式,僅用TL0計數,最大計數值為256。計滿溢出后一方面進位TF0,使溢出標志TF0=1;另一方面,使原來裝在TH0中的初值裝入TL0。優點:定時初值可自動恢復,TH0中存放初值;缺點:計數范圍小,只適用于需要重復定時,而定時范圍不大的應用場合。3.工作方式2*廣東松山職業技術學院課件制作組4.工作方式3T0分成為兩個獨立的8位計數器TL0和TH0

,T1處于方式3時停止計數。*廣東松山職業技術學院課件制作組4.3.3.4定時/計數器應用舉例初始化應完成的工作如下:(1)對TMOD賦值,以確定T0和T1的工作方式;(2)計算初值,并將其寫入TH0、TL0或TH1、TL1;(3)設置IE、IP來規定中斷的開放/禁止和優先級;(4)使TR0或TR1置位,啟動定時/計數器開始定時或計數。*廣東松山職業技術學院課件制作組一、方式0的應用【例4-1】利用定時器T0的方式0定時由P1.0輸出頻率為500Hz的方波,設單片機晶振頻率為12MHz。

分析:選用定時器/計數器T0作定時器,輸出為P1.0引腳,500Hz的方波可由間隔1ms的高低電平相間而形成,因而只要每隔1ms對P1.0取反一次即可得到這個方波。定時1ms的初值:

因為機器周期=12÷12MHz=1μs所以

T=-t/T機器=8192-1000/1=7192TH0=7192/32=0xe0TL0=7192%32=0x18

*廣東松山職業技術學院課件制作組

C程序清單如下:

#include<reg.51.h>//頭文件

main(){TMOD=0x00;//設T0為方式0TH0=0xe0;//設定1ms的定時初值

TL0=0x18;TR0=1;//啟動T0While(1){while(!TF0);//等待定時器溢出

TF0=0;//清除溢出標志

P1_0=!P1_0;//取反

TH0=0xe0;//重裝初值

TL0=0x18;}}*廣東松山職業技術學院課件制作組二方式1應用

方式

1與方式0基本相同,只是方式

1改用了

16位計數器。

要求定時周期較長時,13位計數器不夠用,可改用16位計數器

【例4-2】利用定時器0產生10Hz的方波,由P1.0口輸出,設單片機晶振頻率為12MHz。

分析過程:10HZ的方波,周期為100ms,定時時間為50ms,也就是每50ms電平就取反一次,12MHz的機器周期為1us,初值T0=-t/T=65536-50000/1=0x3cb0,則TH0=0x3C,TL0=0xb0。*廣東松山職業技術學院課件制作組#include<reg.51.h>//頭文件

main(){TMOD=0x01;//設T0為方式1TH0=0x3c;//設定1ms的定時初值

TL0=0xb0;//TR0=1;/啟動T0While(1){while(!TF0);/等待定時器溢出

TF0=0;//清除溢出標志

P1_0=!P1_0;//取反

TH0=0x3c;//重裝初值

TL0=0xb0;}}*廣東松山職業技術學院課件制作組3方式2應用方式2是定時/計數器自動重裝載的操作方式,在這種方式下,定時/計數器T0和T1的工作是相同的,它的工作過程與方式0、方式1基本相同,只不過在溢出的同時,將8位二進制初值自動重裝載,即在中斷服務子程序中,不需要編程送初值,這里不再舉例。定時/計數器T1工作在方式2時,可直接用作串行口波特率發生器。*廣東松山職業技術學院課件制作組

【例4-3】設計用定時器T0控制4個LED滾動閃爍,要求閃爍時間為200us,硬件電路如圖4-9所示。*廣東松山職業技術學院課件制作組分析過程:利用T0的方式2定時,根據要求時間延時為200us,則初值計算為-200=0x38,TMOD的低四位是針對T0進行設置的,由于T0工作在方式2作為定時使用,因此M1M0=10,C/=0,于是可得TMOD=0x02。*廣東松山職業技術學院課件制作組C51語言源程序為:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitB1=P0^0;sbitG1=P0^1;sbitR1=P0^2;sbitY1=P0^3;uinti,j,k;*廣東松山職業技術學院課件制作組voidmain(){i=j=k=0; P0=0xff; TMOD=0x02; //定時器0工作方式2 TH0=256-200; //200us定時

TL0=256-200; IE=0x82;//開中斷

TR0=1; //啟動定時器

while(1);}*廣東松山職業技術學院課件制作組//T0中斷函數voidLED_Flash_and_Scroll()interrupt1{ if(++k<35) return; //定時中斷若干次后執行閃爍

k=0; switch(i) { case0: B1=~B1;break; case1: G1=~G1;break; case2: R1=~R1;break; case3: Y1=~Y1;break; default:i=0; } if(++j<300)return; //每次閃爍持續一段時間

j=0; P0=0xff;//關閉顯示

i++; //切換到下一個LED}*廣東松山職業技術學院課件制作組定時/計數功能與中斷一樣,都是單片機的常用功能。兩者經常同時用在一起使用,因此在單片機的中斷、定時綜合應用實例的程序編制過程中,要注意以下幾點:1.選擇合適的中斷和定時/計數方式例如,外部中斷是采用電平觸發還是脈沖下降沿觸發;定時/計數是采用自動重裝方式還是每次定時結束后用軟件重裝。2.確定定時結束的判別方式,是用中斷還是查詢如果采用中斷,與其他中斷的優先級如何確定,是否會影響系統的功能3.正確初始化和合理分配控制功能四、中斷與定時/計數器的綜合應用

*廣東松山職業技術學院課件制作組【舉例】用計數器中斷實現100以內的按鍵計數:要求用T0計數器,中斷實現按鍵計數。*廣東松山職業技術學院課件制作組分析:由于計數寄存器初值為1,因此P3.4引腳的每次負跳變都會觸發T0中斷,實現計數值累加。計數器的清零用外部中斷0控制。電路圖如圖4-10所示。*廣東松山職業技術學院課件制作組4.4項目實施4.4.1硬件設計*廣東松山職業技術學院課件制作組4.4.2軟件設計*廣東松山職業技術學院課件制作組4.4.2軟件設計C51chengxu見書本*廣東松山職業技術學院課件制作組4.4.3仿真調試

一、使用KeilC51編譯源程序*廣東松山職業技術學院課件制作組二、使用Proteus系統仿真軟件調試*廣東松山職業技術學院課件制作組三、動手做名稱規格數量主要功能或用途單片機AT89C511控制核心晶振12MHz1晶振電路電

溫馨提示

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

評論

0/150

提交評論