基于單片機電子時鐘的設計_第1頁
基于單片機電子時鐘的設計_第2頁
基于單片機電子時鐘的設計_第3頁
基于單片機電子時鐘的設計_第4頁
基于單片機電子時鐘的設計_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、姓名:劉韶輝學號: 1402250232 班級:自動化11402 成績:指導老師:吳玉蓉設計時間:2016年12月26日2017年1月5日目錄1.設計要求.12.系統(tǒng)總體方案234.系統(tǒng)軟件設計.45.課程設計體會.156.參考文獻157.系統(tǒng)實物圖.16附錄1 電路原理圖17附錄2 原件清單.18一、設計要求利用51單片機開發(fā)電子時鐘,實現時間顯示、調整功能。具體要求如下:(1) 按以上要求制定設計方案,并繪制出系統(tǒng)工作框圖;(2) 按要求設計部分外圍電路,并與單片機仿真器、單片機實驗箱、電源等正確可靠的連接,給出電路原理圖;(3) 用仿真器及單片機實驗箱進行程序設計與調試;(4) 利用鍵盤

2、輸入調整秒、分和小時時刻,數碼管顯示時間;二、系統(tǒng)總體方案1.時鐘計數:形成秒、分、小時,系統(tǒng)時間采用24小時制。利用單片機內部的定時器/計數器來實現,它的處理過程如下:首先設定單片機內部的一個定時器/計數器工作于定時方式,對機器周期計數形成基準時間(如10ms),然后用另一個定時器/計數器或軟件計數的方法對基準時間計數形成秒(對10ms計數100次),秒計60次形成分,分計60次形成小時,小時計24次則計滿一天。2.顯示:采用8個LED顯示系統(tǒng)當前時間,顯示格式為“時-分-秒”(如12-25-09)。3.設置功能:用戶可以對系統(tǒng)的時間進行設置。沒有按鍵時,則時鐘正常走時。當按下K0鍵,進入調

3、分狀態(tài),時鐘停止走動,此時,按K1或K2鍵可進行加1或減1操作;繼續(xù)按K0鍵可分別進行分和時的調整,此時,按K1或K2鍵可進行加1或減1操作;最后按K0鍵將退出調整狀態(tài),時鐘開始計時運行。STC89C51復位電路電源電路按鍵電路顯示電路晶振電路三、硬件電路設計1.時鐘電路(晶振電路)單片機利用外部12MHZ晶振構成振蕩電路作為時鐘源,單片機內部具有一個高增益反向放大器,用于構成振蕩器。通常在引腳XTAL1和XTAL2跨接石英晶體和兩個補償電容構成自激振蕩器,結構如圖所示:圖2 時鐘電路圖2.按鍵電路按鍵處理設置為:當有沒鍵按下時,時鐘正常運行;當按一次K1,時鐘停止走動,按K2對秒進行調整;當

4、K1按2次時,按K2 對分進行調整;當K1按下3次時,按K2 對小時進行調整,當按下4次K1時,校時完畢,時鐘按設定的時間進行正常走時。當按1次K3進入鬧鐘設置界面,時鐘繼續(xù)進行走時,按K2對秒進行設置;當按2次K3,按K2對分進行設置;當按3次K3,按K2對秒進行設置;當按下4次K3時,鬧鐘設置完畢進入時鐘顯示界面。電路如下圖:圖3 獨立按鍵電路單片機小系統(tǒng)常采用上電自動復位和手動按鍵復位兩種方式實現系統(tǒng)的復位操作,上電復位要求接通電源后,自動實現復位操作,手動復位要求在電源接通的條件下,在單片機運行期間,用按鈕開關操作使單片機復位,其結構圖如下圖,上電自動復位通過電容C充電來實現,手動按鍵

5、復位是通過按鍵將電阻R與Vcc接通來實現。圖4 復位電路4.單片機系統(tǒng)STC89C51是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有 4K 在系統(tǒng)可編程Flash存儲器。STC89C51使用經典的MCS-51內核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU和在系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被圖5 單片機系統(tǒng)凍結,單片機一切

6、工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。5. 數碼管顯示電路將所有數碼管的8個顯示段碼a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的COM端,就使各個數碼管輪流受控顯示,電路如下圖:圖6 數碼管顯示電路四、軟件設計本系統(tǒng)的軟件系

7、統(tǒng)主要可分為主程序、定時計數中斷程序、按鍵程序、延時程序四大模塊。設計思路:本系統(tǒng)主要可分為主程序、定時計數中斷程序、按鍵程序、延時程序和共陰極數碼管顯示程序。定時中斷程序是利用單片機內部定時器0實現1秒的定時,然后利用軟件延時實現分小時,時間調整程序是利用單片機的內部存貯器,把調整好的時間寫到顯示時間的存貯單元,然后啟動定時器開始計時并顯示,延時程序是利用軟件實現延時達到去抖的目的和數碼管動態(tài)顯示的延時。主程序就是利用這些子程序中斷程序實現顯示、定時等功能。1.軟件流程圖(1)主程序開始初始化鍵盤掃描顯示(2)鍵盤掃描程序開始計時滿1s秒加1滿60s開始時間顯示時清零時滿24分清零,時加1分

8、滿60秒清零,分加1(3)顯示程序開始時間數據個十位分離i=0i8 ?送位選碼結束消隱送段選碼2、程序清單#include#define uint unsigned int#define uchar unsigned charuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;sbit k0=P10;sbit k1=P11;sbit k2=P12;int s0,s1,min0,min1,h0,h1,shi,fen,miao,count,slnum,a0,a1,b0,b1,c0,c1;void delay

9、(uint z) /延時函數1msuintx,y;for(x=z;x0;x-)for(y=90;y0;y-);void init() /初始化函數 P0=table0; P2=0xff;shi=23; fen=59;/上電時間23-59-50miao=50; s1=miao/10; s0=miao%10; min1=fen/10; min0=fen%10; h1=shi/10; h0=shi%10;/分離出個位十位 TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256;/基準時間為20ms EA=1; ET0=1; TR0=1;/打開中

10、斷定時器void display0() / P2=0x80; P0=tableh1;delay(1); P0=0x00;/消隱 P2=0x40; P0=tableh0;delay(1); P0=0x00; P2=0x20; P0=0x40;delay(1); P0=0x00; P2=0x10; P0=tablemin1;delay(1); P0=0x00; P2=0x08; P0=tablemin0;delay(1); P0=0x00; P2=0x04; P0=0x40;/讓時分秒中間顯示“”delay(1); P0=0x00; P2=0x02; P0=tables1;delay(1); P0

11、=0x00; P2=0x01; P0=tables0;delay(1); P0=0x00;void display2()該顯示函數是讓閃爍顯示函數的子函數 P2=0x80; P0=tablea1;delay(1); P0=0x00; P2=0x40; P0=tablea0;delay(1); P0=0x00; P2=0x20; P0=0x40;delay(1); P0=0x00; P2=0x10; P0=tableb1;delay(1); P0=0x00; P2=0x08; P0=tableb0;delay(1); P0=0x00; P2=0x04; P0=0x40;delay(1); P0=

12、0x00; P2=0x02; P0=tablec1;delay(1); P0=0x00; P2=0x01; P0=tablec0;delay(1); P0=0x00;void display3()閃爍顯示函數,用于未松手閃爍int n;for(n=0;n40;n+) display0(); for(n=0;n35;n+) display2(); void kryscan() /鍵盤掃描函數if(k0=0) delay(3);/延時去抖 if(k0=0)/確認K0已按下 slnum+;while(!k0)/判斷是否松手 display0();/未松手閃爍顯示if(slnum=1) TR0=0;/

13、關閉定時器,時鐘停止走動 c1=10; c0=10; a1=h1; a0=h0; b0=min0; b1=min1;/讓秒鐘閃,時鐘分鐘顯示 if(slnum=2) c1=s1; c0=s0; a1=h1; a0=h0; b0=10; b1=10;/讓分鐘閃,秒鐘時鐘顯示 if(slnum=3) c1=s1; c0=s0; a1=10; a0=10; b0=min0; b1=min1;/讓時鐘閃,秒鐘分鐘顯示 if(slnum=4) c1=s1; c0=s0; a1=h1; a0=h0; b0=min0; b1=min1;slnum=0;/全部顯示,不閃爍 TR0=1;/打開定時器,時鐘繼續(xù)

14、if(slnum!=0) if(k1=0) delay(3); if(k1=0)/K1是否按下 while(!k1)/判斷是否松手 display3();/閃爍顯示if(slnum=1) miao+;if(miao=60)miao=0; s1=miao/10; s0=miao%10;/秒鐘加一 if(slnum=2) fen+;if(fen=60)fen=0; min1=fen/10; min0=fen%10;/分鐘加一 if(slnum=3) shi+;if(shi=24)shi=0; h1=shi/10; h0=shi%10;/時鐘加一 if(k2=0) delay(3);if(k2=0)

15、 while(!k2)display3();if(slnum=1) miao-;if(miao=-1)miao=59; s1=miao/10; s0=miao%10;/秒鐘減一 if(slnum=2) fen-;if(fen=-1)fen=59; min1=fen/10; min0=fen%10;/分鐘減一 if(slnum=3) shi-;if(shi=-1)shi=23; h1=shi/10; h0=shi%10;/時鐘減一 void display1()/按鍵檢查閃爍顯示函數int n;for(n=0;n40;n+) display0();kryscan(); for(n=0;n35;n

16、+) display2();kryscan(); void main() /主函數init();while(1) display0();kryscan();if(!slnum=0)display1(); void timer0() interrupt 1 /中斷函數 TH0=(65536-50000)/256; TL0=(65536-50000)%256;count+;if(count=20) count=0;miao+;if(miao=60) miao=0; fen+; if(fen=60) fen=0;shi+;if(shi=24)shi=0; h1=shi/10; h0=shi%10;

17、min1=fen/10; min0=fen%10; s1=miao/10; s0=miao%10; 五、設計心得體會通過本次課程設計,加強了我對單片機這門課程的理解與熟悉,而且這次設計使我的動手能力更有顯著的提高,讓我獲益良多,也使我更加扎實的掌握了有關電子線路單片機方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查,我終于找出了問題的所在,也暴露出了我在這方面的知識欠缺和經驗不足。實踐才能出真知,實踐才是檢驗真理的唯一標準,唯有通過親手制作,才能令我們掌握知識。在這次的課程設計中,我們遇到了很多困難,過程很艱難,但是我們都克服了,這是對我們自己的肯定。我們不

18、斷發(fā)現錯誤,不斷改正,不斷領悟,不斷獲取。不可否認,單片機是一門比較難的專業(yè)學科。但是經過這一學期的學習,我覺得單片機這門課很好,讓我們在設計中掌握課程,具有很強的實用性。在社會上,單片機應用極其廣泛。通過這次課程設計罵我掌握了常用元件的識別和測試,熟悉了常用儀器儀表;了解了電路的連接方法;以及如何提高電路的性能等。六、參考文獻及網站1、單片機原理及應用 羅維平 李德駿 編 華中科技大學出版社。2、單片微型計算機原理與接口技術 高峰 編 電子工業(yè)出版社。3、單片機應用新技術教程鄒逢興 編 高等教育出版社。4、16位微型計算機原理接口及其應用 朱宇光 編 電子工業(yè)出版社。5、微型計算機原理與接口技術 吳秀清 編 中國科學技術出版社。6、微型計

溫馨提示

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

評論

0/150

提交評論