綜合電子設計與實踐-趙云偉課件例5:小燈1S時間閃爍學習資料_第1頁
綜合電子設計與實踐-趙云偉課件例5:小燈1S時間閃爍學習資料_第2頁
綜合電子設計與實踐-趙云偉課件例5:小燈1S時間閃爍學習資料_第3頁
綜合電子設計與實踐-趙云偉課件例5:小燈1S時間閃爍學習資料_第4頁
綜合電子設計與實踐-趙云偉課件例5:小燈1S時間閃爍學習資料_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

例5:小燈以1S時間間隔閃爍理論知識介紹:一、單片機工作的基本時序1、時鐘周期:也即振蕩周期,為時序中的最小單位,是指為單片機提供時鐘脈沖信號的振蕩源的周期。

時鐘周期=1/fosc=1/11059200s2、機器周期:CPU完成一個操作的最短時間,普通51單片機一個機器周期是12個時鐘周期。

機器周期=12*時鐘周期=12/fosc=12/11059200s3、指令周期:CPU完成一個操作所需的全部時間,每條指令執行時間都是有一個或幾個機器周期組成。二、定時器\計數器定時器\計數器是單片機內部的同一模塊,通過配置SFR,可以實現兩種不同功能,現介紹定時器功能。與16位定時器/計數器T0、T1有關的特殊功能寄存器有以下幾個:TH0、TL0、TH1、TL1、TMOD、TCON。

TH0、TL0分別為16位定時計數器T0的高8位和低8位,TH1、TL1為分別為16位定時計數器T1的高8位和低8位,TCON為T0、T1的狀態和控制寄存器,TMOD為T0、T1的方式寄存器。通過對TH0、TL0、TH1、TL1的初始化編程來設置T0、T1的初值,通過對TCON和TMOD的編程來選擇T0、T1的工作方式和控制T0、T1的運行。從某一初始值開始,經過確定的時間后溢出,這個過程就是定時器的含義。位D7D6D5D4D3D2D1D0符號TF1TR1TF0TR0IE1IT1IE0IT01、控制寄存器TCON

特殊功能寄存器TCON的高4位用于控制定時器T0、T1的啟動和停止計數,同時管理T0、T1的溢出標志。其格式如下:TF1:定時器T1溢出標志位。T1從初值開始加1計數,最高位產生溢出時,TF1自動置1。TF1可以由軟件清零,或CPU響應T1中斷時由硬件自動清零。TR1:定時器T1啟/停控制位,編程時置1則啟動定時器T1,清0則暫停定時器T1。TF0、TR0:功能同理。2、工作方式寄存器TMOD

特殊功能寄存器TMOD為T0、T1的工作方式寄存器,不支持按位尋址,其格式如下:位D7D6D5D4D3D2D1D0符號GATEC/TM1M0GATEC/TM1M0GATE:設置定時器是否受外部控制。當GATE=0時,不受外部控制。此時,TR1=1,T1馬上開始計數。當GATE=1時,T0、T1分別受P3.2(INT0)和P3.3(INT1)腳上的電平控制,如當GATE=1、TR1=1,且INT1腳為高電平,定時器T1開始計數。GATE=1時,主要用來測脈沖寬度。C/T:為定時/計數方式選擇位。該位置1為計數工作方式,在這種方式下,計數脈沖來自T0引腳(P3.4)或T1引腳(P3.5)。當T0(或T1)腳發生從高電平到低電平的跳變時,計數器加1。該位置0為定時工作方式,定時器每經過一個機器周期,自動加1。因此,可將機器周期看作為定時器的一個計數周期。位D7D6D5D4D3D2D1D0符號GATEC/TM1M0GATEC/TM1M0M1M0:控制定時器工作的4種不同工作狀態。M1M0功能說明00方式0,為13位定時/計數器,最大計數8192次01方式1,為16位定時/計數器,最大計數65536次。TH0(TH1)作為高8位,TL0(TL1)作為低8位。10方式2,為自動重裝入預置數工作方式,為8位定時/計數器,最大計數256次11方式3,僅適用于T0,將T0分為兩個8位計數器,最大計數256次,T1在方式3時處于關閉狀態TCON、TMOD復位后都會變成0X00。三、使用定時器的方法:(要求記錄)1、設置TMOD,使之工作在需求狀態。此處假定工作在方式1下:

若使用T1,則TMOD=0X10;即TMOD=00010000;

若使用T0,則TMOD=0X01;即TMOD=00000001;2、設置計數寄存器的初值,精確設定好定時時間。例:一個機器周期的時間=12/11059200s,16位的定時器計數范圍為0~65535,共可計數65536次,共用時也即最大定時時間為65536*12/11059200s。計數完畢后,溢出,TF=1。

位D7D6D5D4D3D2D1D0符號GATEC/TM1M0GATEC/TM1M0若從x開始計數,計數時間為(65536-x)*12/11059200。假定要定時時間為2ms,則(65536-x)*12/11059200=20ms

經計算,x=(47104)D=(B800)H

即計數初值可以設為TH1=0XB8;TL1=0X00;(此處假定使用T1)3、設置TCON,通過打開TR1(TR1=1)來讓定時器工作。4、判斷TCON寄存器的TF1位,監測定時器溢出情況。小燈以1S時間間隔閃爍實驗目的:讓小燈LED2以1S時間為間隔進行閃爍。實驗思路:使用定時器實現精確定時。如何使用定時器:假定使用定時器T0①設置TMOD。使用定時器T0,并使之工作在方式1下。令TMOD=0X01;②設置計數寄存器的初值,精確設定好定時時間1s。定時器最大定時時間為:65536*12/11059200s=0.07s<1s。故,可讓定時器定時20ms,產生50次溢出,就剛好為1s。

12*(65536-x)/11059200=20ms得:x=(47104)D=(B800)H

令TH0=0XB8;TL0=0X00;③設置TCON,通過打開TR來讓定時器T0工作。令TR0=1;程序編寫如下:#include<reg52.h>typedefunsignedcharuint8;sbitA0=P1^0;\\特殊功能位聲明,與前述程序相同sbitA1=P1^1;sbitA2=P1^2;sbitE3=P1^3;sbitENLED=P1^4;sbitLED=P0^0;main(){ uint8counter; ENLED=0;//設置74138的使能端,從而使其正常工作

E3=1;

A2=1;A1=1;A0=0;//設置38譯碼器輸入端,從而使得所

//有小燈陽極均接高電平

TMOD=0X01;//使用定時器T0,并使之工作在工作方式1

//下,注意TMOD不能進行位操作

TH0=0XB8;//設置定時器初值

TL0=0X00;

TR0=1;//打開定時器T0

while(1){ if(TF0==1)//TF0置1,產生溢出,說明定時器T0已完成定時20ms { TF0=0;//將溢出標志位清零,以便

溫馨提示

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

評論

0/150

提交評論