




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課 程 設 計 任 務 書題目 電子時鐘系統(tǒng)設計 專業(yè)、班級 電信11-02 學號 541101030218 姓名 李瑞 主要內容、根本要求、主要參考資料等:一、主要內容: 熟悉單片機應用系統(tǒng)的設計方法和標準,到達綜合的目的。 學習文件檢索和查找數據手冊的能力。 學習protel軟件的使用。 學會整理和總結設計文檔報告。二、根本要求: 以MCS-51系列單片機為核心,組成一個電子時鐘系統(tǒng)。 系統(tǒng)顯示由6位數碼管顯示組成,分別顯示時間值的時、分、秒。 能夠隨時對當前時間進行調整。 能夠隨時輸入定時鬧鐘時間。 定時鬧鐘時間到,發(fā)出鬧鐘提醒信號。 鬧鐘提醒信號的聲音為斷續(xù)形式,最長不超過1分鐘。三、
2、主要參考資料: 張毅坤等 單片微型計算機原理及應用 西安 西安電子科技大學出版社 李建忠編著 單片機原理及應用 西安 西安電子科技大學出版社完 成 期 限:2021年1月17日 指導教師簽名: 課程負責人簽名: 2021年 1月 4 日目 錄摘 要11 設計方案選擇21.1 單片機選型21.2 按鍵模塊21.3 顯示模塊21.4 計時參考模塊31.5 顯示器驅動模塊31.6 鬧鐘響鈴模塊41.7 電源模塊42 硬件接線及設計42.1 單片機晶振配置5復位電路設計52.3 按鍵電路設計62.4 蜂鳴器驅動電路設計62.5 顯示模塊電路設計73 軟件局部73.1 主函數流程圖73.2 定時器T0中
3、斷效勞程序流程圖83.3 鬧鐘響應程序流程圖93.4 鍵盤掃描程序流程圖104 系統(tǒng)綜述114.1 上電界面114.2 調時界面114.3 鬧鐘設定界面114.4 正常走時界面124.5 鬧鐘響應12附錄1 總體設計電路圖15附錄2 PCB圖16附錄3 元件清單17附錄4 總程序18摘 要單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣泛、開展很快。Intel公司生產的MCS-8051系列單片機是各單片機中最為典型和最有代表性的一種。本次設計以MCS-8051芯片為核心,輔助以必要的外圍電路,設計了一個結構簡單功能齊全的數值時鐘。在硬件方面,單片機外接12
4、MHz芯片進行驅動。通過數碼管能夠準確明亮的顯示時、分、秒;四個簡單的按鍵實現對時間的調整;蜂鳴器實現鬧鐘響鈴功能;軟件方面采用c語言編程。整個電子鐘系統(tǒng)能完成時間的顯示、調試和一組定時鬧鐘的功能。 關鍵詞:51單片機 定時器 鬧鐘 數碼管1 設計方案選擇1.1 單片機選型 根據選題芯片采用MCS-8051單片機,Intel公司生產的 51 系列 8 位單片機,憑借其成熟的技術標準和很高的性價比得到了廣泛的普及與應用,其功能強大,用來做電子表硬件易實現,編程標準。1.2 按鍵模塊 方案一:4×4行列式鍵盤如果選擇此方案,那么在修改時鐘或設置鬧鈴時間時就可以直接從鍵盤輸入,方便、快捷。
5、缺點也很明顯,一是浪費按鍵,用全鍵盤來實現設定時間的小功能不免大材小用;二是從實用性考慮,全鍵盤體積大,明顯不經濟不方便。故放棄。 方案二:獨立式按鍵如果設置過多按鍵,將會占用較多I/O口,而且會給布線帶來不便,同時浪費按鍵,不高效,程序繁瑣。本次設計適用于按鍵較少的情況。為了盡量實現按鍵的高效性,此次設計采用四個獨立式按鍵,分別定義為key_mode、key_add、key_move,key_confirm,依次是模式鍵、加數鍵、移位鍵、確認鍵。1.3 顯示模塊方案一:液晶顯示器LCD如果選擇此方案,將會降低系統(tǒng)的功耗,可以用電池供電,便于攜帶,但液晶顯示器的驅動電路復雜,使用起來有一定的難
6、度。 方案二:數碼管LED數碼管的驅動電路簡單,使用方便,如果選擇了此方案,那么在夜間看時間的時候就不需要有光源,非常方便。其缺點是功耗較大。 按照此次任務書設計要求,選擇兩個4位一體七段數碼管用于顯示。1.4 計時參考模塊方案一:專用時鐘芯片如果使用時鐘芯片,系統(tǒng)就不怕掉電且時間精確,但這種芯片比擬貴,浪費資源不經濟。方案二:單片機內部定時/計數器由于本次設計本主要是為了學習單片機程序的編寫和調試,以及設計硬件電路的一些方法,因此采用軟件的方法來計時。本次設計用單片機內部定時/計數器T0作為電子時鐘參考。1.5 顯示器驅動模塊 由于通過數碼管公共極的電流較大,單片機I/O口驅動能力是不夠的,
7、故LED驅動模塊必不可少。為防止過多地使用分立元件,本次設計采用一片 74LS245來驅動位碼,用P2口進行位選掃描。 圖1 74LS245元件封裝圖74LS245是常用來驅動LED或者其他的設備,它是 8 路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數據,74LS245還具有雙向三態(tài)功能。片選端,接低電平時傳輸數據,接高電平時A、B均為高阻態(tài)。方向選擇端AB/,接高電平時信號由A向B傳輸發(fā)送,接低電平時信號由B向A傳輸接收。1.6 鬧鐘響鈴模塊 通過三極管放大后驅動蜂鳴器工作,單片機I/O接三極管基極。1.7 電源模塊本系統(tǒng)采用了數碼管作為顯示器,功耗較大,不便于使用電池供電。況且本系統(tǒng)的體積較大,
8、即使使用電池供電也不便于隨身攜帶,因此用5V外部穩(wěn)壓電源來供電。2 硬件接線及設計8位七段LED顯示器MCS-8051段碼驅動晶 振復位電路位碼驅動按 鍵蜂鳴器圖2 系統(tǒng)硬件框圖2.1 單片機晶振配置圖3 單片機晶振配置和復位電路晶振選擇 12MHz ,接到如下圖引腳。圖4 復位電路復位電路兼具上電復位功能以及按鍵復位功能,接到如下圖引腳。2.3 按鍵電路設計圖5 按鍵電路采用4個獨立按鍵配以4個上拉電阻實現對時鐘和鬧鐘的設定及修改。四個獨立式按鍵分別定義為key_mode、key_add、key_move、key_confirm,依次是模式鍵、調時加鍵、調時移位鍵、確認鍵。2.4 蜂鳴器驅動
9、電路設計圖6 蜂鳴器驅動電路蜂鳴器采用NPN三極管放大電路驅動,接到如下圖引腳。2.5 顯示模塊電路設計顯示設備為共陽7段數碼管LED,用單片機P0口作為LED段選控制端,用單片機P2口作為LED位選控制端,并采用集成塊74LS245作為位驅動模塊。片選端接地,方向選擇端AB/接電源。3 軟件局部3.1 主函數流程圖開 始初始化定時器T0循環(huán)中斷計時主循環(huán)鍵盤掃描鬧鐘判定顯示響應鬧鐘響應結 束圖7 主函數程序流程圖開 始3.2 定時器T0中斷效勞程序流程圖T0重裝初值t+1t=20?t=0, sec+1sec=60??sec=0, min+1min=60??min=0, hour+1hour=
10、24??hour=0結 束圖8 定時器T0中斷效勞程序流程圖3.3 鬧鐘響應程序流程圖開 始鬧鐘判定鬧鐘定時到?鬧鐘翻開?key_confirm按下?響鈴一分鐘關閉蜂鳴器結 束圖9 鬧鐘響應程序流程圖3.4 鍵盤掃描程序流程圖開 始鍵盤掃描有鍵按下?鍵盤抖動?key_confirmkey_movekey_addkey_modeconfirm();mov+1add( );moshi+1moshi>2?mov>2?moshi=0mov=0結 束 圖10 鍵盤掃描程序流程圖4 系統(tǒng)綜述4.1 上電界面電子表上電后自動初始化,接著從 00-00-00 開始走時,顯示正常走時界面,此時鬧鐘默
11、認關掉。按下key_mode鍵,可依次切換到調時界面、調鬧鐘界面、正常走時界面,如此循環(huán)往復。上電初始化后,調時初值為00 00-00,鬧鐘初值為00-00 00。4.2 調時界面調時界面,從左至右依次顯示時、分、秒,數字右下角小點代表調整位到達位置。在調時界面下,按下key_move鍵可以移動調整位,數字下標小點用以指示當前操作的數位,按下key_add鍵可以對調整位進行加數操作。當且僅當在調時界面下,按下key_confirm鍵可確認設定,電子表按設定時間更新并走時,同時自動清零設定時間。此時再按 key_mode鍵切換回正常走時界面即能看到時間已經更新。如果調時后沒有按下key_conf
12、irm鍵確認,而是直接按key_mode鍵切換回正常走時界面,那么設置時間被保存,當前時間并不更新。4.3 鬧鐘設定界面鬧鐘設定界面,從左至右依次顯示時、分、秒,數字右下角小點代表調整位到達位置。在鬧鐘設定界面下,按下key_move鍵可以移動調整位,數字下標小點用以指示當前操作的數位,按下key_add鍵可以對調整位進行加數操作。鬧鐘設置好后直接按key_mode鍵返回正常正常走時界面即可,無需按key_confirm鍵確認,鬧鐘設定值會自動保存。4.4 正常走時界面正常走時界面,從左至右依次顯示時、分、秒,小點亮滅代表鬧鐘開閉。在正常走時界面下,按下key_add鍵和key_move鍵不產
13、生操作,LED顯示無變化;按下key_confirm鍵可循環(huán)開閉鬧鐘,LED顯示對應變換提示鬧鐘的開閉;按下key_mode鍵可依次切換到調時模式、鬧鐘設定模式、正常走時模式,循環(huán)往復。4.5 鬧鐘響應當正常走時到達鬧鈴設定值后,鬧鈴響應,正常情況下持續(xù)蜂鳴一分鐘后自動關閉蜂鳴器。鬧鈴響鈴過程中,假設按下key_confirm鍵可立刻關閉蜂鳴器。鬧鈴響應后自動等待下次響應???結在這次課程設計中,運用到了很多以前的專業(yè)知識,雖然過去從未獨立應用過它們,但在學習的過程中帶著問題去學我發(fā)現效率很高,這是我做這次課程設計的一大收獲。另外,要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的
14、內部結構有一個系統(tǒng)的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改良是程序設計的必經之路;要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設計課程過程中遇到問題是很正常德,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設計結束了,但是從中學到的知識會讓我受益終身。發(fā)現、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。設計過程,好比是我們人類成長的歷程,常有一些不如
15、意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設計的過程中發(fā)現了自己的缺乏之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,不能靈活運用。參考文獻1 鄭君里,應啟珩,楊為理. 信號與系統(tǒng)第二版上冊M. 高等教育出版社,20002 鄭君里,應啟珩,楊為理. 信號與系統(tǒng)第二版下冊M. 高等教育出版社,20003 譚浩強. C程序設計第二版M. 清華大學出版社,20034 于京 51系列單片機C程序設計與應用案例M北京:中國電力出版社,20065 孫育才 ATMEL新型AT89S52系列單片機及其應用M北京:清華大學出版社, 20056&
16、#160;吳堅,劉高平.基于GPRS網絡的點對點圖像傳輸方案J.計算機應用研究,2004,附 錄附錄1 總體設計電路圖附錄2 PCB圖附錄3 元件清單序號元件名稱規(guī)格型號/參數數量個1單片機AT89C5112顯示驅動三極管Q113晶振12MHz14電容33pF210F15按鍵S116排阻10217電阻10K118蜂鳴器LS119數碼管4BIT_8SEG_LED210驅動芯片74LS2451附錄4 總程序/*頭文件及宏定義*#include <reg51.h>#define uchar unsigned char#define uint unsigned int/*軟件延時程序*vo
17、id delay(uint ii) while(-ii); /*定義數碼管驅動碼*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,min1=0,hour1=0; /時間設定值變量uchar sec2
18、=0,min2=0,hour2=0; /鬧鐘設定值變量uchar alarm_en=0; /鬧鐘開關變量uchar alarm_flag=0; /鬧鐘定時到達標志變量uchar p3=0,moshi=0,mov=0; /P3口查詢,模式值,調整位/顯示緩沖區(qū),依次為正常、調時、鬧鐘設定、調整位帶點標記uchar temp8,temp18,temp28,temp38;/*函數聲明*void initialize(void); /初始化void show(void); /正常走時顯示void show1(void); /時間設定顯示void show2(void); /鬧鐘設定顯示void sho
19、w3(void); /調整位標記void show4(void); /鬧鐘開關標記void keyscan(void); /鍵盤掃描void add(void); /調時調鬧鐘加數程序void confirm(void); /調時確認,鬧鐘開關void alarm_judge(void); /鬧鐘定時到達判定void beep(void); /鬧鐘響鈴程序/*主函數*void main() initialize(); while(1) keyscan(); alarm_judge(); switch(moshi) case 0:show(); show4();break; /顯示正常走時 ca
20、se 1:show1();show3();break; /顯示設置時間 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; /初始化時關掉蜂鳴器 alarm_flag=alarm_en=0;/*定時器T0中斷效勞程序*void Timer0(
21、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=0; if(sec2=60) sec2=0; min2+; if
22、(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); /*調時模式顯示程序*void show1(void) uchar i=0; temp10=sec1%10;temp11
23、=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); /*鬧鐘設定模式顯示程序*void show2(void) uchar i=0; temp20=sec2%10;temp21=sec2/10;temp22=11; temp23=min2%10; temp24=min2/10;temp25=10;temp26=hour2%10;temp27=hour2
24、/10; for(i=0;i<8;i+) P2=weii; P0=duantemp2i; delay(100); /*調整位標記顯示程序*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; P0=duan12; delay(100); /*鍵盤掃描程序
25、*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; /顯示設置時間 case 2:show2();break; /顯示鬧鐘時間 if(p3=0XFD) /key_add鍵
26、delay(10);if(p3=0XFD) add(); while(p3=0XFD) / key_add鍵按下到彈起期間 p3=P3; switch(moshi) case 0:show(); break; /顯示正常走時 case 1:show1();break; /顯示設置時間 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; /顯示設置時間 case 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園安全教育日主題班會
- 水利水電工程新項目評審試題及答案
- 2025年中級經濟師重要考點試題及回答
- 線護理工作總結與改進計劃
- 在c語言期末考試試題及答案
- 孵化跳水測試題及答案
- 醫(yī)療機構考試試題及答案
- 釣螃蟹面試題及答案
- 主管工作中的數據分析利用計劃
- 學校環(huán)境中的藝術裝置設計計劃
- 2025年下半年山東新華書店集團限公司德州分公司招聘20人易考易錯模擬試題(共500題)試卷后附參考答案
- 質量、環(huán)境、職業(yè)健康安全三合一程序文件
- 學校教輔征訂管理“三公開、兩承諾、一監(jiān)督”制度
- 2024-2025公司員工安全培訓考試試題及答案典型題
- 2025年全國國家版圖知識競賽(中小學組)題庫及答案(共五篇)匯編
- 2025年高考語文作文終極押題03 關于Deepseek(押題理由+作文真題++審題立意+高分范文)(全國)
- 抖音商務BD培訓
- 中馬欽州產業(yè)園管委會筆試試題
- 中藥處方培訓課件
- (高清版)DB12∕T 934-2020 公路工程資料管理技術規(guī)程
- 防火門工程驗收單模板
評論
0/150
提交評論