項(xiàng)目6 數(shù)字鐘課件_第1頁(yè)
項(xiàng)目6 數(shù)字鐘課件_第2頁(yè)
項(xiàng)目6 數(shù)字鐘課件_第3頁(yè)
項(xiàng)目6 數(shù)字鐘課件_第4頁(yè)
項(xiàng)目6 數(shù)字鐘課件_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《單片機(jī)技術(shù)應(yīng)用》項(xiàng)目課件

數(shù)字鐘復(fù)習(xí)回顧——前一項(xiàng)目主要內(nèi)容中斷的概念:中斷與返回單片機(jī)的中斷系統(tǒng):五個(gè)中斷源,二個(gè)優(yōu)選級(jí)中斷控制:中斷控制寄存器,總開(kāi)關(guān),分開(kāi)關(guān)外部中斷:由外部信號(hào)觸發(fā)(可選擇電平或者脈沖方式)項(xiàng)目五---流水線緊急制動(dòng)控制器中斷控制寄存器串口中斷控制寄存器允許中斷寄存器優(yōu)先級(jí)寄存器復(fù)習(xí)回顧——中斷系統(tǒng)五個(gè)中斷源用單片機(jī)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)數(shù)字鐘。功能指標(biāo)要求:(1)用6個(gè)數(shù)碼管顯示XX時(shí)XX分XX秒;(2)實(shí)現(xiàn)數(shù)字鐘的基本功能:即每一秒自動(dòng)加1,時(shí)分秒自動(dòng)進(jìn)位。2.項(xiàng)目任務(wù)一、項(xiàng)目描述一、項(xiàng)目描述3.項(xiàng)目目標(biāo)二、項(xiàng)目資訊定時(shí)計(jì)數(shù)器結(jié)構(gòu)原理定時(shí)計(jì)數(shù)器工作方式定時(shí)計(jì)數(shù)器的使用方法動(dòng)態(tài)掃描實(shí)現(xiàn)多位數(shù)碼顯示四項(xiàng)內(nèi)容二、項(xiàng)目資訊(一)定時(shí)/計(jì)數(shù)器結(jié)構(gòu)原理計(jì)數(shù)概念計(jì)數(shù)器的容量計(jì)數(shù)轉(zhuǎn)化為定時(shí)計(jì)數(shù)的溢出,(定時(shí)時(shí)間到)任意定時(shí)計(jì)數(shù)的方法二、項(xiàng)目資訊定時(shí)計(jì)數(shù)器基礎(chǔ)知識(shí)定時(shí)/計(jì)數(shù)器的實(shí)質(zhì):是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存器組成。其計(jì)數(shù)脈沖來(lái)源:(1)外部引腳(T0、T1腳)(2)內(nèi)部時(shí)鐘脈沖計(jì)時(shí)\定時(shí)時(shí)間到:計(jì)數(shù)器值達(dá)到最大值(全1),再來(lái)一個(gè)脈沖,回到0。二、項(xiàng)目資訊3、定時(shí)器的控制寄存器TCON(物理地址:

88H,可以位尋址)TF0:定時(shí)器/計(jì)數(shù)器0溢出標(biāo)志TR0:定時(shí)器/計(jì)數(shù)器0啟停控制位TF1:定時(shí)器/計(jì)數(shù)器1溢出標(biāo)志TR1:定時(shí)器/計(jì)數(shù)器1啟??刂莆辉试S中斷寄存器IE(物理地址:A8H,可按位尋址)

2、方式1方式1的計(jì)數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計(jì)數(shù)器。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:

二、項(xiàng)目資訊

3、方式2方式2為自動(dòng)重裝初值的8位計(jì)數(shù)方式。

工作方式2特別適合于用作較精確的脈沖信號(hào)發(fā)生器。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:二、項(xiàng)目資訊4、方式3方式3只適用于定時(shí)/計(jì)數(shù)器T0,定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù)。

工作方式3將T0分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。二、項(xiàng)目資訊二、項(xiàng)目資訊1、定時(shí)器的初始值的計(jì)算4種方式最大計(jì)數(shù)值M也不同:

方式0:M=213=8192方式1:M=216=65536方式2:M=28=256方式3:定時(shí)器0分為2個(gè)8位計(jì)數(shù)器,每個(gè)M均為256因?yàn)槎〞r(shí)/計(jì)數(shù)器是作加1計(jì)數(shù),并在計(jì)滿溢出時(shí)產(chǎn)生中斷,因此初值X的計(jì)算如下:

X=M–計(jì)數(shù)值

t計(jì)數(shù)時(shí)間=(M計(jì)數(shù)最大值-X計(jì)數(shù)初始值)×T機(jī)器周期計(jì)算出來(lái)的結(jié)果X轉(zhuǎn)換為16進(jìn)制數(shù)后分別寫(xiě)入TL0(TL1)、TH0(TH1)。注意:方式0時(shí)初始值寫(xiě)入時(shí),對(duì)于TL不用的高3位應(yīng)填入0?。ㄈ┒〞r(shí)計(jì)數(shù)器的使用二、項(xiàng)目資訊2、定時(shí)器的初始化與啟動(dòng)模式設(shè)置:工作方式選擇0-3某一種初值設(shè)置:根據(jù)定時(shí)參數(shù)設(shè)置初值啟動(dòng)設(shè)置:在主程序中啟動(dòng)定時(shí)器3、定時(shí)中斷的使用中斷設(shè)置:根據(jù)需要打開(kāi)相應(yīng)中斷中斷函數(shù):KeilC編程時(shí)中斷程序:void**Int()interruptnT0-----interrupt1T1-----interrupt3二、項(xiàng)目資訊舉例1#include<reg51.h>voiddelay(unsignedintt);voidmain(){ while(1) { P1=~P1;

delay(500); }}原來(lái)的閃爍燈程序使用定時(shí)中斷的閃爍燈程序開(kāi)始T0重新初始化T0定時(shí)中斷子程序流程圖T0定時(shí)50ms到i計(jì)數(shù)1S到,P1輸出主程序流程圖開(kāi)始T0初始化死循環(huán)二、項(xiàng)目資訊舉例1使用定時(shí)中斷的閃爍燈程序//T0初始化voidinitTimer(){TMOD=0x01;TH0=0x3c;TL0=0xb0;}//主程序voidmain(){ initTimer(); TR0=1; ET0=1; EA=1; while(1);}voidtimer0()interrupt1{ unsignedchari; TH0=0x3c; TL0=0xb0; i++; if(i==20) { i=0; P1=~P1; }}開(kāi)始T0重新初始化T0中斷子程序流程圖T0定時(shí)50ms到i計(jì)數(shù)1S到,P1輸出2、硬件電路設(shè)計(jì)

單片機(jī)6位共陽(yáng)極數(shù)碼管位選段碼8位8位P2P0三、項(xiàng)目分析硬件電路框圖按鍵輸入3、軟件設(shè)計(jì)——設(shè)計(jì)思想三、項(xiàng)目分析1秒的計(jì)時(shí)值產(chǎn)生:

通過(guò)定時(shí)器中斷來(lái)實(shí)現(xiàn),定時(shí)器時(shí)間設(shè)為1ms(即每1ms定時(shí)產(chǎn)生一個(gè)中斷),通過(guò)記錄中斷的次數(shù),每1000次中斷就是1S。數(shù)碼管的顯示動(dòng)態(tài)掃描:

A、通過(guò)放到主程序中不斷重復(fù)實(shí)現(xiàn)動(dòng)態(tài)掃描。

B、同樣借助定時(shí)中斷來(lái)實(shí)現(xiàn),每一次中斷時(shí),執(zhí)行一次顯示程序(即顯示其中一位數(shù)碼管),不斷重復(fù)。時(shí)、分、秒進(jìn)位的實(shí)現(xiàn):

通過(guò)條件判斷來(lái)實(shí)現(xiàn)每1S,秒加1,每60秒分加1,每60分時(shí)加1等。主程序:只需要完成定時(shí)器與中斷的初始設(shè)置#include"reg51.h"unsignedcharcodedisptab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};//數(shù)碼管段碼表unsignedcharcodebittab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//掃描位選表unsignedcharhour=12,min=0,sec=0;//時(shí)分秒設(shè)初值unsignedintcount;//定義計(jì)數(shù)次數(shù)變量unsignedcharnum=0;//數(shù)碼管序號(hào)設(shè)初值voidmain()//主函數(shù){ TMOD=0x01; //T0工作方式1,定時(shí) TH0=0xfc; TL0=0x6c; //定時(shí)1ms,賦初值ET0=1; //開(kāi)定時(shí)中斷EA=1; //開(kāi)中斷TR0=1; //啟動(dòng)定時(shí)器while(1);}主函數(shù)voiddisp()//顯示函數(shù){ num++; num=(num%6); P2=0xff; //數(shù)碼管消影

P0=0xff; P2=bittab[num]; switch(num) { case0: P0=disptab[sec%10]; break;//秒個(gè)位

case1: P0=disptab[sec/10]; break;//秒十位

case2: P0=disptab[min%10]; break;//分個(gè)位

case3: P0=disptab[min/10]; break;//分十位

case4: P0=disptab[hour%10]; break;//時(shí)個(gè)位

case5: P0=disptab[hour/10]; break;//時(shí)十位

default: ; } //if(num==2||num==4)P0=P0&0x7f;}顯示函數(shù)voidt0()interrupt1//T0中斷函數(shù){ TL0=0x6c;//賦初值,重新定時(shí)1ms TH0=0xfc; count++; if(count==1000) { count=0; sec=sec+1; if(sec==60) {sec=0;min++;} if(min==60) {min=0;hour++;} if(hour==24) {hour=0;} } disp();}中斷函數(shù)四、項(xiàng)目實(shí)施KeilC51編寫(xiě)程序調(diào)試編譯為HEX文件2、軟件編寫(xiě)四、項(xiàng)目實(shí)施3.軟硬件功能調(diào)試及排故電路調(diào)試: 硬件是否符合設(shè)計(jì)要求,有無(wú)故障。故障分析及排除: 在確認(rèn)學(xué)習(xí)開(kāi)發(fā)板無(wú)故障的前提下:1.軟件故障12.軟件故障2四、項(xiàng)目實(shí)施調(diào)試與分析效果驗(yàn)證結(jié)果測(cè)試4、效果驗(yàn)證或結(jié)果測(cè)試五、項(xiàng)目評(píng)價(jià)與總結(jié)提高1.項(xiàng)目評(píng)價(jià)評(píng)價(jià)方式:自評(píng)互評(píng)師評(píng)五、項(xiàng)目評(píng)價(jià)與總結(jié)提高2.項(xiàng)目總結(jié)本項(xiàng)目采用定時(shí)器中斷實(shí)現(xiàn)1S的定時(shí)計(jì)數(shù)和在定時(shí)中斷中實(shí)現(xiàn)數(shù)碼管顯示功能。定時(shí)中斷使用時(shí),需要進(jìn)行初始化參數(shù),并打開(kāi)中斷。定時(shí)中斷采用相應(yīng)的定時(shí)函數(shù)3、思考與拓展訓(xùn)練(1)完善數(shù)字鐘控制功能——增加按鍵控制功能:A、按S1鍵暫停,顯示6個(gè)P,再按S1恢復(fù);B、按S3鍵調(diào)時(shí),時(shí)加1,到24變?yōu)?;按S4鍵調(diào)分,分加1,到60變?yōu)?;按S2鍵時(shí)分秒都清零

。

思考1:如果按一下S1鍵,則數(shù)字鐘暫停,同時(shí)還要顯示當(dāng)前記時(shí)時(shí)間,再按一下S1鍵恢復(fù)計(jì)時(shí),如何實(shí)現(xiàn)?

思考2:將按鍵功能改為S1調(diào)整鍵,S2切換位,S3,S4加減,按鍵調(diào)整時(shí),對(duì)應(yīng)的位置閃爍,如何實(shí)現(xiàn)?(2)設(shè)計(jì)一個(gè)可預(yù)置倒計(jì)時(shí)秒表

功能:S1調(diào)十位,S2調(diào)個(gè)位,預(yù)置范圍為(0-59),S3啟動(dòng),S4暫停,暫停時(shí)顯示最后記時(shí)值,當(dāng)?shù)褂?jì)時(shí)進(jìn)行時(shí)S1和S2不起作用,倒計(jì)時(shí)到時(shí)蜂鳴器報(bào)警1S,又回到預(yù)置值準(zhǔn)備倒計(jì)時(shí)。

提示:通過(guò)定時(shí)和中斷進(jìn)行數(shù)碼管動(dòng)態(tài)掃描顯示,在主程序中判斷按鍵,通過(guò)一個(gè)位變量來(lái)表示倒計(jì)時(shí)的運(yùn)行與暫停狀態(tài),在1s記時(shí)到的時(shí)候判斷標(biāo)識(shí)狀態(tài)以確定是否要對(duì)計(jì)數(shù)值減1。(3)設(shè)計(jì)一個(gè)(0.0~9.9)計(jì)時(shí)秒表

功能:對(duì)S2按鍵按下的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論