單片機仿真與制作(基于Proteus ISIS)課件 任務11.用定時器T0中斷控制LED燈閃爍_第1頁
單片機仿真與制作(基于Proteus ISIS)課件 任務11.用定時器T0中斷控制LED燈閃爍_第2頁
單片機仿真與制作(基于Proteus ISIS)課件 任務11.用定時器T0中斷控制LED燈閃爍_第3頁
單片機仿真與制作(基于Proteus ISIS)課件 任務11.用定時器T0中斷控制LED燈閃爍_第4頁
單片機仿真與制作(基于Proteus ISIS)課件 任務11.用定時器T0中斷控制LED燈閃爍_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

目錄【任務要求】【學習目標】【知識鏈接】1.定時/計數器中斷的概念2.定時/計數器工作方式寄存器TMOD3.定時/計數器控制寄存器TCON【任務實施】【任務小結】【復習思考】

任務要求制作一個單片機最小系統電路板要求用定時器T0中斷來控制LED燈閃爍學習目標了解單片機的定時器/計數器的結構;掌握定時器控制寄存器TCON、工作方式寄存器TMOD的設置方法;熟悉單片機定時器的編程方法。知識鏈接-1.定時/計數器中斷的概念

什么是計數?所謂計數是指對外部事件進行計數,外部事件的發生以輸入脈沖的方式表示,因此計數功能的實質就對外來脈沖進行計數,51單片機有兩個計數器T0和T1(52單片機還有T2),P3.4和P3.5分別是這兩個計數器的計數輸入端。外部輸入的脈沖在負跳變時有效,進行計數器加1。

什么是定時?定時器是通過計數器的計數來實現的,不過此時的計數脈沖來自單片機內部晶體振蕩器,它的脈沖頻率和周期恒定,因此計一定數量的脈沖的時間是確定的,所以定時器功能實質還是對單片機內部脈沖的計數。

知識鏈接-1.定時/計數器中斷的概念51單片機內部共有兩個16位可編程的定時器/計數器,分別是Timer0和Timer1(也就是T0和T1)。它們既有定時功能又有計數功能,通過設置與它們相關的特殊功能寄存器可以選擇啟用定時功能或計數功能。需要注意的是,這個定時器系統是單片機內部一個獨立的硬件部分,它與CPU和晶振通過內部某些控制線連接并相互作用,CPU一旦設置開啟定時功能后,定時器便在晶振的作用下自動開始計時,當定時器的計數器計滿后,會產生中斷,即通知CPU該如何處理。定時器/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。

知識鏈接-1.定時/計數器中斷的概念定時器/計數器的應用可以用中斷的方式進行,當定時器/計數器達到定時時間/計數設定值時出現中斷,這時CPU暫停正在執行的程序1,調入定時/計數中斷預先設定的另一個程序2,執行完成設定的程序2后,再返回執行暫停的程序1。就像是生活中:你一開始在看書,到11點鐘鬧鐘響了(提醒你去煮飯),你暫停看書先去煮飯,煮上飯后,再接著去看書。

知識鏈接-2.定時器/計數器工作方式寄存器TMODTMOD是定時器/計數器的工作方式寄存器

位號TMOD.7TMOD.6TMOD.5TMOD.4TMOD.3TMOD.2TMOD.1TMOD.0符號GATEC/TM1M0GATEC/TM1M0

GATE:門控位GATE=1,定時/計數器的運行受外部引腳輸入電平的控制,即INT0控制T0運行,INT1控制T1運行。GATE=0,定時/計數器的運行不受外部引腳輸入電平的控制。

C/T:計數器模式和定時器模式選擇位C/T=1,選擇計數器模式,計數器對外部輸入引腳T0(P3.4)或T1(P3.5)的外部脈沖計數。C/T=0,選擇定時器模式。

M1M0:工作方式選擇位M1M0工作方式位數計數范圍功能說明00Mode013位0~819101Mode116位0~6553510Mode28位0~255具有自動加載功能11Mode38位0~255T0分成兩個8位計數器,T1停止計數知識鏈接-2.定時器/計數器工作方式寄存器TMODMode0邏輯框圖

Mode0是13位計數器,其最大計數為二進制:1111111111111,即十進制8192,也就是說,每次計數到8192都會產生溢出,置位TF0。知識鏈接-2.定時器/計數器工作方式寄存器TMODMode0定時時間的計算公式:t=(8192-x)*(12÷晶振頻率)t為定時的時間,單位為:usx為計數器的計數初值晶振頻率的單位為:MHz

知識鏈接-2.定時器/計數器工作方式寄存器TMODMode0定時時間的計算公式:t=(8192-x)*(12÷晶振頻率)現在來計算定時2ms應該如何計算,由于實驗板的晶振為12MHz,需要定時2ms也就是2000us,然后我們把其參數代入公式:2000=(8192-x)*(12÷12)求得:x=6192,化成十六進制,x=0x18CCTH0和TL0的初值為如下:TH0:00011000TL0:

00001100(注意,TL0只用了低5位,高3位沒有用到填入0)具體指令如下:

TH0=0x18;//也可寫為:“TH0=(8192-2000)/256;”設置T0定時初值高5位TL0=0x0c;//也可寫為:“TL0=(8192-2000)%256;”設置T0定時初值低8位知識鏈接-2.定時器/計數器工作方式寄存器TMODMode1邏輯框圖

Mode1與Mode0的操作是完全相同的,只是Mode1是16位計數器,而Mode0是13位計數器。Mode1定時時間的計算公式:

t=(65536-x)*(12÷晶振頻率)知識鏈接-2.定時器/計數器工作方式寄存器TMODMode2邏輯框圖

因為Mode2只有8位數結構,所以計數范圍十分有限。Mode2定時時間的計算公式:

t=(256-x)*(12÷晶振頻率)知識鏈接-2.定時器/計數器工作方式寄存器TMODMode3邏輯框圖

知識鏈接-2.定時器/計數器工作方式寄存器TMOD

在Mode3下它被拆分為兩個獨立的計數器TL0與TH0。上面是拆分出來的8位定時/計數器,其使用跟前面介紹的幾種工作方式是完全相同的。Mode3定時時間的計算公式:

t=(256-x)*(12÷晶振頻率)知識鏈接-3.定時器/計數器控制寄存器TCON

TF0(TF1)溢出中斷標志位。當片內定時器/計數器T0(定時器/計數器T1)計數溢出的時候,由單片機自動置1,而當進入了中斷服務程序之后再由單片機自動清0。TR0(TR1)啟動位。TR0(TR1)=1時,啟動TR0(TR1)TR0(TR1)=0時,關閉TR0(TR1)IE0(IE1)和IT0(IT1)與外部中斷相關,在前述任務9中已經有詳述。TCON是控制寄存器位號TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0符號TF1TR1TF0TR0IE1IT1IE0IT0與定時器相關與外部中斷相關知識鏈接-3.定時器/計數器控制寄存器TCON

定時器/計數器的中斷子程序第一行的格式為:例如,要定義一個Timer1的中斷子程序,其名稱是“Timer1”,則該中斷子程序應聲明為:void

中斷子程序名稱(void)interrupt

中斷編號

using

寄存器組voidTimer1(void)interrupt

3;任務實施1)準備元器件序號種類標號參數序號種類標號參數1電阻R1-R8220*85電容C310uF2電阻R910k6單片機U1AT89C513電容C130pF7發光二極管D1-D8LED紅*84電容C230pF8晶振X111.0592M任務實施2)搭建硬件電路仿真電路圖與配套實驗板對應的按鍵電路相同。該電路圖可用于仿真和手工制作,前述任務已經將本次任務的電路制作完畢,本次任務無需另外再制作。任務實施3)程序設計主程序只需要完成定時器T0的初始化即可,完成初始化之后就可原地等待,不需要任何其他的動作。初始化的動作為:先設定好TCON、TMOD、IE寄存器,然后計算出定時計數初值并賦給TH0和TL0。若需要定時250ms,可以分成單次定時50ms,共定時5次即可實現,因此可計算出定時初值為TH0=(65536-50000)/256,TL0=(65536-50000)%256。在定時器中斷子程序里,需要完成LED取反的動作,同時為確保定時時間為50ms,每次定時還需要重新設置定時初值。任務實施3)程序設計用定時器T0中斷控制LED燈閃爍程序流程任務實施3)程序設計用定時器T0中斷控制LED燈閃爍主程序清單main() //主程序開始{IE=0x82; //啟用T0中斷TMOD=0x01; //設定T0為mode1TH0=TH_M1; //設置T0定時初值高8位TL0=TL_M1; //設置T0定時初值低8位TR0=1; //啟動T0LED=0xf0; //LED初值=11110000,右4燈亮while(1); //無窮循環,程序停滯} //主程序結束任務實施4)使用Proteus仿真將“任務11.hex”加載(相同于實際單片機程序的下載)到仿真電路圖的單片機中,在仿真中,我們將看到8個LED在不斷全燈閃爍,閃爍的頻率為2Hz。詳細仿真演示可直接打開“任務11.用定時器T0中斷控制led燈閃爍.DSN”任務實施5)使用配套實驗板調試所編寫的程序將“任務11.hex”程序下載到單片機中,給實驗板上電后,將看到與仿真中一樣的現象。任務11詳細的演示錄像見隨書光盤中的視頻文件“\演示錄像\任務11.用定時

溫馨提示

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

評論

0/150

提交評論