單片機_課程設(shè)計_第1頁
單片機_課程設(shè)計_第2頁
單片機_課程設(shè)計_第3頁
單片機_課程設(shè)計_第4頁
單片機_課程設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設(shè)計報告課程名稱:單片機課程設(shè)計 專業(yè)班級:09應(yīng)用電子 學(xué)生姓名:陳華燁 完成時間:2011年6月20日 摘要:本設(shè)計采用LCD液晶屏幕顯示系統(tǒng),以STC89C52RC單片機為核心,由鍵盤、溫度采集、定時鬧鈴、日期提醒等功能模塊組成?;陬}目基本要求,本系統(tǒng)對時間顯示、鬧鈴方式進和溫度采集系統(tǒng)行了重點設(shè)計。此外,擴展了整點報時、非易失鬧鈴信息存儲、國內(nèi)外重要節(jié)日提醒等功能。本系統(tǒng)大部分功能由軟件來實現(xiàn),吸收了硬件軟件化的思想,大部分功能通過軟件來實現(xiàn),使電路簡單明了,系統(tǒng)穩(wěn)定性大大提高。本系統(tǒng)不僅成功的實現(xiàn)了要求的基本功能,多數(shù)發(fā)揮部分也得到了實現(xiàn),而且還具有一定的創(chuàng)新功能。關(guān)鍵字

2、: STC89C52RC單片機、LCD液晶顯示、雙電源供電、溫度采集、非易失定時鬧鈴、生日提醒、重要節(jié)日提醒、整點報時多功能時鐘設(shè)計一、任務(wù)設(shè)計:1、設(shè)計任務(wù):設(shè)計并制作一個多功能數(shù)字鐘。2、設(shè)計要求:時間l 設(shè)計能支持年、月、日、星期、時、分、秒的時鐘,時鐘有調(diào)整功能及鬧鐘功能;l 時鐘附帶有一個溫度計功能,溫度檢測精度高于2度,顯示精度為1度;l 時鐘具有裝卸電池時掉電保護功能,保護時間大于5分鐘;l 時鐘功耗小于0.5MA/5V。3.發(fā)揮部分:l 提高溫度檢測精度,在0-40顯示0.1;l 實現(xiàn)雙電源供電(220V及電池供電);l 能夠提供生日提醒指示;能夠每天提供3個時間點的鬧鐘報時功

3、能;l 非接觸止鬧功能。4.創(chuàng)新部分:l 非易失定時鬧鈴l 重要日期提醒l 整點報時二、方案論證:1.顯示部分:顯示部分是本次設(shè)計的重要部分,一般有以下兩種方案:方案一:采用LED顯示,分靜態(tài)顯示和動態(tài)顯示。對于靜態(tài)顯示方式,所需的譯碼驅(qū)動裝置很多,引線多而復(fù)雜,且可靠性也較低。而對于動態(tài)顯示方式,雖可以避免靜態(tài)顯示的問題,但設(shè)計上如果處理不當(dāng),易造成亮度低,有閃爍等問題。方案二:采用LCD顯示。LCD液晶顯示具有豐富多樣性、靈活性、電路簡單、易于控制而且功耗小等優(yōu)點,對于信息量多的系統(tǒng),是比較適合的。鑒于上述原因,我們采用方案二。2.數(shù)字時鐘:數(shù)字時鐘是本設(shè)計的核心的部分。根據(jù)需要可采用以下

4、兩種方案實現(xiàn):方案一:方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內(nèi)部存儲器設(shè)三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達(dá)到24,則將時字節(jié)清零。該方案具有硬件電路簡單的特點,但當(dāng)單片機不上電,程序?qū)⒉粓?zhí)行。而且由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。方案二:方案采用Dallas公司的專用時鐘芯片DS1302。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,

5、因此,可直接對其以用于顯示或設(shè)置,使得軟件編程相對簡單。為保證時鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時,可使系統(tǒng)自動轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間?;跁r鐘芯片的上述優(yōu)點,本設(shè)計采用方案二完成數(shù)字時鐘的功能。3.溫度采集:由于現(xiàn)在用品追求多樣化,多功能化,給系統(tǒng)加上溫度測量顯示模塊,能夠方便人們的生活,使該設(shè)計具有人性化。方案一:采用熱敏電阻,可滿足40攝氏度至90攝氏度測量范圍,但熱敏電阻精度、重復(fù)性、可靠性較差,對于檢測小于1攝氏度的信號是不適用的。

6、方案二:采用溫度傳感器DS18B20。DS18B20可以滿足從-55攝氏度到+125攝氏度測量范圍,且DS18B20測量精度高,增值量為0.5攝氏度,在一秒內(nèi)把溫度轉(zhuǎn)化成數(shù)字,測得的溫度值的存儲在兩個八位的RAM中,單片機直接從中讀出數(shù)據(jù)轉(zhuǎn)換成十進制就是溫度,使用方便。基于DS18B20的以上優(yōu)點,我們決定選取DS18B20來測量溫度。4.鬧鈴部分:一般的時鐘都帶有鬧鈴,實現(xiàn)鬧鈴方式可采用以下兩種:方案一:將鬧鐘信息存放在單片機自帶的存儲器中。該方案成本低而且易于實現(xiàn),但是一但掉電會造成之前信息的丟失。方案二:將鬧鐘信息存放在非易失儲存器AT24C02中。該方案即使在完全的掉電的情況下也不會造

7、成鬧鐘信息的丟失,可避免方案一帶來的麻煩。5.電源模塊:方案一:采用干電池作為系統(tǒng)電源。但需經(jīng)常換電池,不符合節(jié)約型社會的要求。方案二:采用直流穩(wěn)壓電源作為系統(tǒng)主電源,干電池作為輔助電源。不僅不需要經(jīng)常更換電源,并且當(dāng)市電停止時能夠采用干電池做為系統(tǒng)電源,使用更加安全可靠。基于以上分析,我們決定采用方案二三、總體方案:1.工作原理:本設(shè)計采用STC89C52RC單片機作為本系統(tǒng)的控制模塊。單片機可把由DS18B20、DS1302、AT24C02中的數(shù)據(jù)利用軟件來進行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊,實現(xiàn)溫度、日歷和鬧鈴的顯示。以LCD液晶顯示器為顯示模塊,把單片機傳來的數(shù)據(jù)顯示出來,并且顯示多樣

8、化。在顯示電路中,主要靠按鍵來實現(xiàn)各種顯示要求的選擇與切換。2.總體設(shè)計:設(shè)計總體框架圖如圖1四、系統(tǒng)硬件設(shè)計(單元電路設(shè)計及分析):1. STC89C52RC單片機最小系統(tǒng):最小系統(tǒng)包括晶體振蕩電路、復(fù)位開關(guān)和電源部分。圖2為STC89C52RC單片機的最小系統(tǒng)。圖2 最小系統(tǒng)電路圖2.溫度測量模塊:溫度測量傳感器采用DALLAS公司DS18B20的單總線數(shù)字化溫度傳感器,測溫范圍為-55125,可編程為9位12位A/D轉(zhuǎn)換精度,測溫分辨率達(dá)到0.0625,采用寄生電源工作方式,CPU只需一根口線便能與DS18B20通信,占用CPU口線少,可節(jié)省大量引線和邏輯電路。接口電路如圖3所示。圖3

9、DS18B20測量電路3.時鐘模塊:時鐘模塊采用DS1302芯片,DS1302是DALLAS公司推出的涓流充電時鐘芯片內(nèi)含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM通過簡單的串行接口與單片機進行通信實時時鐘/日歷電路提供秒分時日日期月年的信息每月的天數(shù)和閏年的天數(shù)可自動調(diào)整時鐘操作可通過AM/PM指示決定采用24或12小時格式DS1302與單片機之間能簡單地采用同步串行的方式進行通信僅需用到三個口線:RST復(fù)位、I/O數(shù)據(jù)線、SCLK串行時鐘。時鐘/RAM的讀/寫數(shù)據(jù)以一個字節(jié)或多達(dá)31個字節(jié)的字符組方式通信。DS1302工作時功耗很低,保持?jǐn)?shù)據(jù)和時鐘信息時功率小于1mW,其接線電路如圖4所示:

10、圖4 時鐘電路4.存儲器模塊:存儲器采用Atmel公司的AT24C02芯片。該芯片帶有2KB的串行COMS EEPROM,內(nèi)部含有256個8位字節(jié),可通過I2C總線對其接口進行讀寫操作,而且?guī)в袑懕Wo功能。其接線圖如圖5所示。圖5 AT24C02存儲器電路5. LCD液晶顯示模塊:LCD液晶顯示模塊采用LCD1602型號,具有很低的功耗,正常工作時電流僅2.0mA/5.0V。通過編程實現(xiàn)自動關(guān)閉屏幕能夠更有效的降低功耗。LCD1602分兩行顯示,每行可顯示多達(dá)16個字符。LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,通過內(nèi)部指令可實現(xiàn)對其顯示多樣

11、的控制,并且還能利用空余的空間自定義字符。其接線如圖6所示:圖6 LCD顯示電路6.系統(tǒng)電源:雙電源設(shè)計是本設(shè)計的重點。220V交流轉(zhuǎn)5V直流穩(wěn)壓電源會更加安全、實用。當(dāng)沒有交流電時,系統(tǒng)采用干電池供電;當(dāng)接通交流電時,則電路自動切換到交流電供電,并且對干電池進行慢性充電。電路圖如圖7:圖7 電源電路7.整體電路:系統(tǒng)整體電路如圖8 所示:圖8 系統(tǒng)總體電路圖五、系統(tǒng)軟件設(shè)計流程:1.主程序流程如圖9所示:圖9 系統(tǒng)主程序流程2.時間設(shè)定程序流程如圖10所示: 圖10 顯示時間子程序流程3. 溫度測量流程圖如圖11所示: 圖11 溫度測量程序流程圖4.鬧鈴設(shè)定流程圖如圖12所示: 圖12 鬧鈴

12、設(shè)定程序流程圖5. 生日設(shè)定流程圖如圖13所示: 圖13 生日設(shè)定程序流程圖六、程序:/實時時鐘寫入一字節(jié)(內(nèi)部函數(shù)) void DS1302InputByte(uchar d) uchar i; ACC = d; for(i=8; i0; i-) io = ACC0; /相當(dāng)于匯編中的 RRC clk = 1; clk = 0; ACC = ACC 1; /實時時鐘讀取一字節(jié)(內(nèi)部函數(shù)) uchar DS1302OutputByte(void) uchar i; for(i=8; i0; i-) ACC = ACC 1; /相當(dāng)于匯編中的 RRC ACC7 = io; clk = 1; cl

13、k = 0; return(ACC); /寫入DS1302數(shù)據(jù)/參數(shù)說明:ucAddr -DS1302地址, ucData-要寫的數(shù)據(jù) *void Write1302(uchar ucAddr, uchar ucDa) rst = 0; clk = 0; rst = 1; DS1302InputByte(ucAddr); / 地址,命令 DS1302InputByte(ucDa); / 寫1Byte數(shù)據(jù) clk = 1; rst = 0; /讀取DS1302某地址的數(shù)據(jù)uchar Read1302(uchar ucAddr) uchar ucData; rst = 0; clk = 0; rs

14、t = 1; DS1302InputByte(ucAddr|0x01); / 地址,命令 ucData = DS1302OutputByte(); / 讀1Byte數(shù)據(jù) clk = 1; rst = 0; return(ucData);/獲取時鐘芯片的時鐘數(shù)據(jù)到自定義的結(jié)構(gòu)型數(shù)組void DS1302_GetTime(SYSTEMTIME *Time) uchar ReadValue;ReadValue = Read1302(DS1302_SECOND);Time-Second = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);/由高低各四位組成,轉(zhuǎn)BCD碼

15、為十進制碼ReadValue = Read1302(DS1302_MINUTE);Time-Minute = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_HOUR);Time-Hour = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_DAY);Time-Day = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_WEEK

16、);Time-Week = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_MONTH);Time-Month = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_YEAR);Time-Year = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);七、多功能數(shù)字時鐘使用說明:1) A(調(diào)整切換鍵):進行時間、鬧鈴以及生日的設(shè)置,調(diào)整內(nèi)容切換。2) B(調(diào)整加/生日設(shè)定):在時間顯示界

17、面中按A鍵后,進入時間調(diào)整。按B鍵對應(yīng)閃爍內(nèi)容加1;在時間顯示界面中長按該鍵進入生日信息設(shè)定,按A鍵選擇調(diào)整內(nèi)容,按B鍵加1,C鍵減1,D鍵退出設(shè)定。當(dāng)設(shè)定生日到時,當(dāng)日7點整第一次響鈴提醒,以后每隔一小時整點提醒,直至當(dāng)日晚上22點整最后一次提醒。(注意:生日到時鬧鈴和整點報時不起作用)。3) C(調(diào)整減/日期提醒):在時間顯示界面中按A鍵后,進入時間調(diào)整。按C鍵對應(yīng)閃爍內(nèi)容加1;在時間顯示界面中長按該鍵進入日期提醒查看。4) D(退出鍵/鬧鈴設(shè)定):在各種設(shè)定模式(包括時間、生日、鬧鈴設(shè)定)下,按該鍵退出設(shè)定;若在時間顯示界面中短按該鍵,則進入鬧鈴、生日信息查看;長按則進行鬧鈴設(shè)定。(注意

18、:鬧鈴為整點時,整點報時不起作用,并且鬧鈴在任何時刻下只要到點都響鈴)。5) E(屏幕背光鍵):按下該鍵不放則屏幕背光。調(diào)整左上方的藍(lán)色變阻器可調(diào)整LCD顯示灰度;調(diào)整右上方的藍(lán)色變阻器可調(diào)整LCD背光亮度。6) F(復(fù)位鍵):按下該鍵系統(tǒng)復(fù)位,系統(tǒng)從頭開始執(zhí)行程序。如遇故障可按下該鍵進行系統(tǒng)復(fù)位。復(fù)位不會造成時間、生日和鬧鈴等信息的丟失。注:系統(tǒng)在不進行任何操作時,10秒后會自動關(guān)閉屏幕,以達(dá)到省電環(huán)保的效果。此時按任意鍵可退出并返回顯示。六、測量及其結(jié)果分析:1.基本部分測試與分析:(1)測試儀器:秒表、溫度表、萬用表(2)基本要求部分的測試與分析:l 系統(tǒng)上電后,首先顯示歡迎詞,接著進入

19、顯示時間和溫度。按各功能鍵執(zhí)行相應(yīng)的功能。l 顯示時間時通過與秒表對比,測試的系統(tǒng)時鐘走時準(zhǔn)確,誤差很小。l 設(shè)定鬧鈴時間,當(dāng)鬧鈴時間到時響鈴。響鈴長度為1分鐘,期間按除E鍵(屏幕背光鍵)外的任意一鍵退出響鈴。l 顯示溫度與溫度計對比,測試系統(tǒng)溫度的精度。將溫度傳感器DS18B20和溫度計放入不同的測試環(huán)境中進行測試,所得測試結(jié)果如表1所示。表1 數(shù)字溫度計與標(biāo)準(zhǔn)溫度計測量值比較表:溫度計示值(攝氏度)28.730.733.545.0溫度輸出(攝氏度)29.030.833.345.1由測試知,數(shù)字鐘的輸出與溫度計值基本上相等,誤差不大于0.5度。l 上電后記錄下時間,去掉220V和干電池電源,

20、隔5分鐘過再次通電,測得系統(tǒng)時鐘仍舊走時準(zhǔn)確。經(jīng)測試,本系統(tǒng)的時鐘掉電保護時間長達(dá)9分鐘。2.發(fā)揮部分測試與分析:1) 系統(tǒng)可顯示溫度00.099.9攝氏度。2) 拔掉交流電,裝上干電池系統(tǒng)工作,說明干電池作為電源為系統(tǒng)供電;卸掉干電池接上交流電系統(tǒng)也工作,表明交流電也能適合系統(tǒng)使用。同時裝上干電池,測得干電池回路中的二極管壓降為0,表明二極管截止,干電池不作為系統(tǒng)的電源工作;同時測得對干電池的充電電流約為10mA,即交流電對充電池進行慢性充電。3) 當(dāng)生日和鬧鈴設(shè)置為開時,主顯單上有標(biāo)志顯示(鬧鈴為A,生日為B)。當(dāng)設(shè)定時間或日期到時,系統(tǒng)開始響鈴,期間按AD鍵可退出。生日響鈴范圍:生日當(dāng)日7:00開始第一次響鈴

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論