數(shù)字電子鐘的制作_第1頁
數(shù)字電子鐘的制作_第2頁
數(shù)字電子鐘的制作_第3頁
數(shù)字電子鐘的制作_第4頁
數(shù)字電子鐘的制作_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字電子鐘的制作設(shè)計報告學(xué)院:計算機與電子信息學(xué)院隊長:1307300413 李子康 小組成員:1307200108高維春 1226211614黃凱操 指導(dǎo)老師: 聶雄 日期:2015.6.30 目錄一、任務(wù)與要求2二、設(shè)計思路2(1)時鐘計數(shù)的設(shè)計2(2)按鍵控制時間的設(shè)定和調(diào)整2(3)定時器/計數(shù)器0實現(xiàn)1s計數(shù)3三、數(shù)字鐘的組成部分3(1)硬件模塊3(2)軟件模塊3四、數(shù)字鐘程序設(shè)計流程圖4五、數(shù)字鐘程序設(shè)計5(1)數(shù)碼管顯示5(2)時鐘初始化5(3)中斷設(shè)計5(4)按鍵程序7六、遇到的問題9(1)定時時間的控制9(2)數(shù)碼管的顯示9七、仿真效果圖10八、實物圖11九、心得與體會11十、

2、附錄:程序代碼11一、任務(wù)與要求設(shè)計并制作一個數(shù)字電子鐘,實現(xiàn)如下功能:(a)采用數(shù)碼管或LCD屏幕顯示時、分和秒時間(b)通過按鍵可以調(diào)整和設(shè)定當(dāng)前時間(c)要求計時準確(10分鐘內(nèi)計時誤差<1s)(d)設(shè)計原理圖、PCB圖,制作和調(diào)試電路(如果有現(xiàn)成的單片機板子,也可以直接使用)(f)編寫電子鐘控制軟件(g)編寫實訓(xùn)設(shè)計報告二、設(shè)計思路(1)時鐘計數(shù)的設(shè)計用AT89C51單片機的定時器/計數(shù)器T0產(chǎn)生1s的定時時間,作為秒計數(shù)時間,當(dāng)一秒產(chǎn)生時,秒計數(shù)加1開始計時。顯示00-00-00的時間,開始計時;(2)按鍵控制時間的設(shè)定和調(diào)整P1.0口控制“秒”的調(diào)整,每按一次按鍵加1s;P1

3、.1口控制“分”的調(diào)整,每按一次按鍵加1min;P1.2口控制“時”的調(diào)整,每按一次按鍵加1h;計時滿23-59=59時,返回00-00-00重新計時。P1.3口用做復(fù)位鍵,在計時過程中,如果按下它,則返回00-00-00重新開始計時。(3)定時器/計數(shù)器0實現(xiàn)1s計數(shù)單片機選擇16位定時工作方式。對T0來說,系統(tǒng)時鐘為12MHZ,最大定時也只有65535us,無法達到所需要的1s的定時,因此必須通過軟件來處理這個問題,取T0的最大定時為50ms,要定時1s需要經(jīng)過20次的50ms的定時。這20次計數(shù),采用軟件的方法來實現(xiàn)。設(shè)TMOD=01H,設(shè)置定時器計時器0工作在方式1 ,則 TH0=(6

4、5535-50000)/256TL0=(65536-50000)%256這樣,當(dāng)計數(shù)器/定時器0計滿50ms時,產(chǎn)生一個中斷,在中斷服務(wù)程序中對中斷次數(shù)加以統(tǒng)計,就能實現(xiàn)數(shù)字鐘的邏輯功能了。三、數(shù)字鐘的組成部分(1)硬件模塊單片機芯片,八位共陰數(shù)碼管,驅(qū)動數(shù)碼管譯碼的芯片74HC573(仿真時為74LS245),按鍵,外加電阻,導(dǎo)線若干;(2)軟件模塊數(shù)碼管顯示程序設(shè)計,定時器初始化,定時器中斷編程,時鐘的時、分、秒控制 ,按鍵程序設(shè)計,時間的調(diào)整與設(shè)定。開始開始四、數(shù)字鐘程序設(shè)計流程圖顯示設(shè)計,設(shè)置定時器,定時50ms開始是 根據(jù)計數(shù)值顯示時間開始秒鍵被按下?否否秒計數(shù)加1開始分鍵被按下?是

5、否時鍵被按下?到60s?否是否分計數(shù)加1開始是否復(fù)位鍵被按下?到60min?否是小時加1開始是到24h?否開始開始是五、數(shù)字鐘程序設(shè)計(1)數(shù)碼管顯示定義數(shù)碼管的位選和段選數(shù)組uchar code wei8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code duan10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;通過程序控制來選擇數(shù)碼管的位碼和斷碼(2)時鐘初始化HOUR=0;/時為0MINITE=0;/分為零SECOND=0;/秒為零TMOD=0x01;/選擇計數(shù)方式TH0=(655

6、36-50000)/256;/賦初值TL0=(65536-50000)%256;(3)中斷設(shè)計void Timer0(void)interrupt 1 using 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; TCNT+;/控制中斷次數(shù) if(TCNT=20) SECOND+; TCNT=0; if(SECOND=60) MINITE+; SECOND=0; if(MINITE=60) HOUR+; MINITE=0; if(HOUR=24) HOUR=0; MINITE=0; SECOND=0; TCNT=0; (4)按鍵程序sbit S_S

7、ET=P10;/定義按鍵控制端口sbit M_SET=P11;sbit H_SET=P12;sbit RESET=P13;void KEY_TEST() DISPLAY(); P1=0xff; restar=0; if(S_SET=0);/按下控制“秒”的按鍵 delay(100); if(S_SET=0) SECOND+;if(SECOND=60) SECOND=0;while(S_SET=0) DISPLAY(); if(M_SET=0);/按下控制“分”的按鍵 delay(100); if(M_SET=0) MINITE+;if(MINITE=60) MINITE=0;while(M_S

8、ET=0) DISPLAY(); if(H_SET=0);/按下控制“時”的 delay(100); if(H_SET=0) HOUR+;if(HOUR=24) HOUR=0;while(H_SET=0) DISPLAY(); if(RESET=0)/按下“復(fù)位”的按鍵 delay(100); if(RESET=0) restar=1; 六、遇到的問題(1)定時時間的控制剛開始不熟單片機的定時,在設(shè)計時間時常常達不到所要求的秒的誤差,通過查閱資料,明白了定時時賦初值的計算方法,經(jīng)過矯正,實驗計數(shù)基本符合了實驗要求的誤差。(2)數(shù)碼管的顯示設(shè)置了數(shù)碼管的段選和位選數(shù)組之后,怎么使它顯示出想要的效

9、果是一個很棘手的問題。解決這個問題時,我們遇到很大的困難,尤其是編好燒錄后老是錯亂顯示。后面我們想到一種比較好的方法,就是通過時,分,秒,上的數(shù)值個位,十位來選擇數(shù)碼管上的數(shù)組對應(yīng)的數(shù),以達到通過數(shù)碼管來顯示時鐘上的數(shù)值。七、仿真效果圖八、實物圖九、心得與體會 通過本次實驗設(shè)計,我對單片機的學(xué)習(xí)有了進一步地提升,特別是對中斷的控制以及中斷服務(wù)程序的編寫,數(shù)碼管的顯示。同時本次試驗大大地提高了我們的團隊意識。十、附錄:程序代碼 #include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit S_SET

10、=P10;sbit M_SET=P11;sbit H_SET=P12;sbit RESET=P13;unsigned char SECOND,MINITE,HOUR,TCNT,restar=0;uchar code wei8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code duan10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F;uchar dispbuf8;void delay(unsigned int us) while(us-);void SCANDISP() unsigned

11、 char i,value; for(i=0;i<8;i+) P3=0xff; value=duandispbufi; P0=value; P3=weii; delay(50); void Timer0(void)interrupt 1 using 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; TCNT+; if(TCNT=20) SECOND+; TCNT=0; if(SECOND=60) MINITE+; SECOND=0; if(MINITE=60) HOUR+; MINITE=0; if(HOUR=24) HOUR=0; MINI

12、TE=0; SECOND=0; TCNT=0; void DISPLAY() SCANDISP(); dispbuf6=SECOND/10; dispbuf7=SECOND%10; dispbuf5=10; dispbuf3=MINITE/10; dispbuf4=MINITE%10; dispbuf2=10; dispbuf0=HOUR/10; dispbuf1=HOUR%10;void KEY_TEST() DISPLAY(); P1=0xff; restar=0; if(S_SET=0); delay(100); if(S_SET=0) SECOND+;if(SECOND=60) SECOND=0;while(S_SET=0) DISPLAY(); if(M_SET=0); delay(100); if(M_SET=0) MINITE+;if(MINITE=60) MINITE=0;while(M_SET=0) DISPLAY(); if(H_SET=0); delay(100); if(H_SET=0) HOUR+;if(HOUR=24) HOUR=0;while(H_SET=0) DISPLAY(); if(RESE

溫馨提示

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

評論

0/150

提交評論