資源描述:
《51單片機(jī)定時(shí)器實(shí)驗(yàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、電子信息工程學(xué)系實(shí)驗(yàn)報(bào)告成績(jī):課程名稱:?jiǎn)纹瑱C(jī)原理指導(dǎo)教師(簽名):實(shí)驗(yàn)項(xiàng)目名稱:51定時(shí)器實(shí)驗(yàn)實(shí)驗(yàn)時(shí)間:2012-11-27班級(jí):測(cè)控081姓名:學(xué)號(hào):810707132實(shí)驗(yàn)?zāi)康?熟悉keil仿真軟件、偉福仿真器的使用和C51定時(shí)程序的編寫。了解51單片機(jī)中定時(shí)、計(jì)數(shù)的概念,熟悉51單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理。掌握中斷方式處理定時(shí)/計(jì)數(shù)的工作過(guò)程,掌握定時(shí)/計(jì)數(shù)器在C51中的設(shè)置與程序的書寫格式以及使用方法。實(shí)驗(yàn)原理:定時(shí)分類及原理1.軟件定時(shí):即讓機(jī)器執(zhí)行一個(gè)程序段,這段程序本身沒有具體的執(zhí)行目的,只是為了磨時(shí)間。執(zhí)行這段程序所需要的時(shí)間就是延時(shí)時(shí)間。這種程序前
2、面已設(shè)計(jì)過(guò)。這種方法定時(shí)占用CPU執(zhí)行時(shí)間,降低了CPU利用率。此次實(shí)驗(yàn)使用的是MCS-51系列單片機(jī)。2.數(shù)字電路硬件定時(shí):采用小規(guī)模集成電路器件如555,外接定時(shí)部件(電阻和電容)構(gòu)成。這樣的定時(shí)電路簡(jiǎn)單,但要改變定時(shí)范圍,必須改變電阻和電容,這種定時(shí)電路在硬件連接好以后,修改不方便。3.可編程定時(shí)/計(jì)數(shù)器:是為方便微型計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)和應(yīng)用而研制的,它是硬件定時(shí),又很容易地通過(guò)軟件來(lái)確定和改變它的定時(shí)值,通過(guò)初始化編程,能夠滿足各種不同的定時(shí)和計(jì)數(shù)要求,因而在嵌入式系統(tǒng)的設(shè)計(jì)和應(yīng)用中得到廣泛的應(yīng)用。8051型單片機(jī)有兩個(gè)十六位定時(shí)/計(jì)數(shù)器T0、T1,有四種工作方式,跟定時(shí)
3、/計(jì)數(shù)器相關(guān)的特殊功能寄存器有這樣幾個(gè):方式控制寄存器TMODD7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0M1、M0的狀態(tài)決定定時(shí)器的工作方式,定時(shí)和外部事件計(jì)數(shù)方式選擇位C/T,GATE與TR0、TR1配合決定定時(shí)/計(jì)數(shù)器的啟停。加法計(jì)數(shù)寄存器TH0、TH1(高八位)TL0、TL1(低八位);定時(shí)/計(jì)數(shù)到標(biāo)志TF0、TF1(中斷控制寄存器TCON);定時(shí)/計(jì)數(shù)器啟??刂莆籘R0、TR1(TCON);定時(shí)/計(jì)數(shù)器中斷允許位ET0、ET1(中斷允許寄存IE);定時(shí)/計(jì)數(shù)器中斷優(yōu)先級(jí)控制位PT0、PT1(中斷優(yōu)IP)。定時(shí)/計(jì)數(shù)器的工作方式MCS-5
4、1的定時(shí)器有方式0、方式1、方式2和方式2這3種工作方式。1.方式0當(dāng)M1M0=00時(shí),定時(shí)器工作于方式0。5方式0為13位的計(jì)數(shù)器,由TL0的低5位和TH0的8位組成,TL0低5位計(jì)數(shù)溢出時(shí)向TH0進(jìn)位,TH0計(jì)數(shù)溢出時(shí)置位溢出標(biāo)志TF0。若T0工作于定時(shí)方式,設(shè)計(jì)數(shù)初值為a,晶振頻率為12MHz,則T0從初值開始計(jì)數(shù)到溢出的定時(shí)時(shí)間為t=(213-a)×1μS。2.方式1當(dāng)M1M0=01時(shí),定時(shí)器工作于方式1。T1工作于方式1時(shí),由TH1作為高8位,TL1作為低8位,構(gòu)成一個(gè)十六位的計(jì)數(shù)器。若T1工作于定時(shí)方式1,計(jì)數(shù)初值為a,晶振頻率為12MHz,則T1從計(jì)數(shù)初值計(jì)數(shù)到溢
5、出的定時(shí)時(shí)間為t=(216-a)μS。3.方式2M1M0=10時(shí),定時(shí)器/計(jì)數(shù)器工作于方式2,方式2為自動(dòng)恢復(fù)初值的8位計(jì)數(shù)器。TL1作為8位計(jì)數(shù)器,TH1作為計(jì)數(shù)初值寄存器。t=(28-a)μS。單片機(jī)內(nèi)部的定時(shí)計(jì)數(shù)模塊,在定時(shí)時(shí),對(duì)工作頻率的12分頻進(jìn)行計(jì)數(shù),先記入TL后記入TH,直到溢出為止,根據(jù)TL、TH內(nèi)的初值不同可以定出不同的時(shí)間;在計(jì)數(shù)工作方式時(shí),對(duì)T0(T1)引腳的輸入脈沖進(jìn)行計(jì)數(shù),將計(jì)數(shù)值記入TL、TH。當(dāng)定時(shí)/計(jì)數(shù)溢出時(shí),會(huì)引起中斷。設(shè)置合適的計(jì)數(shù)初值,以產(chǎn)生期望的定時(shí)間隔。由于定時(shí)/計(jì)數(shù)器在方式0、方式1和方式2時(shí)的最大計(jì)數(shù)間隔取決于使用的晶振頻率fosc
6、,如下表所示,當(dāng)需要的定時(shí)間隔較大時(shí),要采用適當(dāng)?shù)姆椒?,即將定時(shí)間隔分段處理。5計(jì)數(shù)初值與定時(shí)時(shí)間的關(guān)系為:T=12×(T_all–a)/fosc定時(shí)間隔為T,計(jì)數(shù)初值為a。所以有計(jì)數(shù)初值a=–T×fosc/12,THx=a/256,TLx=a%256。定時(shí)器均有一個(gè)最大定時(shí)時(shí)間,對(duì)于長(zhǎng)時(shí)間的定時(shí)需要,可以將定時(shí)間隔為固定的較小時(shí)間,通過(guò)另設(shè)一全局變量ah1用于計(jì)數(shù),累加固定的較小定時(shí)時(shí)間來(lái)進(jìn)行。確定定時(shí)/計(jì)數(shù)器工作于查詢方式還是中斷方式,若工作于中斷方式,則在初始化時(shí)開放定時(shí)/計(jì)數(shù)器的中斷及總中斷:ET0=1;EA=1;還需要編寫中斷服務(wù)函數(shù):voidT0_srv(void)
7、interrupt1using1{TL0=a%256;TH0=a/256;中斷服務(wù)程序段}4.啟動(dòng)定時(shí)器:TR0(TR1)=1。實(shí)驗(yàn)設(shè)備與器件硬件:微機(jī)、WAVE單片機(jī)仿真器、單片機(jī)實(shí)驗(yàn)板、跳帽若干軟件:KEILC51單片機(jī)仿真調(diào)試軟件,偉福V系列仿真調(diào)試軟件實(shí)驗(yàn)內(nèi)容:利用實(shí)驗(yàn)板上的一位LED數(shù)碼管做顯示,利用中斷法編寫定時(shí)程序,控制單片機(jī)定時(shí)器進(jìn)行定時(shí),所定時(shí)間為1S。剛開始LED數(shù)碼管顯示0,每過(guò)1S數(shù)碼管的顯示值增加1,當(dāng)顯示到59時(shí)返回0,依此反復(fù)。實(shí)驗(yàn)的程序代碼如下:#includ