版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課 程 設(shè) 計 任 務(wù) 書題目 電子時鐘系統(tǒng)設(shè)計 專業(yè)、班級 電信11-02 學(xué)號 541101030218 姓名 李瑞 主要內(nèi)容、基本要求、主要參考資料等:一、主要內(nèi)容: 熟悉單片機應(yīng)用系統(tǒng)的設(shè)計方法和規(guī)范,達到綜合的目的。 學(xué)習(xí)文件檢索和查找數(shù)據(jù)手冊的能力。 學(xué)習(xí)protel軟件的使用。 學(xué)會整理和總結(jié)設(shè)計文檔報告。二、基本要求: 以MCS-51系列單片機為核心,組成一個電子時鐘系統(tǒng)。 系統(tǒng)顯示由6位數(shù)碼管顯示組成,分別顯示時間值的時、分、秒。 能夠隨時對當(dāng)前時間進行調(diào)整。 能夠隨時輸入定時(鬧鐘)時間。 定時(鬧鐘)時間到,發(fā)出鬧鐘提醒信號。 鬧鐘提醒信號的聲音為斷續(xù)形式,最長不超過1分
2、鐘。三、主要參考資料: 張毅坤等 單片微型計算機原理及應(yīng)用 西安 西安電子科技大學(xué)出版社 李建忠編著 單片機原理及應(yīng)用 西安 西安電子科技大學(xué)出版社完 成 期 限:2015年1月17日 指導(dǎo)教師簽名: 課程負責(zé)人簽名: 2015年 1月 4 日目 錄摘 要11 設(shè)計方案選擇21.1 單片機選型21.2 按鍵模塊21.3 顯示模塊21.4 計時參考模塊31.5 顯示器驅(qū)動模塊31.6 鬧鐘響鈴模塊41.7 電源模塊42 硬件接線及設(shè)計42.1 單片機晶振配置52.2復(fù)位電路設(shè)計52.3 按鍵電路設(shè)計62.4 蜂鳴器驅(qū)動電路設(shè)計62.5 顯示模塊電路設(shè)計73 軟件部分73.1 主函數(shù)流程圖73.2
3、 定時器T0中斷服務(wù)程序流程圖83.3 鬧鐘響應(yīng)程序流程圖93.4 鍵盤掃描程序流程圖104 系統(tǒng)綜述114.1 上電界面114.2 調(diào)時界面114.3 鬧鐘設(shè)定界面114.4 正常走時界面124.5 鬧鐘響應(yīng)12附錄1 總體設(shè)計電路圖15附錄2 PCB圖16附錄3 元件清單17附錄4 總程序18摘 要單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣泛、發(fā)展很快。Intel公司生產(chǎn)的MCS-8051系列單片機是各單片機中最為典型和最有代表性的一種。本次設(shè)計以MCS-8051芯片為核心,輔助以必要的外圍電路,設(shè)計了一個結(jié)構(gòu)簡單功能齊全的數(shù)值時鐘。在硬件方面,
4、單片機外接12MHz芯片進行驅(qū)動。通過數(shù)碼管能夠準確明亮的顯示時、分、秒;四個簡單的按鍵實現(xiàn)對時間的調(diào)整;蜂鳴器實現(xiàn)鬧鐘響鈴功能;軟件方面采用c語言編程。整個電子鐘系統(tǒng)能完成時間的顯示、調(diào)試和一組定時鬧鐘的功能。 關(guān)鍵詞:51單片機 定時器 鬧鐘 數(shù)碼管1 設(shè)計方案選擇1.1 單片機選型 根據(jù)選題芯片采用MCS-8051單片機,Intel公司生產(chǎn)的 51 系列 8 位單片機,憑借其成熟的技術(shù)標(biāo)準和很高的性價比得到了廣泛的普及與應(yīng)用,其功能強大,用來做電子表硬件易實現(xiàn),編程規(guī)范。1.2 按鍵模塊 方案一:4×4行列式鍵盤如果選擇此方案,那么在修改時鐘或設(shè)置鬧鈴時間時就可以直接從鍵盤輸入
5、,方便、快捷。缺點也很明顯,一是浪費按鍵,用全鍵盤來實現(xiàn)設(shè)定時間的小功能不免大材小用;二是從實用性考慮,全鍵盤體積大,明顯不經(jīng)濟不方便。故放棄。 方案二:獨立式按鍵如果設(shè)置過多按鍵,將會占用較多I/O口,而且會給布線帶來不便,同時浪費按鍵,不高效,程序繁瑣。本次設(shè)計適用于按鍵較少的情況。為了盡量實現(xiàn)按鍵的高效性,此次設(shè)計采用四個獨立式按鍵,分別定義為key_mode、key_add、key_move,key_confirm,依次是模式鍵、加數(shù)鍵、移位鍵、確認鍵。1.3 顯示模塊方案一:液晶顯示器LCD如果選擇此方案,將會降低系統(tǒng)的功耗,可以用電池供電,便于攜帶,但液晶顯示器的驅(qū)動電路復(fù)雜,使用
6、起來有一定的難度。 方案二:數(shù)碼管LED數(shù)碼管的驅(qū)動電路簡單,使用方便,如果選擇了此方案,那么在夜間看時間的時候就不需要有光源,非常方便。其缺點是功耗較大。 按照此次任務(wù)書設(shè)計要求,選擇兩個4位一體七段數(shù)碼管用于顯示。1.4 計時參考模塊方案一:專用時鐘芯片如果使用時鐘芯片,系統(tǒng)就不怕掉電且時間精確,但這種芯片比較貴,浪費資源不經(jīng)濟。方案二:單片機內(nèi)部定時/計數(shù)器由于本次設(shè)計本主要是為了學(xué)習(xí)單片機程序的編寫和調(diào)試,以及設(shè)計硬件電路的一些方法,因此采用軟件的方法來計時。本次設(shè)計用單片機內(nèi)部定時/計數(shù)器T0作為電子時鐘參考。1.5 顯示器驅(qū)動模塊 由于通過數(shù)碼管公共極的電流較大,單片機I/O口驅(qū)動
7、能力是不夠的,故LED驅(qū)動模塊必不可少。為避免過多地使用分立元件,本次設(shè)計采用一片 74LS245來驅(qū)動位碼,用P2口進行位選掃描。 圖1 74LS245元件封裝圖74LS245是常用來驅(qū)動LED或者其他的設(shè)備,它是 8 路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù),74LS245還具有雙向三態(tài)功能。片選端,接低電平時傳輸數(shù)據(jù),接高電平時A、B均為高阻態(tài)。方向選擇端AB/,接高電平時信號由A向B傳輸(發(fā)送),接低電平時信號由B向A傳輸(接收)。1.6 鬧鐘響鈴模塊 通過三極管放大后驅(qū)動蜂鳴器工作,單片機I/O接三極管基極。1.7 電源模塊本系統(tǒng)采用了數(shù)碼管作為顯示器,功耗較大,不便于使用電池供電。
8、況且本系統(tǒng)的體積較大,即使使用電池供電也不便于隨身攜帶,因此用5V外部穩(wěn)壓電源來供電。2 硬件接線及設(shè)計8位七段LED顯示器MCS-8051段碼驅(qū)動晶 振復(fù)位電路位碼驅(qū)動按 鍵蜂鳴器圖2 系統(tǒng)硬件框圖2.1 單片機晶振配置圖3 單片機晶振配置和復(fù)位電路晶振選擇 12MHz ,接到如圖所示引腳。2.2復(fù)位電路設(shè)計圖4 復(fù)位電路復(fù)位電路兼具上電復(fù)位功能以及按鍵復(fù)位功能,接到如圖所示引腳。2.3 按鍵電路設(shè)計圖5 按鍵電路采用4個獨立按鍵配以4個上拉電阻實現(xiàn)對時鐘和鬧鐘的設(shè)定及修改。四個獨立式按鍵分別定義為key_mode、key_add、key_move、key_confirm,依次是模式鍵、調(diào)時
9、加鍵、調(diào)時移位鍵、確認鍵。2.4 蜂鳴器驅(qū)動電路設(shè)計圖6 蜂鳴器驅(qū)動電路蜂鳴器采用NPN三極管放大電路驅(qū)動,接到如圖所示引腳。2.5 顯示模塊電路設(shè)計顯示設(shè)備為共陽7段數(shù)碼管(LED),用單片機P0口作為LED段選控制端,用單片機P2口作為LED位選控制端,并采用集成塊74LS245作為位驅(qū)動模塊。片選端接地,方向選擇端AB/接電源。3 軟件部分3.1 主函數(shù)流程圖開 始初始化定時器T0循環(huán)中斷計時主循環(huán)鍵盤掃描鬧鐘判定顯示響應(yīng)鬧鐘響應(yīng)結(jié) 束圖7 主函數(shù)程序流程圖開 始3.2 定時器T0中斷服務(wù)程序流程圖T0重裝初值t+1t=20?t=0, sec+1sec=60??sec=0, min+1m
10、in=60??min=0, hour+1hour=24??hour=0結(jié) 束圖8 定時器T0中斷服務(wù)程序流程圖3.3 鬧鐘響應(yīng)程序流程圖開 始鬧鐘判定鬧鐘定時到?鬧鐘打開?key_confirm按下?響鈴一分鐘關(guān)閉蜂鳴器結(jié) 束圖9 鬧鐘響應(yīng)程序流程圖3.4 鍵盤掃描程序流程圖開 始鍵盤掃描有鍵按下?鍵盤抖動?key_confirmkey_movekey_addkey_modeconfirm();mov+1add( );moshi+1moshi>2?mov>2?moshi=0mov=0結(jié) 束 圖10 鍵盤掃描程序流程圖4 系統(tǒng)綜述4.1 上電界面電子表上電后自動初始化,接著從 00-
11、00-00 開始走時,顯示正常走時界面,此時鬧鐘默認關(guān)掉。按下key_mode鍵,可依次切換到調(diào)時界面、調(diào)鬧鐘界面、正常走時界面,如此循環(huán)往復(fù)。上電初始化后,調(diào)時初值為00 00-00,鬧鐘初值為00-00 00。4.2 調(diào)時界面調(diào)時界面,從左至右依次顯示時、分、秒,數(shù)字右下角小點代表調(diào)整位到達位置。在調(diào)時界面下,按下key_move鍵可以移動調(diào)整位,數(shù)字下標(biāo)小點用以指示當(dāng)前操作的數(shù)位,按下key_add鍵可以對調(diào)整位進行加數(shù)操作。當(dāng)且僅當(dāng)在調(diào)時界面下,按下key_confirm鍵可確認設(shè)定,電子表按設(shè)定時間更新并走時,同時自動清零設(shè)定時間。此時再按 key_mode鍵切換回正常走時界面即能看
12、到時間已經(jīng)更新。如果調(diào)時后沒有按下key_confirm鍵確認,而是直接按key_mode鍵切換回正常走時界面,則設(shè)置時間被保存,當(dāng)前時間并不更新。4.3 鬧鐘設(shè)定界面鬧鐘設(shè)定界面,從左至右依次顯示時、分、秒,數(shù)字右下角小點代表調(diào)整位到達位置。在鬧鐘設(shè)定界面下,按下key_move鍵可以移動調(diào)整位,數(shù)字下標(biāo)小點用以指示當(dāng)前操作的數(shù)位,按下key_add鍵可以對調(diào)整位進行加數(shù)操作。鬧鐘設(shè)置好后直接按key_mode鍵返回正常正常走時界面即可,無需按key_confirm鍵確認,鬧鐘設(shè)定值會自動保存。4.4 正常走時界面正常走時界面,從左至右依次顯示時、分、秒,小點亮滅代表鬧鐘開閉。在正常走時界面
13、下,按下key_add鍵和key_move鍵不產(chǎn)生操作,LED顯示無變化;按下key_confirm鍵可循環(huán)開閉鬧鐘,LED顯示對應(yīng)變換提示鬧鐘的開閉;按下key_mode鍵可依次切換到調(diào)時模式、鬧鐘設(shè)定模式、正常走時模式,循環(huán)往復(fù)。4.5 鬧鐘響應(yīng)當(dāng)正常走時到達鬧鈴設(shè)定值后,鬧鈴響應(yīng),正常情況下持續(xù)蜂鳴一分鐘后自動關(guān)閉蜂鳴器。鬧鈴響鈴過程中,若按下key_confirm鍵可立刻關(guān)閉蜂鳴器。鬧鈴響應(yīng)后自動等待下次響應(yīng)。總 結(jié)在這次課程設(shè)計中,運用到了很多以前的專業(yè)知識,雖然過去從未獨立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計的一大收獲。另外,要做好一個課程設(shè)
14、計,就必須做到:在設(shè)計程序之前,對所用單片機的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機內(nèi)有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正常德,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設(shè)計結(jié)束了,但是從中學(xué)到的知識會讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)
15、計過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,不能靈活運用。參考文獻1 鄭君里,應(yīng)啟珩,楊為理. 信號與系統(tǒng)(第二版)上冊M. 高等教育出版社,20002 鄭君里,應(yīng)啟珩,楊為理. 信號與系統(tǒng)(第二版)下冊M. 高等教育出版社,20003 譚浩強. C程序設(shè)計(第二版)M. 清華大學(xué)出版社,20034 于京 51系列單片機C程序設(shè)計與應(yīng)用案例M北京:中國電力出版社,20065 孫育才 ATMEL新型AT89S5
16、2系列單片機及其應(yīng)用M北京:清華大學(xué)出版社, 20056 吳堅,劉高平.基于GPRS網(wǎng)絡(luò)的點對點圖像傳輸方案J.計算機應(yīng)用研究,2004,附 錄附錄1 總體設(shè)計電路圖附錄2 PCB圖附錄3 元件清單序號元件名稱規(guī)格型號/參數(shù)數(shù)量(個)1單片機AT89C5112顯示驅(qū)動三極管Q113晶振12MHz14電容33pF210F15按鍵S116排阻10217電阻10K14.7K18蜂鳴器LS119數(shù)碼管4BIT_8SEG_LED210驅(qū)動芯片74LS2451附錄4 總程序/*頭文件及宏定義*#include <reg51.h>#define uchar unsigned char#
17、define uint unsigned int/*軟件延時程序*void delay(uint ii) while(-ii); /*定義數(shù)碼管驅(qū)動碼*uchar duan=0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF,0X7F; /段選,0 1 2 3 4 5 6 7 8 9 - 滅 .uchar wei=0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80;/位選,共陽,從右至左/*定義變量*uchar t=0,sec=0,min=0,hour=0;/正常走時時間變量uchar sec1=0
18、,min1=0,hour1=0; /時間設(shè)定值變量uchar sec2=0,min2=0,hour2=0; /鬧鐘設(shè)定值變量uchar alarm_en=0; /鬧鐘開關(guān)變量uchar alarm_flag=0; /鬧鐘定時到達標(biāo)志變量uchar p3=0,moshi=0,mov=0; /P3口查詢,模式值,調(diào)整位/顯示緩沖區(qū),依次為正常、調(diào)時、鬧鐘設(shè)定、調(diào)整位帶點標(biāo)記uchar temp8,temp18,temp28,temp38;/*函數(shù)聲明*void initialize(void); /初始化void show(void); /正常走時顯示void show1(void); /時間設(shè)定
19、顯示void show2(void); /鬧鐘設(shè)定顯示void show3(void); /調(diào)整位標(biāo)記void show4(void); /鬧鐘開關(guān)標(biāo)記void keyscan(void); /鍵盤掃描void add(void); /調(diào)時調(diào)鬧鐘加數(shù)程序void confirm(void); /調(diào)時確認,鬧鐘開關(guān)void alarm_judge(void); /鬧鐘定時到達判定void beep(void); /鬧鐘響鈴程序/*主函數(shù)*void main() initialize(); while(1) keyscan(); alarm_judge(); switch(moshi) case
20、0:show(); show4();break; /顯示正常走時 case 1:show1();show3();break; /顯示設(shè)置時間 case 2:show2();show3();break; /顯示鬧鐘時間 if(alarm_flag=1 && alarm_en=1) /定時時間到達且鬧鐘打開 beep(); /*定時器初始化*void initialize(void) TMOD = 0x01; TH0 = 0X3C; TL0 = 0XB0; /50ms ET0 = 1; EA = 1;TR0 = 1;P1=0X7F; /初始化時關(guān)掉蜂鳴器 alarm_flag=al
21、arm_en=0;/*定時器T0中斷服務(wù)程序*void Timer0(void) interrupt 1 TL0 = 0XB0; TH0 = 0X3C; t+; if(t=20) / (50ms*20=1s) t=0; sec+; if(sec=60) / 秒為60,則清零,分加1 sec=0; min+; if(min=60) / 分為60,則清零,時加1 min=0; hour+; if(hour=24) / 時為24,則清零 hour=0; if(sec1=60) sec1=0; min1+; if(min1=60) min1=0; hour1+; if(hour1=24) hour1=
22、0; if(sec2=60) sec2=0; min2+; if(min2=60) min2=0; hour2+; if(hour2=24) hour2=0;/*正常時間顯示程序*void show(void) uchar i=0; temp0=sec%10;temp1=sec/10;temp2=10; temp3=min%10; temp4=min/10;temp5=10;temp6=hour%10;temp7=hour/10; for(i=0;i<8;i+) P2=weii; P0=duantempi; delay(100); /*調(diào)時模式顯示程序*void show1(void)
23、uchar i=0; temp10=sec1%10;temp11=sec1/10;temp12=10; temp13=min1%10; temp14=min1/10;temp15=11;temp16=hour1%10;temp17=hour1/10; for(i=0;i<8;i+) P2=weii; P0=duantemp1i; delay(100); /*鬧鐘設(shè)定模式顯示程序*void show2(void) uchar i=0; temp20=sec2%10;temp21=sec2/10;temp22=11; temp23=min2%10; temp24=min2/10;temp25
24、=10;temp26=hour2%10;temp27=hour2/10; for(i=0;i<8;i+) P2=weii; P0=duantemp2i; delay(100); /*調(diào)整位標(biāo)記顯示程序*void show3(void) uchar movv=0; switch(mov) case 0:movv=0;break; case 1:movv=3;break; case 2:movv=6;break; P2=weimovv;P0=duan12; delay(100); /*鬧鐘開閉顯示程序*void show4(void) if(alarm_en=1) P2=wei2+wei5;
25、 P0=duan12; delay(100); /*鍵盤掃描程序*void keyscan(void) P3=0XFF; p3=P3; if(p3=0XFF) return; if(p3=0XFE) /key_mode鍵 delay(10);if(p3=0XFE) moshi+;if(moshi>=3) moshi=0; while(p3=0XFE) / key_mode鍵按下到彈起期間 p3=P3; switch(moshi) case 0:show(); break; /顯示正常走時 case 1:show1();break; /顯示設(shè)置時間 case 2:show2();break
26、; /顯示鬧鐘時間 if(p3=0XFD) /key_add鍵 delay(10);if(p3=0XFD) add(); while(p3=0XFD) / key_add鍵按下到彈起期間 p3=P3; switch(moshi) case 0:show(); break; /顯示正常走時 case 1:show1();break; /顯示設(shè)置時間 case 2:show2();break; /顯示鬧鐘時間 if(p3=0XFB) /key_move鍵 delay(10);if(p3=0XFB) mov+; if(mov>=3) mov=0; while(p3=0XFB) / key_move鍵按下到彈起期間 p3=P3; switch(moshi) case 0:show(); break; /顯示正常走時 case 1:show1();break; /顯示設(shè)置時間 ca
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度臨時攤位租賃合同執(zhí)行細則4篇
- 天津事業(yè)單位2025年度聘用合同變更及終止規(guī)定2篇
- 《葡萄酒酒杯專題》課件
- 2025年度新型能源買賣合同4篇
- 煤礦安全生產(chǎn)條例學(xué)習(xí)培訓(xùn)課件
- 2025年學(xué)校環(huán)境美化及綠化養(yǎng)護合同協(xié)議3篇
- 二零二五年度水利工程承包合同模板4篇
- 二零二五年度新能源車輛深度維護合作協(xié)議4篇
- 2025年度船舶環(huán)保技術(shù)合作合同模板4篇
- 二零二五版老舊城區(qū)改造房地產(chǎn)收購合同3篇
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準
- 建筑垃圾減排及資源化處置措施
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 中西方校服文化差異研究
- 2024年一級建造師考試思維導(dǎo)圖-市政
- 高壓架空輸電線路反事故措施培訓(xùn)課件
- 隱私計算技術(shù)與數(shù)據(jù)安全保護
- 人教版小學(xué)數(shù)學(xué)五年級上冊口算題卡
- 《子宮肉瘤》課件
- 小學(xué)防范詐騙知識講座
- 當(dāng)保安夜班睡覺管理制度
評論
0/150
提交評論