版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課 程 設(shè) 計 課程名稱單片機課程設(shè)計題目名稱電子鐘專業(yè)班級11電子信息科學2班學生姓名 學 號 指導教師 本設(shè)計是一種基于AT89C51單片機控制的數(shù)字萬年歷設(shè)計。它具有多項顯示和控制功能。能用LCD實時顯示當前年、月、日、星期、時間;可對時間進行調(diào)整;具有調(diào)整時間和日期時報警功能。本設(shè)計通過一個基于單片機的能實現(xiàn)萬年歷功能電子時鐘的設(shè)計,從而達到學習、了解單片機相關(guān)指令在各方面的應用。系統(tǒng)由主控制器AT89C51、時鐘電路DS1302、顯示電路、按鍵電路和復位電路等部分構(gòu)成,能實現(xiàn)時鐘日歷顯示的功能,能進行時、分、秒的顯示。關(guān)鍵字: AT89C51單片機、LCD液晶顯示、雙電源供電、數(shù)字電
2、子鐘設(shè)計一、任務(wù)設(shè)計:1、設(shè)計任務(wù):利用AT89C51單片機設(shè)計一個具有如下功能的電子萬年歷。2、設(shè)計要求:l 能夠顯示年、月、日、時、分、秒、星期;l 可更改年、月、日、時、分、秒、星期;3.發(fā)揮部分:l 能夠通過按鍵對時間與日期進行調(diào)整; 二、方案論證:1.顯示部分:顯示部分是本次設(shè)計的重要部分,一般有以下兩種方案:方案一:采用LED顯示,分靜態(tài)顯示和動態(tài)顯示。對于靜態(tài)顯示方式,所需的譯碼驅(qū)動裝置很多,引線多而復雜,且可靠性也較低。而對于動態(tài)顯示方式,雖可以避免靜態(tài)顯示的問題,但設(shè)計上如果處理不當,易造成亮度低,有閃爍等問題。方案二:采用LCD顯示。LCD液晶顯示具有豐富多樣性、靈活性、電
3、路簡單、易于控制而且功耗小等優(yōu)點,對于信息量多的系統(tǒng),是比較適合的。鑒于上述原因,我們采用方案二。2.時鐘芯片的選擇:數(shù)字時鐘是本設(shè)計的核心的部分。根據(jù)需要可采用以下兩種方案實現(xiàn):方案一:直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差大。方案二:采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年進行計數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.55.5V,2.5V時耗電小于300nA?;跁r鐘芯片的上述優(yōu)點,本設(shè)計采用方案二完成數(shù)字
4、時鐘的功能。3.電源模塊:方案一:采用干電池作為系統(tǒng)電源。但需經(jīng)常換電池,不符合節(jié)約型社會的要求。方案二:采用直流穩(wěn)壓電源作為系統(tǒng)主電源。不僅不需要經(jīng)常更換電源,并且當市電停止時能夠采用干電池做為系統(tǒng)電源,使用更加安全可靠。基于以上分析,我們決定采用方案二三、總體方案:工作原理: 按照系統(tǒng)設(shè)計的要求和功能,將系統(tǒng)分為主控模塊、時鐘電路模塊、按鍵掃描模塊、LCD顯示模塊、電源電路、復位電路、晶振電路幾個模塊,系統(tǒng)框圖如圖1所示。主控模塊采用AT89C51單片機,利用按鍵模塊調(diào)整時間,時鐘電路模塊采用DS1302實時時鐘實現(xiàn)對時間,日期的操作四、系統(tǒng)硬件設(shè)計(單元電路設(shè)計及分析):1.AT89C5
5、1最小系統(tǒng):AT89C51為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3,每一條I/O線都能獨立地作輸出或輸入。單片機的最小系統(tǒng)如下圖所示,18引腳和19引腳接晶振電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復位輸入端,接上電容,電阻及開關(guān)后夠上電復位電路,31引腳為電源端。 XTAL1:單芯片系統(tǒng)時鐘的反向放大器輸入端。XTAL2:系統(tǒng)時的反向放大器輸出端,一般在設(shè)計上只要在XTAL1和XTAL2上接上一只石英震蕩晶體系統(tǒng)就可以工作了,此外可以在兩引腳與地之間加
6、入20PF的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪音干擾而死機。RESET:重置引腳,高電平動作,當要對晶體重置時,只要對此引腳電平提升至高電平并保持兩個及其周期以上的時間便能完成系統(tǒng)重置的各項動作,使得內(nèi)部特殊功能寄存器內(nèi)容均被設(shè)成已知狀態(tài)。如下圖所示:圖2 單片機最小系統(tǒng)2.晶振電路時鐘振蕩電路圖3所示,時鐘振蕩電路用于產(chǎn)生單片機正常工作時所需要的時鐘信號,電路由兩個30pF的瓷片電容和一個12MHz的晶振組成,并接入到單片機的XTAL1和XTAL2引腳處,使單片機工作于內(nèi)部振蕩模式。此電路在加電后延遲大約10ms振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石
7、英晶振的頻率決定。時鐘振蕩電路如圖3所示。圖3 AT89C51時鐘振蕩電路3.復位電路:復位電路由電阻和極性電容組成,如圖4所示,通過高電平使單片機復位,在時鐘電路開始工作后,當高電平的時間超過大約2us時,即可實現(xiàn)復位。此復位電路同時具備了上電復位和手動復位的功能,上電復位發(fā)生在開機加電時,由系統(tǒng)自動完成,手動復位通過一個按鍵來實現(xiàn),在程序運行時,若遇到死機,死循環(huán)或程序“跑飛”等情況,通過手動復位就可以實現(xiàn)重新啟動的操作。手動按鈕復位需要人為在復位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源VCC之間接一個按鈕以及在RST端和地之間接一個電阻,如圖所示,當人為按下按鈕時,則
8、VCC 的+5V電平就會直接加到RST端,由于人的動作再快也會使按鈕保持接通達數(shù)十毫秒,所以,完全能夠滿足復位的時間要求。圖4 AT89C51復位電路4.DS1302時鐘電路:時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應在唯一的時鐘信號控制下嚴格地按時序進行工作。在AT89C51中芯片內(nèi)部有一個高增益反相放大器,其輸入端為芯片引腳X1,輸出端為引腳X2,在芯片的外部跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個穩(wěn)定的自激振蕩器。此電路采用12MHz的石英晶體。如圖5所示。圖5 DS1302時鐘電路5.顯示電路:引腳說
9、明:引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3V液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。4RSRS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。5R/WR/W為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、雙向數(shù)據(jù)總線0位(最低位)8DB1底4位三態(tài)、雙向數(shù)據(jù)總線1位9DB2底4位三態(tài)、雙向數(shù)據(jù)總線2位10DB3底4位三態(tài)、雙向數(shù)據(jù)總線3位11DB4高4位三態(tài)、雙向數(shù)
10、據(jù)總線4位12DB5高4位三態(tài)、雙向數(shù)據(jù)總線5位13DB6高4位三態(tài)、雙向數(shù)據(jù)總線6位14DB7高4位三態(tài)、雙向數(shù)據(jù)總線7位(最高位)(也是busy flang)電路接口說明:AT889C51的P0口作為數(shù)據(jù)的輸出端,P3.5和P3.6,P3.7作為控制信號的輸出端。如圖7所示。圖7 顯示電路5、 軟件設(shè)計5.1 編程語言及編程軟件的選擇本設(shè)計選C語言作為編程語言。C語言雖然執(zhí)行效率沒有匯編語言高,但語言簡潔,使用方便,靈活,運算豐富,表達化類型多樣化,數(shù)據(jù)結(jié)構(gòu)類型豐富,具有結(jié)構(gòu)化的控制語句,程序設(shè)計自由度大,有很好的可重用性,可移植性等特點。而匯編語言使用起來并沒有這么方便。本設(shè)計選用了ke
11、il作為編程軟件,Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。5.2時間的顯示ML016L和1602一樣,都是兩行十六列的液晶顯示屏。通過程序?qū)L016L進行初始化后,通過寫指令和寫數(shù)據(jù)的操作就可以再液晶屏上顯示出對應的數(shù)據(jù),而時鐘數(shù)據(jù)則是從DS1302獲取。這樣可以顯示出時間。六、程序:#include DS1302.h#include SMC1602.h#include KeyScan.h#include KeyProcess.h#define TIME1H 0x3C#define TIME1L 0xB0/定
12、時器1溢出時間:50ms#define SCANPORT P2/44鍵盤掃描端口,低4位是行線,高4位是列線。/防抖動標志bit b_KeyShock=0; /鍵盤防抖動標志位。/當按鍵中斷產(chǎn)生時,首先判斷此位。/0-執(zhí)行鍵盤掃描及鍵碼處理程序;1-不執(zhí)行。bit b_KillShock=0;/防抖標志清除位:0-不清除;1-清除。unsigned char uc_KillCount=1;/抖動標志清除計數(shù),使用定時器1。/bit b_KeyScan=0;/0-不掃描;/1-掃描。/TIME stCurrentTime; /存儲從DS1302獲取的時間,以及顯示字符串。bit b_TimeRe
13、fresh=0; /定時刷新標志。unsigned char uc_TimeRefresh=0; /定時刷新計數(shù)。void main()vdInitialize(); /初始化LCD。vDSInitialize(); /初始化DS1302。 SCANPORT=0x0F; /初始化鍵盤。vWriteCMD(0x81);vShowChar(Date:);vWriteCMD(0xC1);vShowChar(Time:);/IT0=1; /中斷方式:下降沿。EX0=1; /開啟外部中斷。/TH1=TIME1H;TL1=TIME1L;TR1=1; /開啟定時器1ET1=1; /開定時器1中斷 EA=1;
14、while(1)/if(b_TimeRefresh=1)/沒900ms執(zhí)行1次,刷新LCD時間顯示。b_TimeRefresh=0;/恢復標志。vDSGetTime(&stCurrentTime);/獲取當前時間并將其存入指定數(shù)組。vDateString(&stCurrentTime);/生成日期字符串。vTimeString(&stCurrentTime);/生成時間字符串。 vWriteCMD(0x86);/向LCD寫入當前時間。vShowChar(stCurrentTime.ucaDateString);vWriteCMD(0xC6);vShowChar(stCurrentTime.uc
15、aTimeString);/if(b_KeyScan=1) /如果有按鍵按下,則進行按鍵掃描和鍵碼處理。b_KeyScan=0;vKeyProcess(ucKeyScan();/*/* */*外部中斷0,用于開啟鍵盤掃描及鍵碼處理* */* */*void vINT0(void) interrupt 0if(b_KeyShock=0)b_KeyScan=1;/開啟鍵盤掃描標志。b_KeyShock=1;/設(shè)置防抖動標志。else b_KeyShock=0;/如果有抖動則不執(zhí)行鍵掃描,恢復防抖動標志。/if(b_KeyShock=1)b_KillShock=1;/如果防抖動標志位開啟則開啟防抖動
16、標志清除位,/300ms后清除防抖動標志。/*/* */*定時器1中斷,用于計時功能和防抖動標志清除以及顯示報告* */* */*void vTimer1(void) interrupt 3/if(b_KillShock=1)if(uc_KillCount=16) /當防抖動標志位為1時,計時300ms后清除抖動標志位。b_KeyShock=0;b_KillShock=0;uc_KillCount=1;else uc_KillCount+;/if(uc_TimeRefresh=18) /900ms刷新顯示1次。b_TimeRefresh=1;uc_TimeRefresh=0;elseuc_TimeRefresh+;/TH1=TIME1H;TL1=TIME1L;九、設(shè)計心得體會:通過這次課程設(shè)計,我對單片機的理論知識有了進一步的掌握,對單片機的原理和實際應用有了更多地理解和掌握。我對單片機的C語言編程有了更深刻的認識和更扎實的掌握,通過不斷修改,不斷嘗試,對程序各個模塊的函數(shù)都有了一個非常深入的掌握。在收獲知識的同時,還培養(yǎng)了獨立思考、動手制作的能力,在各種其它能力上也都有了提高。更重
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版信用證抵押貸款業(yè)務(wù)合作協(xié)議范本3篇
- 2025版土方工程居間代理服務(wù)合同范本下載33篇
- 2025年度股權(quán)分割與繼承處理協(xié)議
- 2025年度房地產(chǎn)合作終止協(xié)議書
- 2025年度旅游文化股權(quán)合作協(xié)議書
- 二零二五年度木工機械操作人員勞務(wù)租賃合同4篇
- 2025年度牧業(yè)產(chǎn)品品牌推廣與營銷合同4篇
- 二零二五年度火鍋餐飲品牌區(qū)域代理授權(quán)協(xié)議
- 二零二五年度餐飲店員工激勵機制與績效考核合同
- 二零二五版環(huán)保技術(shù)入股合作協(xié)議書3篇
- 并購指南(如何發(fā)現(xiàn)好公司)
- DL-T-1642-2016環(huán)形混凝土電桿用腳扣
- 平安產(chǎn)險陜西省地方財政生豬價格保險條款
- 銅礦成礦作用與地質(zhì)環(huán)境分析
- 30題紀檢監(jiān)察位崗位常見面試問題含HR問題考察點及參考回答
- 詢價函模板(非常詳盡)
- 《AI營銷畫布:數(shù)字化營銷的落地與實戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學品等特殊管理藥品的使用與管理規(guī)章制度
- 乘務(wù)培訓4有限時間水上迫降
- 2023年低年級寫話教學評語方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準備技術(shù)要求
評論
0/150
提交評論