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

下載本文檔

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

文檔簡介

《單片機技術(shù)應用》項目課件

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

88H,可以位尋址)TF0:定時器/計數(shù)器0溢出標志TR0:定時器/計數(shù)器0啟??刂莆籘F1:定時器/計數(shù)器1溢出標志TR1:定時器/計數(shù)器1啟??刂莆辉试S中斷寄存器IE(物理地址:A8H,可按位尋址)

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

二、項目資訊

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

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

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

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

X=M–計數(shù)值

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

delay(500); }}原來的閃爍燈程序使用定時中斷的閃爍燈程序開始T0重新初始化T0定時中斷子程序流程圖T0定時50ms到i計數(shù)1S到,P1輸出主程序流程圖開始T0初始化死循環(huán)二、項目資訊舉例1使用定時中斷的閃爍燈程序//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; }}開始T0重新初始化T0中斷子程序流程圖T0定時50ms到i計數(shù)1S到,P1輸出2、硬件電路設(shè)計

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

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

A、通過放到主程序中不斷重復實現(xiàn)動態(tài)掃描。

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

通過條件判斷來實現(xiàn)每1S,秒加1,每60秒分加1,每60分時加1等。主程序:只需要完成定時器與中斷的初始設(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è)初值unsignedintcount;//定義計數(shù)次數(shù)變量unsignedcharnum=0;//數(shù)碼管序號設(shè)初值voidmain()//主函數(shù){ TMOD=0x01; //T0工作方式1,定時 TH0=0xfc; TL0=0x6c; //定時1ms,賦初值ET0=1; //開定時中斷EA=1; //開中斷TR0=1; //啟動定時器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;//秒個位

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

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

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

case4: P0=disptab[hour%10]; break;//時個位

case5: P0=disptab[hour/10]; break;//時十位

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

。

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

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

功能:S1調(diào)十位,S2調(diào)個位,預置范圍為(0-59),S3啟動,S4暫停,暫停時顯示最后記時值,當?shù)褂嫊r進行時S1和S2不起作用,倒計時到時蜂鳴器報警1S,又回到預置值準備倒計時。

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

功能:對S2按鍵按下的

溫馨提示

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

評論

0/150

提交評論