溫度萬年歷的單片機(jī)實(shí)現(xiàn)實(shí)驗(yàn)報(bào)告_第1頁
溫度萬年歷的單片機(jī)實(shí)現(xiàn)實(shí)驗(yàn)報(bào)告_第2頁
溫度萬年歷的單片機(jī)實(shí)現(xiàn)實(shí)驗(yàn)報(bào)告_第3頁
溫度萬年歷的單片機(jī)實(shí)現(xiàn)實(shí)驗(yàn)報(bào)告_第4頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、下載可編輯目錄一、溫度萬年歷設(shè)計(jì)的目的和意義1二、電路設(shè)計(jì)方案1三、原理設(shè)計(jì)1四、方案結(jié)構(gòu)圖3五、溫度萬年歷1602 驅(qū)動(dòng)及顯示的詳細(xì)設(shè)計(jì)6六、心得與總結(jié)14.專業(yè) .整理 .下載可編輯一、溫度萬年歷設(shè)計(jì)的目的和意義隨著社會的發(fā)展, 信息量的不斷提升以前對信息交換的要求提高,溫度萬年歷的發(fā)展以及投入市場變得非常有必要。本設(shè)計(jì)是基于 51 單片機(jī)并模擬日常所用的日歷,而 51 系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。通過本次設(shè)計(jì),學(xué)習(xí)和鞏固了單片機(jī)指令編程的相關(guān)知識, 熟悉單片機(jī)各部件的組成及其功能。本設(shè)計(jì)將制作一種基于單片機(jī)控制的帶實(shí)時(shí)溫度顯示、具有定時(shí)功能的電子萬年歷。傳統(tǒng)的電子日

2、歷大都體積大,功耗大,顯示不準(zhǔn)確等特點(diǎn)。為了縮小體積,減小功耗,使其變得小巧靈敏,本設(shè)計(jì)加入了時(shí)鐘芯片 DS1302,可對時(shí)間進(jìn)行準(zhǔn)確記時(shí), 同時(shí)可設(shè)置定時(shí)時(shí)間, 實(shí)現(xiàn)定時(shí)功能。 另外本設(shè)計(jì)具有顯示實(shí)時(shí)溫度的功能。傳統(tǒng)的溫度傳感器系統(tǒng)大都采用放大、調(diào)理、 A/D 轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字信號送入計(jì)算機(jī)處理, 處理電路復(fù)雜、 可靠性相對較差, 占用計(jì)算機(jī)的資源比較多。本設(shè)計(jì)將采用 DS18B20一線制數(shù)字溫度傳感器, 可將溫度信號直接轉(zhuǎn)換成數(shù)字信號送給微處理器, 電路簡單, 成本低,實(shí)現(xiàn)了時(shí)間溫度同時(shí)顯示的效果。最后,溫度和時(shí)間都將通過 LCD1602液晶顯示器進(jìn)行顯示。 測試表明系統(tǒng)達(dá)到了設(shè)計(jì)要求的

3、各項(xiàng)功能,各部分工作正常。二、電路設(shè)計(jì)方案采用 AT89S52作為主控制系統(tǒng) ;直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號;LCD液晶顯示屏作為顯示。三、原理設(shè)計(jì)1. 基本原理:本電路是由AT89S52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V 超低壓工作;時(shí)鐘電路 直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號; 溫度的采集由DS18B20構(gòu)成;顯示部份由LCD液晶顯示屏顯示。同時(shí)還添加了提醒功能,通過蜂鳴器實(shí)現(xiàn)。2. 總體框圖.專業(yè) .整理 .下載可編輯Lcd1602 液晶屏顯示模STC89C52晶振振蕩模塊主控制模塊鍵盤模塊圖 13. 單元電路設(shè)計(jì)單片機(jī)主控制模塊的設(shè)計(jì)AT89S52單片機(jī)為40

4、引腳雙列直插芯片, 有四個(gè) I/O 口 P0,P1,P2,P3,MCS-51單片機(jī)共有 4 個(gè) 8 位的 I/O 口( P0、 P1、P2、 P3),每一條 I/O 線都能獨(dú)立地作輸出或輸入。單片機(jī)的最小系統(tǒng)如下圖 2 所示 ,18 引腳和 19 引腳接時(shí)鐘電路 ,XTAL1 接外部晶振和微調(diào)電容的一端, 在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2 接外部晶振和微調(diào)電容的另一端, 在片內(nèi)它是振蕩器倒相放大器的輸出。第 9 引腳為復(fù)位輸入端, 接上電容 , 電阻及開關(guān)后夠上電復(fù)位電路,20 引腳為接地端 ,40 引腳為電源端。DS18B20 性能獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通信簡單的多點(diǎn)

5、分布應(yīng)用無需外部器件可通過數(shù)據(jù)線供電零待機(jī)功耗測溫范圍 -55+125 ,以 0.5 遞增可編程的分辨率為912 位,對應(yīng)的可分辨溫度分別為0.5 、0.25 、0.125 和 0.0625 溫度數(shù)字量轉(zhuǎn)換時(shí)間 200ms,12 位分辨率時(shí)最多在 750ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費(fèi)品、溫度計(jì)和任何熱感測系統(tǒng)負(fù)壓特性:電源極性接反時(shí),傳感器不會因發(fā)熱而燒毀,但不能正常工作GND:地DQ:單線運(yùn)用的數(shù)據(jù)輸入/ 輸出引腳VD:可選的電源引腳.專業(yè) .整理 .下載可編輯4. 元件列表元件列表器件數(shù)量光匯 51 單片機(jī)開發(fā)板1杜邦線若干DS18B201LCD1602液晶屏1四、

6、方案結(jié)構(gòu)圖此方案由于只用到51 單片機(jī)芯片,因此各個(gè)功能都是由編程來實(shí)現(xiàn)。大體程序流程框圖如下按鍵調(diào)整結(jié)構(gòu)圖:.專業(yè) .整理 .下載可編輯時(shí)鐘調(diào)整一時(shí)鐘調(diào)整二Protues 電路圖(部分):.專業(yè) .整理 .下載可編輯溫度萬年歷整體電路圖時(shí)鐘調(diào)整按鍵圖時(shí)鐘調(diào)整 LCM顯示圖.專業(yè) .整理 .下載可編輯五、溫度萬年歷1602 驅(qū)動(dòng)及顯示的詳細(xì)設(shè)計(jì)驅(qū)動(dòng)部分的代碼:頭文件如下:#ifndef _1602_H_#define _1602_H_void RdBusy(void);void WrCommand(char command);void WrData(char wrdata);#endif160

7、2 驅(qū)動(dòng)源代碼如下:/*LCM1602驅(qū)動(dòng)程序8 線間接控制方式晶體頻率 12MHz*/*1602LCD各引腳接口說明VSS 電源地VDD 電源正極VL液晶顯示偏壓RS數(shù)據(jù) / 命令選擇R/WRW讀寫選擇/*LCM1602驅(qū)動(dòng)程序8 線間接控制方式晶體頻率 12MHz*.專業(yè) .整理 .下載可編輯*/#include <reg51.h>#include <intrins.h>/*1602LCD各引腳接口說明VSS 電源地VDD 電源正極VL液晶顯示偏壓RS數(shù)據(jù) / 命令選擇R/W RW 讀寫選擇E 使能信號D0數(shù)據(jù)背光源正極D1數(shù)據(jù)背光源負(fù)極*/*1602 接口定義 *

8、/#define LCM P0sbitRS=P25;/0,command; 1,datajkhjholkhkksbitRW=P26;/0,write; 1,readsbitE=P27;/ 下降沿有效/* 常數(shù)定義 */#define CMD 0/RS=0, 命令#define DAT 1/RS=1, 數(shù)據(jù)/ 模塊忙閑判斷void RdBusy(void).專業(yè) .整理 .下載可編輯char flag=0xff;doLCM=0xff;RS=CMD;RW=1;E=1;_nop_();_nop_();_nop_();/ 這三句很重要flag=LCM;E=0;flag&=0x80;while(

9、flag);/ 寫命令void WrCommand(char command)LCM=command;RS=CMD;RW=0;E=1;E=0;RW=1;RdBusy();/ 等待 LCM完成本次操作.專業(yè) .整理 .下載可編輯/ 寫數(shù)據(jù)void WrData(char wrdata)LCM=wrdata;RS=DAT;RW=0;E=1;E=0;RW=1;RdBusy();/ 等待 LCM完成本次操作/*E 使能信號D0數(shù)據(jù)背光源正極D1數(shù)據(jù)背光源負(fù)極*/顯示頭文件:#ifndef _DISPLAY_H_#define _DISPLAY_H_#define uchar unsigned char

10、voiddelayx5ms(int dcnt);void LcmInit(void);void ClrLine(uchar line );void Write1Line(uchar line,uchar* buf);void WrData2Addr(uchar addr,uchar dat);void disall();void offall();.專業(yè) .整理 .下載可編輯#endif顯示 C源代碼:#include <reg51.h>#include "1602.h"#define LCM P0#define uchar unsigned charexter

11、n uchar flag;extern uchar year,month,date,day,hour,minu,sec;extern uchar Dispbuf016;extern uchar Dispbuf116;extern code uchar Num2Asc16;extern code uchar WEEK21;extern uchar s1num;/ 延遲子程序,基數(shù) 5msvoiddelayx5ms(int dcnt)int tmp;for(; dcnt>0; dcnt-)tmp=0x230;while(tmp-)continue;/ 模塊初始化void LcmInit(vo

12、id)LCM=0;delayx5ms(40);/ 延遲 200ms.專業(yè) .整理 .下載可編輯WrCommand(0x38);/8bit 接口,兩行顯示,5×7 點(diǎn)陣delayx5ms(2);/ 延遲 10msWrCommand(0x38);/ 同上,該指令要寫兩次delayx5ms(1);/ 延遲 5msWrCommand(0x06);/ 地址加一,字符不移動(dòng)WrCommand(0x0c);/ 開顯示, 光標(biāo)不顯示, 光標(biāo)不閃爍WrCommand(0x01);/ 清屏/ 指定行清屏子程序void ClrLine(uchar line )unsigned char i=0;WrCom

13、mand(0x80+line);/ 指向擦除行的首字符位for(;i<16;i+)WrData(' ');void Write1Line(uchar line,uchar* buf)uchar addr=0,i;if(line=0)addr=0x80;elseaddr=0xc0;WrCommand(addr);for(i=0;i<16;i+)WrData(*buf+);.專業(yè) .整理 .下載可編輯void WrData2Addr(uchar addr,uchar dat)WrCommand(addr);WrData(dat);void disall()Dispbuf

14、03=Num2Ascyear/10;Dispbuf04=Num2Ascyear%10;Dispbuf06=Num2Ascmonth/10;Dispbuf07=Num2Ascmonth%10;Dispbuf09=Num2Ascdate/10;Dispbuf010=Num2Ascdate%10;Dispbuf012=WEEKday*3;Dispbuf013=WEEKday*3+1;Dispbuf014=WEEKday*3+2;Dispbuf11=Num2Aschour/10;Dispbuf12=Num2Aschour%10;Dispbuf14=Num2Ascminu/10;Dispbuf15=Nu

15、m2Ascminu%10;Dispbuf17=Num2Ascsec/10;Dispbuf18=Num2Ascsec%10;Write1Line(0,&Dispbuf00);.專業(yè) .整理 .下載可編輯Write1Line(1,&Dispbuf10);void offall()switch(s1num)case 1:Dispbuf17=' 'Dispbuf18=' 'break;case 2:Dispbuf14=' 'Dispbuf15=' 'break;case 3:Dispbuf11=' 'Dis

16、pbuf12=' 'break;case 4:Dispbuf012=' 'Dispbuf013=' 'Dispbuf014=' 'break;case 5:Dispbuf09=' 'Dispbuf010=' 'break;case 6:Dispbuf06=' '.專業(yè) .整理 .下載可編輯Dispbuf07=' 'break;case 7:Dispbuf03=' 'Dispbuf04=' 'break;default :*Dispbuf0 = " "*Dispbuf1 = " "Write1Line(0,&Dispbuf00);Write1Line(1,&Dispbuf10);六、心得與總結(jié)經(jīng)過萬年歷的設(shè)計(jì), 讓我學(xué)到了很多, 讓我認(rèn)識到了學(xué)習(xí)基礎(chǔ)知識的重要性,當(dāng)設(shè)計(jì)完整的系統(tǒng)時(shí), 要考慮到硬件和軟件兩者的結(jié)合, 有時(shí)硬件的不足, 我們可以用軟件程序來彌補(bǔ), 從而節(jié)約硬件成本, 在設(shè)計(jì)軟件程序時(shí)要模塊化, 可以提高程序的可讀性。有一些靈活的技巧就需要我們認(rèn)真的閱讀元件的數(shù)據(jù)手冊,從中索取對自己有用的信息。在這短

溫馨提示

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

評論

0/150

提交評論