數(shù)電課程設計-基于AT89S51單片機的 多功能數(shù)字鐘的設計

上傳人:熏** 文檔編號:70639329 上傳時間:2022-04-06 格式:DOC 頁數(shù):19 大小:177KB
收藏 版權(quán)申訴 舉報 下載
數(shù)電課程設計-基于AT89S51單片機的 多功能數(shù)字鐘的設計_第1頁
第1頁 / 共19頁
數(shù)電課程設計-基于AT89S51單片機的 多功能數(shù)字鐘的設計_第2頁
第2頁 / 共19頁
數(shù)電課程設計-基于AT89S51單片機的 多功能數(shù)字鐘的設計_第3頁
第3頁 / 共19頁

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)電課程設計-基于AT89S51單片機的 多功能數(shù)字鐘的設計》由會員分享,可在線閱讀,更多相關《數(shù)電課程設計-基于AT89S51單片機的 多功能數(shù)字鐘的設計(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、課程設計任務書 學生姓名: ** 專業(yè)班級:電子科學與技術0803班 指導教師: **** 工作單位: 信息工程學院 題 目: 多功能數(shù)字鐘的設計 初始條件: 本設計既可以使用集成譯碼器、計數(shù)器、定時器、脈沖發(fā)生器和必要的門電路等。本設計也可以使用單片機系統(tǒng)構(gòu)建多功能數(shù)字鐘。用數(shù)碼管顯示時間計數(shù)值。 要求完成的主要任務: (包括課程設計工作量及技術要求,以及說明書撰寫等具體要求) 1、課程設計工作量:1周。 2、技術要求: ① 設計一個數(shù)字鐘。要求用六位數(shù)

2、碼管顯示時間,格式為00:00:00。 ②具有60進制和24進制(或12進制)計數(shù)功能,秒、分為60進制計數(shù),時為24進制(或12進制)計數(shù)。 ③有譯碼、七段數(shù)碼顯示功能,能顯示時、分、秒計時的結(jié)果。 ④設計提供連續(xù)觸發(fā)脈沖的脈沖信號發(fā)生器, ⑤具有校時單元、鬧鐘單元和整點報時單元。 ⑥確定設計方案,按功能模塊的劃分選擇元、器件和中小規(guī)模集成電路,設計分電路,畫出總體電路原理圖,闡述基本原理。 3、查閱至少5篇參考文獻。按《武漢理工大學課程設計工作規(guī)范》要求撰寫設計報告書。全文用A4紙打印,圖紙應符合繪圖規(guī)范。 時間安排: 1、 2010 年 6 月 28 日集中,作課設具

3、體實施計劃與課程設計報告格式的要求說明。 2、 2010 年 6 月 29 日,查閱相關資料,學習電路的工作原理。 2、 2010 年 6 月 30 日 至 2010 年 7 月 1 日,方案選擇和電路設計。 2、 2010 年 6 月 30 日 至 2010 年 7 月 1 日,電路調(diào)試和設計說明書撰寫。 3、 2010 年 7 月 2 日上交課程設計成果及報告,同時進行答辯。 課設答疑地點:鑒主13樓電子科學與技術實驗室。 指導教師簽名: 年 月 日 系主任(或責任教師)簽名:

4、 年 月 日 摘要 數(shù)字鐘是一種用數(shù)字電路技術實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。 本文基于單片機技術原理,以單片機AT89S51作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設計制作出一個數(shù)字時鐘系統(tǒng)。 本文設計的系統(tǒng)要求可以對時、分、秒進行動態(tài)掃描顯示計時,還具有整點提醒和鬧鈴功能。該電路系

5、統(tǒng)采用AT89S51單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電。 本文從硬件電路到單片機控制器再到微處理器程序進行了一系列的設計,最終將各模塊整合到Proteus中進行仿真,最終在Proteus中仿真的結(jié)果令人滿意。 關鍵字:AT89S51,動態(tài)掃描 Abstract Digital Clock is a digital circuit technology with the hours, minutes, seconds, timing devices, a

6、nd mechanical clock higher than the accuracy and intuitive, and no mechanical devices, with more longer life, so be widespread use. Based on principles of SCM technology to MCU AT89S51 as the core controller, through hardware design and software programming for the design to produce a digital cloc

7、k system. System requirements for this design can be hours, minutes, seconds, and dynamic scanning display timing, and also has alarm function to remind the whole point. The circuit system uses AT89S51 microcontroller as a core, low power, low-voltage work in 3V, the voltage can choose 3 ~ 5V supp

8、ly voltage. This single chip controller from the hardware circuit to process and then to a series of microprocessor design, the module will eventually be integrated into the Proteus in the simulation, the final in the Proteus in the simulation results are satisfactory. Keywords: AT89S51, dyna

9、mic scanning 1.設計目的 設計一個數(shù)字電子鐘,使它滿足以下要求: ① 設計一個數(shù)字鐘。要求用六位數(shù)碼管顯示時間,格式為00:00:00。 ②具有60進制和24進制(或12進制)計數(shù)功能,秒、分為60進制計數(shù),時為24進制(或12進制)計數(shù)。 ③有譯碼、七段數(shù)碼顯示功能,能顯示時、分、秒計時的結(jié)果。 ④設計提供連續(xù)觸發(fā)脈沖的脈沖信號發(fā)生器, ⑤具有校時單元、鬧鐘單元和整點報時單元。 2.方案設計與論證 2.1設計方向選擇 本數(shù)字鐘的設計可以采用門電路結(jié)合其他芯片來組建數(shù)字鐘,但考慮到在使用門電路的過程中使用的器件和芯片會很多,接法比較復雜,而且對

10、于有些要求如整點報時和鬧鈴實現(xiàn)會有點困難。所以選擇門電路來設計多功能時鐘會比較復雜和繁瑣。 本次設計還可以使用單片機來設計電路,相對于門電路來說單片機的設計比較簡單,而且功能比較全面,但、編寫程序會是單片機的一個難點。 2.2時鐘芯片的選擇方案和論證 直接采用單片機定時計數(shù)器提供秒的信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然存在時間誤差,但是可以減少芯片的使用,節(jié)約成本,所以采用此方案。 2.3電路設計最終方案決定 綜上各方案所述,對此次作品的方案選定:采用AT89S52作為主控制系統(tǒng);使用內(nèi)部時鐘電路外接晶振提供時鐘震蕩電路;顯示方法采用 LED數(shù)碼管動態(tài)

11、掃描方法。圖(1)為本次設計的總電路圖: 圖(1) 設計總電路圖 3.部分電路的設計 3.1.LED數(shù)碼管電路設計 本次設計中我們采用了8個共陽LED7段數(shù)碼管構(gòu)成了數(shù)碼顯示電路,其中位選接在單片機的P0口,而在實際之中我們會在之間接一個鎖存器,實現(xiàn)電流的放大,不然LED數(shù)碼管會很暗,影響我們的觀察。本設計中鎖存器使用的是74HC573,其引腳圖和功能表如圖(2)所示。數(shù)碼管的段選接在單片機的P1口。電路圖如圖(3)所示:

12、 圖(2)74HC573引腳圖和功能表 圖(3)LED數(shù)碼管顯示電路 3.2蜂鳴器報時系統(tǒng)設計 本設計用報時和鬧鈴采用的是蜂鳴器組成的發(fā)聲電路,蜂鳴器接在單片機的P3^7口,在之間接一個三極管實現(xiàn)電流的放大,這樣才可以正常的發(fā)出聲音。其部分電路圖如圖(4)所示:       圖(4)蜂鳴器電路圖 在這個電路中我們選擇的三極管是PNP三極管8550,可以有效地完成我們所需要的功能。 4.程序設計 4.1.程序流程圖 我們采用的是C語言編的,其流程圖如圖(5)所示: 開始 初始化 整點報時? 蜂鳴器響 鬧

13、鈴? 調(diào)用顯示函數(shù) 按鍵功能調(diào)節(jié) 圖(5)程序流程圖 4.2.C語言源程序 #include unsigned char code displayCode[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; unsigned char hour,minute,second; unsigned char clockhour,clockminute; unsigned int num; unsigned cha

14、r select,oneminute; bit bdata modeselect; void delay(); void display(unsigned char temp,unsigned char mode); void sound() { while(num<2000) { P3_0=0; } P3_0=1; } void initial() { P0=0; TMOD=0x22; IE=0xCF; IT0=1; IT1=1; T2CON=0; RCAP2L=0xf0; RCAP2H=0x1f;

15、 TH2=0x1c; TL2=0xf0; IP=0X06; TH0=0x48; TL0=0x48; TH1=0X48; TR0=1; PCON=0x01; hour=12; minute=0; second=0; num=0; select=0; clockhour=12; clockminute=0; modeselect=0; } void interrupt0()interrupt 0 using 3 { TR1=1; select++; if(select==7) select=0; if(select==1

16、) ET2=1; oneminute=second-1; } void timer0()interrupt 1 using 3 { num++; if(num==5000) { num=0; second++; } if(second==60) { minute++; second=0; } if(minute==60) { hour++; minute=0; } if(hour==24) hour=0; } void interrupt1()interrupt 2 u

17、sing 3 { oneminute=second-1; modeselect=0; ET2=!ET2; switch(select) { case 4:{ hour++; if(hour==24) hour=0; break; } case 5:{ minute++; if(minute==60) minute=0; break; } case 6:{ second++; if(sec

18、ond==60) second=0; break; } case 2:{ clockhour++; if(clockhour==24) clockhour=0; break; } case 3:{ clockminute++; if(clockminute==60) clockminute=0; break; } default:break; } } void timer1()interrupt

19、3 using 3 { if(select) { if(second==oneminute) { select=0; TR1=0; } } } void timer2()interrupt 5 using 3 { sound(); TF2=0; if(minute!=clockminute&&hour==clockhour) TR2=0; } void delay() { unsigned char i=255; while(--i) { ; } } void display

20、(unsigned char temp,unsigned char mode) { if(temp==4||temp==2) P0=0; else P0=1; if(mode) P1=displayCode[hour/10]; else P1=displayCode[clockhour/10]; delay(); if(temp==4||temp==2) P0=0; else P0=2; if(mode) P1=displayCode[hour%10]; else P1=displayCode[clockhou

21、r%10]; delay(); if(temp==1||temp==2||temp==3) P0=0; else P0=4; P1=0xbf; delay(); if(temp==5||temp==3) P0=0; else P0=8; if(mode) P1=displayCode[minute/10]; else P1=displayCode[clockminute/10]; delay(); if(temp==5||temp==3) P0=0; else P0=16; if(mode) P

22、1=displayCode[minute%10]; else P1=displayCode[clockminute%10]; delay(); if(temp==1||temp==2||temp==3) P0=0; else P0=32; P1=0xbf; delay(); if(temp==6) P0=0; else P0=64; if(mode) P1=displayCode[second/10]; else P1=displayCode[0]; delay(); if(temp==6) P0=0;

23、 else P0=128; if(mode) { if(ET2) P1=displayCode[second%10]+128; else P1=displayCode[second%10]; } else P1=displayCode[0]; delay(); } void main() { initial();   sound();   while(1) { switch(select) { case 0:{ display(0,1);     

24、       break; } case 1:{ if(num<=2500) { display(1,0); } else { display(0,0); } break; } case 2:{ if(num<=2500) { display(2,0); } else { display(0,0)

25、; } break; } case 3:{ if(num<=2500) { display(3,0); } else { display(0,0); } break; } case 4:{ if(num<=2500) { display(4,1); } else {

26、 display(0,1); } break; } case 5:{ if(num<=2500) { display(5,1); } else { display(0,1); } break; } case 6:{ if(num<=2500) { display(6,1); } else

27、 { display(0,1); } break; } default:break; } if(second==0) { if(minute==0||minute==30)      sound(); } if(minute==clockminute&&hour==clockhour) { TR2=1; modeselect=1; } if(modeselect==1&&hour==clockhour&&!((mi

28、nute-clockminute)%5)) TR2=1; } } 5.電路的設計與仿真 我們使用的仿真軟件是protues,系統(tǒng)的仿真圖如圖(6)所示:             圖(6)系統(tǒng)仿真圖 6.心得與體會 在此次的數(shù)字鐘設計過程中,更進一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和其具體的使用方法。每次課程設計是一次難得的鍛煉機會,讓我們能夠充分利用所學過的理論知識還有自己的想象的能力,另外還讓我們學習查找資料的方法,以及自己處理分析電路,設計電路的能力。我相信是對我的一個很好的提高。平時在學習理論知識的時候,我們應該更注重實踐,應付

29、考試有考試的方法。這次的課程設計讓我懂得了它們在實際中的用途,還有我們身邊的很多數(shù)字鐘電路,這些都是我們自己可以實現(xiàn)的,以前那些神秘的東西在不斷的學習過程中變得不再那么神秘,我相信,以后還有更多的謎底被揭開。通過這次課程設計,我還更加深了理論知識的學習。這次的設計電路我用到了單片機的不少功能,通過自己分析和設計更好地運用了它們,而且還學會了它們更多的功能,發(fā)現(xiàn)它們的功能遠比書上說的多很多,可以利用不同的接法設計出各種各樣不同的電路出來。模電課程設計學到得方法在這里可以繼續(xù)使用,比如MULTISIM等學習軟件,給設計提供了很大的便利。課程設計機會不多,這學期很好,有足夠的時間,上學期因為模電課程

30、設計臨近期末才給出來,做得很匆忙,覺得不是敷衍老師,而是敷衍自己。雖然自己很努力的做了,但覺得做得不夠好,難免有點遺憾。這學期本來課不多,課程設計又給得比較早,自己認真做了,覺得還是小有收獲。 碰到的問題越讓人絕望,解決問題之后的喜悅程度就越高。作為工科類的學生,以后工作了難免要碰到許許多多的問題,不要絕望,堅持,直到看到勝利的曙光。 參考文獻 [1] 伍時和,吳友宇,凌玲。數(shù)字電子技術基礎,2009 [2] 王法能. 單片機原理及應用[M]. 科學出版社,2004 [3] 陳 寧. 單片機技術應用基礎[M]. 南京:南京信息職業(yè)技術學院, 2005 [4] 劉 勇. 數(shù)字電路 [M]. 電子工業(yè)出版社, 2005

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!