單片機(jī)實(shí)驗(yàn)6-51定時器實(shí)驗(yàn)_第1頁
單片機(jī)實(shí)驗(yàn)6-51定時器實(shí)驗(yàn)_第2頁
單片機(jī)實(shí)驗(yàn)6-51定時器實(shí)驗(yàn)_第3頁
單片機(jī)實(shí)驗(yàn)6-51定時器實(shí)驗(yàn)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

電子信息工程系實(shí)驗(yàn)報告成績:課程名稱:單片機(jī)原理及接口成績:指導(dǎo)教師(簽名):實(shí)驗(yàn)項(xiàng)目名稱:51定時器實(shí)驗(yàn)實(shí)驗(yàn)時間:2011.12.12指導(dǎo)教師(簽名):班級:通信姓名:學(xué)號:實(shí)驗(yàn)?zāi)康?熟悉keil仿真軟件、proteus仿真軟件的使用和單片機(jī)定時程序的編寫。了解51單片機(jī)中定時、計數(shù)的概念,熟悉51單片機(jī)內(nèi)部定時/計數(shù)器的結(jié)構(gòu)與工作原理。掌握中斷方式處理定時/計數(shù)的工作過程,掌握定時/計數(shù)器在C51中的設(shè)置與程序的書寫格式以及使用方法。實(shí)驗(yàn)環(huán)境:KEILC51單片機(jī)仿真調(diào)試軟件,proteus系列仿真調(diào)試軟件實(shí)驗(yàn)內(nèi)容及過程:8051型單片機(jī)有兩個十六位定時/計數(shù)器T0、T1,有四種工作方式,跟定時/計數(shù)器相關(guān)的特殊功能寄存器有這樣幾個:方式控制寄存器TMOD;TMOD的低四位為T0的方式字,高四位為T1的方式字。D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0M1、M0的狀態(tài)決定定時器的工作方式,定時和外部事件計數(shù)方式選擇位C/T,C/T=0為定時器方式。GATE與TR0、TR1配合決定定時/計數(shù)器的啟停。GATE=0時,定時器/計數(shù)器的啟停只受定時器運(yùn)行控制位(TR0、TR1)的控制。(軟件啟動)。GATE=1時,定時器/計數(shù)器的啟停除受TR0、TR1控制外,還受外部引腳(INT0、INT1)輸入電平的控制(為高)。即TR0和INT0控制T0的運(yùn)行,TR1和INT1控制T1的運(yùn)行(軟硬啟動)。M1M0功能說明00110101方式0,為13位的定時/計數(shù)器方式1,為16位的定時/計數(shù)器方式2,為常數(shù)自動重裝入的8位定時/計數(shù)器方式3,T0分為兩個8位定時/計數(shù)器,T1在該方式時停止加法計數(shù)寄存器TH0、TH1(高八位)TL0、TL1(低八位);定時/計數(shù)到標(biāo)志TF0、TF1(中斷控制寄存器TCON);定時/計數(shù)器啟??刂莆籘R0、TR1(TCON);定時/計數(shù)器中斷允許位ET0、ET1(中斷允許寄存IE);定時/計數(shù)器中斷優(yōu)先級控制位PT0、PT1(中斷優(yōu)IP);當(dāng)M1M0=01時,定時器工作于方式1。T1工作于方式1時,由TH1作為高8位,TL1作為低8位,構(gòu)成一個十六位的計數(shù)器。MCS-51單片機(jī)定時計數(shù)器的工作原理如下圖所示,單片機(jī)內(nèi)部的定時計數(shù)模塊,在定時時,對工作頻率的12分頻進(jìn)行計數(shù),先記入TL后記入TH,直到溢出為止,根據(jù)TL、TH內(nèi)的初值不同可以定出不同的時間;在計數(shù)工作方式時,對T0(T1)引腳的輸入脈沖進(jìn)行計數(shù),將計數(shù)值記入TL、TH。當(dāng)定時/計數(shù)溢出時,會引起中斷。計數(shù)初值與定時時間的關(guān)系為:T=12×(T_all–a)/fosc定時間隔為T,計數(shù)初值為a。所以有計數(shù)初值a=–T×fosc/12,THx=a/256,TLx=a%256。定時器均有一個最大定時時間,對于長時間的定時需要,可以將定時間隔為固定的較小時間,通過另設(shè)一全局變量ah1用于計數(shù),累加固定的較小定時時間來進(jìn)行。使用MCS-51單片機(jī)的定時/計數(shù)器的步驟是:1.設(shè)定TMOD,確定:工作狀態(tài)(用作定時器/計數(shù)器);工作方式;控制方式。2.設(shè)置合適的計數(shù)初值,以產(chǎn)生期望的定時間隔。由于定時/計數(shù)器在方式0、方式1和方式2時的最大計數(shù)間隔取決于使用的晶振頻率fosc,如下表所示,當(dāng)需要的定時間隔較大時,要采用適當(dāng)?shù)姆椒?,即將定時間隔分段處理。3.確定定時/計數(shù)器工作于查詢方式還是中斷方式,若工作于中斷方式,則在初始化時開放定時/計數(shù)器的中斷及總中斷:ET0=1;EA=1; 還需要編寫中斷服務(wù)函數(shù):voidT0_srv(void)interrupt1using1{TL0=a%256;TH0=a/256;中斷服務(wù)程序段 }4.啟動定時器:TR0(TR1)=1。實(shí)驗(yàn)內(nèi)容一:任選一位,實(shí)現(xiàn)個位秒表的功能0-91.打開proteus新建空白文件,點(diǎn)擊P進(jìn)入零件拾取界面,例如:輸入AT89C51,點(diǎn)擊OK,用鼠標(biāo)拖動到合適的位置。LED;電容CAP;晶振CRYSTAL;電阻CAP;電阻包RESPACK-8;BUTTON按鈕;點(diǎn)擊右鍵Place,Terminal選取電源POWER接地GROUND,進(jìn)行連線,保存。選用共陰的LED顯示器,將P0作為段選,P2作為位選,連接8位LED數(shù)碼管。2.開啟keil并在project中選擇NewProject,新建項(xiàng)目,然后在File中選擇New…。3.保存為timer1,選擇,選擇,點(diǎn)擊確定,彈出一個對話框選擇“否”。4.在新建的空頁中編寫程序,并保存為timer1.c。然后編譯,加載,運(yùn)行調(diào)試。設(shè)計思路:采用T0做定時器,方式一,首先將單片機(jī)的晶振頻率設(shè)為12MHz,其定時間隔就是0.1s,在定義一個全局變量b,當(dāng)b累加到20的時候剛好是1s。#include<reg51.h>unsignedcharcodetab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};chara,b,i;main(){TMOD=0x01;a=-50000;TH0=a/256;TL0=a%256;EA=1;ET0=1;TR0=1;while(1){P0=tab[i];}}voidTO()interrupt1{TH0=a/256;TL0=a%256;b++;if(b==20){b=0;P2=0xFD;i++;if(i>9){i=0;}}}5.雙擊Target1出現(xiàn)SourceGroup1點(diǎn)擊鼠標(biāo)右鍵選擇Addfilestogroup‘SourceGroup1’,選中timer16.點(diǎn)擊如圖操作點(diǎn)擊運(yùn)行,如果顯示無錯誤就編譯成功7.雙擊AT89C51點(diǎn)擊選擇shiyan4.hex點(diǎn)擊OK點(diǎn)擊左下角的運(yùn)行。實(shí)驗(yàn)內(nèi)容二:任選2位,實(shí)現(xiàn)兩位秒表功能00-59。設(shè)計思路;位選先選定兩位,用求余和除法分別送個位和十位,要注意延遲。并判斷當(dāng)其累加到60的時候清零實(shí)現(xiàn)循環(huán)顯示。#include<reg51.h>voidmDelay(unsignedintDelay){unsignedinti;for(;Delay>0;Delay--){for(i=0;i<124;i++){;}}}unsignedcharcodetab1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};chara,b,c,i,j;main(){TMOD=0x01;a=-50000;TH0=a/256;TL0=a%256;EA=1;ET0=1;TR0=1;while(1){P2=0xfe;P0=tab1[c/10];mDelay(5);P2=0xfd;P0=tab1[c%10];mDelay(5);}}voidTO()interrupt1{TH0=a/256;TL0=a%256;b++;if(b==20){c++;if(c==60){c=0;}b=0;}}實(shí)驗(yàn)內(nèi)容三:在第一步基礎(chǔ)上,加撥碼開關(guān)實(shí)現(xiàn)暫停。設(shè)計思路:就是定義一個開關(guān)按鍵,判斷當(dāng)開關(guān)打到低電平的時候,將定時器暫停也就是TR0=0;打到高電平的時候,將定時器再次打開,就實(shí)現(xiàn)繼續(xù)走時的功能。#include<reg51.h>unsignedcharcodetab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};chara,b,i,j;sbitP17=P1^7;main(){TMOD=0x01;a=-50000;TH0=a/256;TL0=a%256;EA=1;EX0=1;ET0=1;TR0=1;while(1){P0=tab[i];if(P17==0){TR0=0;}else{TR0=1;}}}voidTO()interrupt1{TH0=a/256;TL0=a%256;b++;if(b==20){b=0;P2=0xF

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論