數(shù)字電子鐘課程設(shè)計(jì)報(bào)告_第1頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告_第2頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告_第3頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告_第4頁(yè)
數(shù)字電子鐘課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課 程 設(shè) 計(jì) 課程名稱(chēng)單片機(jī)課程設(shè)計(jì)題目名稱(chēng)電子鐘專(zhuān)業(yè)班級(jí)11電子信息科學(xué)2班學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)教師 本設(shè)計(jì)是一種基于AT89C51單片機(jī)控制的數(shù)字萬(wàn)年歷設(shè)計(jì)。它具有多項(xiàng)顯示和控制功能。能用LCD實(shí)時(shí)顯示當(dāng)前年、月、日、星期、時(shí)間;可對(duì)時(shí)間進(jìn)行調(diào)整;具有調(diào)整時(shí)間和日期時(shí)報(bào)警功能。本設(shè)計(jì)通過(guò)一個(gè)基于單片機(jī)的能實(shí)現(xiàn)萬(wàn)年歷功能電子時(shí)鐘的設(shè)計(jì),從而達(dá)到學(xué)習(xí)、了解單片機(jī)相關(guān)指令在各方面的應(yīng)用。系統(tǒng)由主控制器AT89C51、時(shí)鐘電路DS1302、顯示電路、按鍵電路和復(fù)位電路等部分構(gòu)成,能實(shí)現(xiàn)時(shí)鐘日歷顯示的功能,能進(jìn)行時(shí)、分、秒的顯示。關(guān)鍵字: AT89C51單片機(jī)、LCD液晶顯示、雙電源供電、數(shù)字電

2、子鐘設(shè)計(jì)一、任務(wù)設(shè)計(jì):1、設(shè)計(jì)任務(wù):利用AT89C51單片機(jī)設(shè)計(jì)一個(gè)具有如下功能的電子萬(wàn)年歷。2、設(shè)計(jì)要求:l 能夠顯示年、月、日、時(shí)、分、秒、星期;l 可更改年、月、日、時(shí)、分、秒、星期;3.發(fā)揮部分:l 能夠通過(guò)按鍵對(duì)時(shí)間與日期進(jìn)行調(diào)整; 二、方案論證:1.顯示部分:顯示部分是本次設(shè)計(jì)的重要部分,一般有以下兩種方案:方案一:采用LED顯示,分靜態(tài)顯示和動(dòng)態(tài)顯示。對(duì)于靜態(tài)顯示方式,所需的譯碼驅(qū)動(dòng)裝置很多,引線多而復(fù)雜,且可靠性也較低。而對(duì)于動(dòng)態(tài)顯示方式,雖可以避免靜態(tài)顯示的問(wèn)題,但設(shè)計(jì)上如果處理不當(dāng),易造成亮度低,有閃爍等問(wèn)題。方案二:采用LCD顯示。LCD液晶顯示具有豐富多樣性、靈活性、電

3、路簡(jiǎn)單、易于控制而且功耗小等優(yōu)點(diǎn),對(duì)于信息量多的系統(tǒng),是比較適合的。鑒于上述原因,我們采用方案二。2.時(shí)鐘芯片的選擇:數(shù)字時(shí)鐘是本設(shè)計(jì)的核心的部分。根據(jù)需要可采用以下兩種方案實(shí)現(xiàn):方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差大。方案二:采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年進(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.55.5V,2.5V時(shí)耗電小于300nA?;跁r(shí)鐘芯片的上述優(yōu)點(diǎn),本設(shè)計(jì)采用方案二完成數(shù)字

4、時(shí)鐘的功能。3.電源模塊:方案一:采用干電池作為系統(tǒng)電源。但需經(jīng)常換電池,不符合節(jié)約型社會(huì)的要求。方案二:采用直流穩(wěn)壓電源作為系統(tǒng)主電源。不僅不需要經(jīng)常更換電源,并且當(dāng)市電停止時(shí)能夠采用干電池做為系統(tǒng)電源,使用更加安全可靠。基于以上分析,我們決定采用方案二三、總體方案:工作原理: 按照系統(tǒng)設(shè)計(jì)的要求和功能,將系統(tǒng)分為主控模塊、時(shí)鐘電路模塊、按鍵掃描模塊、LCD顯示模塊、電源電路、復(fù)位電路、晶振電路幾個(gè)模塊,系統(tǒng)框圖如圖1所示。主控模塊采用AT89C51單片機(jī),利用按鍵模塊調(diào)整時(shí)間,時(shí)鐘電路模塊采用DS1302實(shí)時(shí)時(shí)鐘實(shí)現(xiàn)對(duì)時(shí)間,日期的操作四、系統(tǒng)硬件設(shè)計(jì)(單元電路設(shè)計(jì)及分析):1.AT89C5

5、1最小系統(tǒng):AT89C51為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3,每一條I/O線都能獨(dú)立地作輸出或輸入。單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接晶振電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復(fù)位輸入端,接上電容,電阻及開(kāi)關(guān)后夠上電復(fù)位電路,31引腳為電源端。 XTAL1:單芯片系統(tǒng)時(shí)鐘的反向放大器輸入端。XTAL2:系統(tǒng)時(shí)的反向放大器輸出端,一般在設(shè)計(jì)上只要在XTAL1和XTAL2上接上一只石英震蕩晶體系統(tǒng)就可以工作了,此外可以在兩引腳與地之間加

6、入20PF的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪音干擾而死機(jī)。RESET:重置引腳,高電平動(dòng)作,當(dāng)要對(duì)晶體重置時(shí),只要對(duì)此引腳電平提升至高電平并保持兩個(gè)及其周期以上的時(shí)間便能完成系統(tǒng)重置的各項(xiàng)動(dòng)作,使得內(nèi)部特殊功能寄存器內(nèi)容均被設(shè)成已知狀態(tài)。如下圖所示:圖2 單片機(jī)最小系統(tǒng)2.晶振電路時(shí)鐘振蕩電路圖3所示,時(shí)鐘振蕩電路用于產(chǎn)生單片機(jī)正常工作時(shí)所需要的時(shí)鐘信號(hào),電路由兩個(gè)30pF的瓷片電容和一個(gè)12MHz的晶振組成,并接入到單片機(jī)的XTAL1和XTAL2引腳處,使單片機(jī)工作于內(nèi)部振蕩模式。此電路在加電后延遲大約10ms振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石

7、英晶振的頻率決定。時(shí)鐘振蕩電路如圖3所示。圖3 AT89C51時(shí)鐘振蕩電路3.復(fù)位電路:復(fù)位電路由電阻和極性電容組成,如圖4所示,通過(guò)高電平使單片機(jī)復(fù)位,在時(shí)鐘電路開(kāi)始工作后,當(dāng)高電平的時(shí)間超過(guò)大約2us時(shí),即可實(shí)現(xiàn)復(fù)位。此復(fù)位電路同時(shí)具備了上電復(fù)位和手動(dòng)復(fù)位的功能,上電復(fù)位發(fā)生在開(kāi)機(jī)加電時(shí),由系統(tǒng)自動(dòng)完成,手動(dòng)復(fù)位通過(guò)一個(gè)按鍵來(lái)實(shí)現(xiàn),在程序運(yùn)行時(shí),若遇到死機(jī),死循環(huán)或程序“跑飛”等情況,通過(guò)手動(dòng)復(fù)位就可以實(shí)現(xiàn)重新啟動(dòng)的操作。手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源VCC之間接一個(gè)按鈕以及在RST端和地之間接一個(gè)電阻,如圖所示,當(dāng)人為按下按鈕時(shí),則

8、VCC 的+5V電平就會(huì)直接加到RST端,由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。圖4 AT89C51復(fù)位電路4.DS1302時(shí)鐘電路:時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào),單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作。在AT89C51中芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳X1,輸出端為引腳X2,在芯片的外部跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。此電路采用12MHz的石英晶體。如圖5所示。圖5 DS1302時(shí)鐘電路5.顯示電路:引腳說(shuō)

9、明:引腳符號(hào)功能說(shuō)明1VSS一般接地2VDD接電源(+5V)3V液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度)。4RSRS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。5R/WR/W為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作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)電路接口說(shuō)明:AT889C51的P0口作為數(shù)據(jù)的輸出端,P3.5和P3.6,P3.7作為控制信號(hào)的輸出端。如圖7所示。圖7 顯示電路5、 軟件設(shè)計(jì)5.1 編程語(yǔ)言及編程軟件的選擇本設(shè)計(jì)選C語(yǔ)言作為編程語(yǔ)言。C語(yǔ)言雖然執(zhí)行效率沒(méi)有匯編語(yǔ)言高,但語(yǔ)言簡(jiǎn)潔,使用方便,靈活,運(yùn)算豐富,表達(dá)化類(lèi)型多樣化,數(shù)據(jù)結(jié)構(gòu)類(lèi)型豐富,具有結(jié)構(gòu)化的控制語(yǔ)句,程序設(shè)計(jì)自由度大,有很好的可重用性,可移植性等特點(diǎn)。而匯編語(yǔ)言使用起來(lái)并沒(méi)有這么方便。本設(shè)計(jì)選用了ke

11、il作為編程軟件,Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。5.2時(shí)間的顯示ML016L和1602一樣,都是兩行十六列的液晶顯示屏。通過(guò)程序?qū)L016L進(jìn)行初始化后,通過(guò)寫(xiě)指令和寫(xiě)數(shù)據(jù)的操作就可以再液晶屏上顯示出對(duì)應(yīng)的數(shù)據(jù),而時(shí)鐘數(shù)據(jù)則是從DS1302獲取。這樣可以顯示出時(shí)間。六、程序:#include DS1302.h#include SMC1602.h#include KeyScan.h#include KeyProcess.h#define TIME1H 0x3C#define TIME1L 0xB0/定

12、時(shí)器1溢出時(shí)間:50ms#define SCANPORT P2/44鍵盤(pán)掃描端口,低4位是行線,高4位是列線。/防抖動(dòng)標(biāo)志bit b_KeyShock=0; /鍵盤(pán)防抖動(dòng)標(biāo)志位。/當(dāng)按鍵中斷產(chǎn)生時(shí),首先判斷此位。/0-執(zhí)行鍵盤(pán)掃描及鍵碼處理程序;1-不執(zhí)行。bit b_KillShock=0;/防抖標(biāo)志清除位:0-不清除;1-清除。unsigned char uc_KillCount=1;/抖動(dòng)標(biāo)志清除計(jì)數(shù),使用定時(shí)器1。/bit b_KeyScan=0;/0-不掃描;/1-掃描。/TIME stCurrentTime; /存儲(chǔ)從DS1302獲取的時(shí)間,以及顯示字符串。bit b_TimeRe

13、fresh=0; /定時(shí)刷新標(biāo)志。unsigned char uc_TimeRefresh=0; /定時(shí)刷新計(jì)數(shù)。void main()vdInitialize(); /初始化LCD。vDSInitialize(); /初始化DS1302。 SCANPORT=0x0F; /初始化鍵盤(pán)。vWriteCMD(0x81);vShowChar(Date:);vWriteCMD(0xC1);vShowChar(Time:);/IT0=1; /中斷方式:下降沿。EX0=1; /開(kāi)啟外部中斷。/TH1=TIME1H;TL1=TIME1L;TR1=1; /開(kāi)啟定時(shí)器1ET1=1; /開(kāi)定時(shí)器1中斷 EA=1;

14、while(1)/if(b_TimeRefresh=1)/沒(méi)900ms執(zhí)行1次,刷新LCD時(shí)間顯示。b_TimeRefresh=0;/恢復(fù)標(biāo)志。vDSGetTime(&stCurrentTime);/獲取當(dāng)前時(shí)間并將其存入指定數(shù)組。vDateString(&stCurrentTime);/生成日期字符串。vTimeString(&stCurrentTime);/生成時(shí)間字符串。 vWriteCMD(0x86);/向LCD寫(xiě)入當(dāng)前時(shí)間。vShowChar(stCurrentTime.ucaDateString);vWriteCMD(0xC6);vShowChar(stCurrentTime.uc

15、aTimeString);/if(b_KeyScan=1) /如果有按鍵按下,則進(jìn)行按鍵掃描和鍵碼處理。b_KeyScan=0;vKeyProcess(ucKeyScan();/*/* */*外部中斷0,用于開(kāi)啟鍵盤(pán)掃描及鍵碼處理* */* */*void vINT0(void) interrupt 0if(b_KeyShock=0)b_KeyScan=1;/開(kāi)啟鍵盤(pán)掃描標(biāo)志。b_KeyShock=1;/設(shè)置防抖動(dòng)標(biāo)志。else b_KeyShock=0;/如果有抖動(dòng)則不執(zhí)行鍵掃描,恢復(fù)防抖動(dòng)標(biāo)志。/if(b_KeyShock=1)b_KillShock=1;/如果防抖動(dòng)標(biāo)志位開(kāi)啟則開(kāi)啟防抖動(dòng)

16、標(biāo)志清除位,/300ms后清除防抖動(dòng)標(biāo)志。/*/* */*定時(shí)器1中斷,用于計(jì)時(shí)功能和防抖動(dòng)標(biāo)志清除以及顯示報(bào)告* */* */*void vTimer1(void) interrupt 3/if(b_KillShock=1)if(uc_KillCount=16) /當(dāng)防抖動(dòng)標(biāo)志位為1時(shí),計(jì)時(shí)300ms后清除抖動(dòng)標(biāo)志位。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è)計(jì)心得體會(huì):通過(guò)這次課程設(shè)計(jì),我對(duì)單片機(jī)的理論知識(shí)有了進(jìn)一步的掌握,對(duì)單片機(jī)的原理和實(shí)際應(yīng)用有了更多地理解和掌握。我對(duì)單片機(jī)的C語(yǔ)言編程有了更深刻的認(rèn)識(shí)和更扎實(shí)的掌握,通過(guò)不斷修改,不斷嘗試,對(duì)程序各個(gè)模塊的函數(shù)都有了一個(gè)非常深入的掌握。在收獲知識(shí)的同時(shí),還培養(yǎng)了獨(dú)立思考、動(dòng)手制作的能力,在各種其它能力上也都有了提高。更重

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論