




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機原理及應用課程課程設計題 目 數字時鐘 院 (系) 信息工程學院 專 業 班 級 11級計算機應用技術2班學 生 姓 名 宮鑫 學 號 設 計 地 點 計算機應用實驗室 指 導 教 師 史先桂 起止時間: 2013年 6月 3日至 2013 年 6 月 14 日摘 要 數字鐘已成為人們日常生活中必不可少的必需品,廣泛用于個人家庭以及辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數字集成電路技術的發展和采用了先進的石英技術,使數字鐘具有走時準確、性能穩定、攜帶方便等優點,它還用于計時、自動報時及自動控制等各個領域。盡管目前市場上已有現成的數字鐘集成電路芯片出售,價格便
2、宜、使用也方便,但鑒于單片機的定時器功能也可以完成數字鐘電路的設計,因此進行數字鐘的設計是必要的。在這里我們將已學過的比較零散的數字電路的知識有機的、系統的聯系起來用于實際,來培養我們的綜合分析和設計電路,寫程序、調試電路的能力。單片機具有體積小、功能強可靠性高、價格低廉等一系列優點,不僅已成為工業測控領域普遍采用的智能化控制工具,而且已滲入到人們工作和和生活的各個角落,有力地推動了各行業的技術改造和產品的更新換代,應用前景廣闊。關鍵詞 : 單片機;數碼管;數字時鐘目錄1 系統功能要求12 設計原理及方案論證22.1數字鐘原理22.2電子時鐘方案22.3數碼管顯示方案33 主控制器和外圍器件4
3、3.1單片機主控芯片43.2 LED驅動芯片43.3 4x4矩陣鍵盤模塊53.4 蜂鳴器模塊53.5 下載線接口電路63.6 DS1302時鐘模塊63.7 單片機晶振模塊74 系統硬件電路設計84.1 單片機整體功能模塊圖84.2 單片機蜂鳴器和數碼管連接圖84.2 單片機矩陣鍵盤連接圖94.3 單片機時鐘模塊和晶振連接圖95 軟件程序設計106 實驗測試部分206.1測試結果206.1.1電子鐘正常的運行206.1.2電子鐘矯正時間后的運行206.2測試結果分析與結論217總結228參考文獻231 系統功能要求本次設計時鐘電路,使用了AT89S52單片機芯片控制電路,單片機控制電路簡單且省去
4、了很多復雜的線路,使得電路簡明易懂。同時使用C語言程序來控制整個時鐘顯示,使得編程變得更容易,這樣通過四個模塊:鍵盤、芯片、蜂鳴器、數碼管顯示即可滿足設計要求。(1)準確計時,以數字形式顯示時、分、秒的時間。(2)小時以24小時計時形式,分秒計時為60進位。(3)校正時間功能,即能隨意使用鍵盤鍵上的按鍵來調整時鐘的時、分、秒。(4)鬧鐘功能,一旦走時到該時間,能以用蜂鳴器來進行定時提醒。2 設計原理及方案論證2.1數字鐘原理數字鐘實際上是一個對標準頻率(1HZ)進行計數的計數電路.由于計數的起始時間不可能與標準時間一致,故需要在電路上加一個校時電路,同時標準的1MHZ時間信號必須做到準確穩定.
5、通常使用石英晶體振蕩器電路構成數字鐘. (1) 晶體振蕩器 晶體振蕩器給數字鐘提供一個頻率穩定準確的11.0592MHz的方波信號,可保證數字鐘的走時準確及穩定.不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器。 (2) 復位電路 時間計數電路由秒個位和秒十位計數器,分個位和分十位計數器,時個位和時十位電路構成,秒個位和秒十位計數器,分個位和分十位計數器為60進制計數器,時個位和時十位計數器為24進制計數器。 (3) 數碼管 數碼管通常有發光二極管(LED)數碼管和液晶(LCD)數碼管,本設計提供的為LED數碼管。 (4) 鍵盤 鍵盤是控制和修改時鐘的重要輸入模塊,通過鍵盤可以修改時
6、間,修改鬧鐘時間,控制顯。2.2電子時鐘方案方案一:本方案采用DS1302。該芯片內部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,因此,可直接對其以用于顯示或設置,使得軟件編程相對簡單。為保證時鐘在電網電壓不足或突然掉電等突發情況下仍能正常工作,芯片內部包含鋰電池。當電網電壓不足或突然掉電時,系統自動轉換到內部鋰電池供電系統。而且即使系統不上電,程序不執行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間。方案二:本方案完全用軟件實現數字時鐘。原理為:在單片機內部存儲器設6個字節分別存放時鐘的時、分、秒信息。利用定時器與軟件結合實現1秒定時中斷,每產生一次
7、中斷,存儲器內相應的秒值加1;若秒值達到60,則將其清零,并將相應的分字節值加1;若分值達到60,則清零分字節,并將時字節值加1;若時值達到24,則將十字節清零。該方案具有硬件電路簡單的特點。但由于每次執行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現,當單片機不上電,程序不執行時,時鐘將不工作。電子時鐘是本設計的最主要的部分。根據需要,可利用兩種方案實現。基于硬件電路的考慮,本設計采用方案二完成數字時鐘的功能。2.3數碼管顯示方案方案一:靜態顯示。所謂靜態顯示,就是當顯示器顯示某一字符時,相應的發光二極管恒定的導通或截止。該方式每一位都需要一個8 位輸出口控制。靜態顯
8、示時較小的電流能獲得較高的亮度,且字符不閃爍。但當所顯示的位數較多時,靜態顯示所需的I/O口太多,造成了資源的浪費。方案二:動態顯示。所謂動態顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導通電流有關,也于點亮時間與間隔時間的比例有關。調整參數可以實現較高穩定度的顯示。動態顯示節省了I/O口,降低了能耗。 從節省I/O口和降低能耗出發,本設計采用方案二。3 主控制器和外圍器件3.1單片機主控芯片本實驗采用AT89S52芯片。(1)8 位的 CPU, 片內有振蕩器和時鐘
9、電路,工作頻率為 024MHz(2)片內有 256字節 數據存儲器 RAM(3)片內有 8K字節 程序存儲器 ROM(4)4個8位 的并行I/O口(P0、P1、P2、P3)(5)1個 全雙工串行通訊口(6)3個16位 定時器/計數器(T0、T1、T2)(7)可處理 6個中斷源,兩級中斷優先級圖3.13.2 LED驅動芯片本實驗采用兩個74HC573鎖存器。數碼管的段ABCDEFGH對應74HC573-1芯片,數碼管的位WE1WE6對應74HC573-2芯片。DU P2.6段選信號控制74HC573-1鎖存器,WE P2.7位選信號控制74HC573-2鎖存器。兩個鎖存器IO口接P00到P07,
10、對應PCB網絡編號D0到D7。圖3.23.3 4x4矩陣鍵盤模塊本實驗采用4x4矩陣鍵盤INT1、LCDEN、RS、WR、RD、P30 P32對應AT89S52芯片上的INT1、LCDEN、RS、WR、RD、P30 P32 IO口。圖3.33.4 蜂鳴器模塊本實驗蜂鳴器FM接到AT89S52芯片上的P23 IO口,對應的PCB網絡編號為FM。圖3.43.5 下載線接口電路本實驗下載線接口電路P30、P31引腳接到AT89S52芯片上的P30、P31 IO口上。圖3.53.6 DS1302時鐘模塊本實驗時鐘模塊CLK和I/O口接到AT89S52芯片上的P21、P20 IO口上。圖3.63.7 單
11、片機晶振模塊 本實驗晶振模塊X1、X2接到AT89S52芯片上的X1、X2 IO口。圖3.74 系統硬件電路設計4.1 單片機整體功能模塊圖蜂鳴器模塊對應AT89S52的P23 IO端口;矩陣鍵盤具體的掃描由P3端口控制;下載線接口電路通過P30和P31連接控制。圖4.14.2 單片機蜂鳴器和數碼管連接圖蜂鳴器模塊對應AT89S52的P23 IO端口;數碼管模塊的段選信號由P26控制,位選信號由P27控制,數碼管具體顯示由P0端口控制;圖4.24.2 單片機矩陣鍵盤連接圖4x4矩陣鍵盤INT1、LCDEN、RS、WR、RD、P30 P32對應AT89S52芯片上的INT1、LCDEN、RS、W
12、R、RD、P30 P32 IO口。圖4.24.3 單片機時鐘模塊和晶振連接圖DS1302時鐘模塊則通過P21和P20連接控制;單片機晶振通過X1和X2連接控制;圖4.35 軟件程序設計#include#define uchar unsigned charsbit dula=P26;sbit wela=P27;sbit beep=P23;unsigned char j,k,a1,a0,b1,b0,c1,c0,s,f,m,key=10,temp,qq;uchar shi20,shi10,fen20,fen10,miao20,miao10,ok=1,wei,dingshi,change,yiding
13、shi;uchar baoshi,baoshijieshu;unsigned int pp;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/*延時函數*/void delay(unsigned char i) for(j=i;j0;j-) for(k=125;k0;k-);/*六個數碼管動態掃描顯示時,分,秒*/void display(uchar shi2,uchar shi1,uchar fen2,uchar fen1,uch
14、ar miao2,uchar miao1) dula=0; P0=tableshi2; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=tableshi1|0x80; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5); P0=tablefen2; dula=1; dula=0; P0=0xfb; wela=1; wela=0; delay(5); P0=tablefen1|0x80; dula=1; dula=0; P0=0xf7; wela=1; wela=0; de
15、lay(5); P0=tablemiao2; dula=1; dula=0; P0=0xef; wela=1; wela=0; delay(5); P0=tablemiao1; dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(5);/*通過矩陣鍵盤的S18和S19鍵設置定時和取消定時,S16為暫停進入矯正時間狀態,S17為繼續計時*/void keyscan0() P3=0xfb; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(te
16、mp) case 0xbb:ok=0;change=1; break; case 0x7b:ok=1;change=0;dingshi=0;break; P3=0xf7; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xe7:ok=0;dingshi=1;break; case 0xd7:yidingshi=0; break; /取消定時 /*通過矩陣鍵盤S6S15設置時鐘具體時間時間*/void keyscan() P3=0xfe; temp=P3;
17、temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xee:key=0;wei+;break;case 0xde:key=1;wei+;break; case 0xbe:key=2;wei+;break; case 0x7e:key=3;wei+;break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; P3=0xfd; temp=P3; temp=temp&0xf0; if(temp!=0xf0) de
18、lay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xed:key=4;wei+;break;case 0xdd:key=5;wei+;break;case 0xbd:key=6;wei+;break;case 0x7d:key=7;wei+;break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; P3=0xfb; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; sw
19、itch(temp) case 0xeb:key=8;wei+;break;case 0xdb:key=9;wei+;break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; /*主函數設置時鐘和定時時間時,分,秒的進制轉換*/void main() TMOD=0x01; /*由于晶振為11.0592,故所記次數應為46080,計時器每隔50000微秒發起一次中斷。*/TH0=(65536-46080)/256;TL0=(65536-46080)%256;/46080的來歷,為50000*11.0592/12ET0=1;
20、EA=1;while(1)keyscan0();if(ok=1) TR0=1; wei=0;if(pp=20) pp=0;m+;if(m=60) m=0; f+; if(f=60) f=0;s+;if(s=24) /為24h一個循環,若要12h,只需在此改為12即可。 s=0; a0=s%10;a1=s/10;b0=f%10;b1=f/10;c0=m%10;c1=m/10;display(a1,a0,b1,b0,c1,c0);elseif(change=1) TR0=0;keyscan();if(key!=10) switch(wei) case 1: if(key3)/小時最高位為2a1=k
21、ey;elsewei-;break;case 2: if(a1=1|a1=0)a0=key;elseif(key5)a0=key; /當小時最高位為2時,低位最高為4break;case 3: if(key6)/分鐘最高位為5b1=key;elsewei-;break;case 4: b0=key; break;case 5: if(key6)/秒最高位為5c1=key; elsewei-;break;case 6: c0=key; break;key=10;m=c1*10+c0;f=b1*10+b0;s=a1*10+a0;display(a1,a0,b1,b0,c1,c0);if(dings
22、hi=1) TR0=0;display(shi20,shi10,fen20,fen10,miao20,miao10);keyscan();if(key!=10)switch(wei) case 1: if(key3)/小時最高位為2shi20=key;elsewei-;break;case 2: if(a1=1|a1=0)shi10=key;elseif(key5)a0=key; /當小時最高位為2時,低位最高為4break;case 3: if(key6)/分鐘最高位為5fen20=key;elsewei-;break;case 4: fen10=key; break;case 5: if(
23、key6)/秒最高位為5miao20=key; elsewei-;break;case 6: miao10=key; break;key=10;yidingshi=1;display(shi20,shi10,fen20,fen10,miao20,miao10);if(yidingshi=1) if(a1=shi20)&(a0=shi10)&(b1=fen20)&(b0=fen10)&(c1=miao20)&(c0=miao10) beep=0;if(a1=shi20)&(a0=shi10)&(b1=fen20)&(b0=fen10+1)&(c1=miao20)&(c0=miao10)|(yidingshi=0)/一分鐘報時提示beep=1;/*定時器T0中斷函數*/void time0() interrupt 1TH0=(65536-46080)/256;TL0=(65536-46080)%256;pp+;6 實驗測試部分6.1測試結果6.1.1電子鐘正常的運行圖6.16.1.2電子鐘矯正時間后的運行圖6.26.2測試結果分析與結論
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學生海邊活動策劃方案
- 小學生介紹班級活動方案
- 少先隊巡講活動方案
- 小學航天項目活動方案
- 帶貨公司大掃除活動方案
- 小學生創意小組活動方案
- 工會最美驛站活動方案
- 小水雀巢活動方案
- 干預公司正常經營活動方案
- 小學藝術字比賽活動方案
- 2022年07月湖南郴電國際發展股份有限公司招聘105名新員工筆試題庫含答案解析
- 三年級綜合實踐制作校園提示牌
- 《持輕物擲準》教案
- 五和大成一卡通管理系統用戶手冊 v9.8x
- 國開本科-金融學-機考期末考試必過版
- 云南省普通高中學業水平考試數學試卷
- 【課件】全面發展素質教育構建五育并舉育人體系 課件
- 附件2:“揭榜掛帥”制項目申報材料參照模板
- 同性愛教育課件
- 機械制圖(識圖培訓)
- (3.9.1)-局限期小細胞肺癌的治療
評論
0/150
提交評論