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

下載本文檔

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

文檔簡介

1、單片機課程設(shè)計報告題目: 數(shù)字溫度計 院 (系) 工學(xué)院(電氣工程系) 專 業(yè) 電子信息工程 年 級 10-2班 姓 名 趙鑫 學(xué) 號 10043225指導(dǎo)教師 舒昌 2013年 12 月 1 日電子信息工程專業(yè)10級學(xué)生單片機原理課程設(shè)計任務(wù)書課程設(shè)計題目三、數(shù)字溫度計指導(dǎo)教師舒 昌職稱講師設(shè)計任務(wù)和要求:1 基本要求(1) 采用DS18B20作為溫度傳感器進行溫度檢測(2) 對采集溫度進行顯示(顯示溫度分辨率0.1)(3) 采集溫度數(shù)值應(yīng)采用數(shù)字濾波措施,保證顯示數(shù)據(jù)穩(wěn)定(4) 顯示數(shù)據(jù),無數(shù)據(jù)位必須消隱。2.設(shè)計步驟(1) 使用Proteus按設(shè)計要求繪制電路圖。(2) 按要求編寫相應(yīng)程

2、序。(3) 使用Proteus仿真程序,對程序進行調(diào)試。(4) 撰寫課程設(shè)計報告3撰寫課程設(shè)計報告課程設(shè)計報告內(nèi)容包括題目、摘要、目錄、正文、結(jié)論、致謝、參考文獻等。學(xué)生在完成上述全部工作之后,應(yīng)將全部內(nèi)容以先后順序?qū)懗稍O(shè)計報告一份,闡述整個設(shè)計內(nèi)容,要求重點突出、特色鮮明、語言簡練、文字通暢,字跡工整。報告書以A4紙打印,裝訂成冊(文字不少于3000 字)。數(shù)字溫度計摘要:隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片

3、機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,該設(shè)計控制器使用單片機STC89S51,測溫傳感器使用DS18B20,用LCD實現(xiàn)溫度顯示,能準(zhǔn)確達到以上要求。隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機控制的數(shù)字溫度計,本溫度計屬于多功能溫度計,可以設(shè)置上下報警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時,可以報警。關(guān)鍵詞:單片機,數(shù)字控制,溫度計一、設(shè)計任務(wù)與要求(1)采用DS18B20作為溫度傳感器進行溫度檢測(2)

4、對采集溫度進行顯示(顯示溫度分辨率0.1)(3)采集溫度數(shù)值應(yīng)采用數(shù)字濾波措施,保證顯示數(shù)據(jù)穩(wěn)定(4)顯示數(shù)據(jù),無數(shù)據(jù)位必須消隱。二方案設(shè)計與論證 數(shù)字溫度計是測溫儀器類型的其中之一。根據(jù)所用測溫物質(zhì)的不同和測溫范圍的不同,有煤油溫度計、酒精溫度計、水銀溫度計、氣體溫度計、電阻溫度計、溫差電偶溫度計、輻射溫度計和光測溫度計、雙金屬溫度計等。(1)、溫度傳感模塊方案一:采用熱敏電阻,熱敏電阻精度、重復(fù)性、可靠性較差,對于檢測1攝氏度的信號是不適用的,也不能滿足測量范圍。在溫度測量系統(tǒng)中,也常采用單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號,必須經(jīng)過A/D轉(zhuǎn)換后才能送給

5、計算機,這樣就使測溫系統(tǒng)的硬件結(jié)構(gòu)較復(fù)雜。另外,這種測溫系統(tǒng)難以實現(xiàn)多點測溫,也要用到復(fù)雜的算法,一定程度上也增加了軟件實現(xiàn)的難度。 方案二:采用單總線數(shù)字溫度傳感器DS18B20測量溫度,直接輸出數(shù)字信號。便于單片機處理及控制,節(jié)省硬件電路。且該芯片的物理化學(xué)性很穩(wěn)定,此元件線形性能好,在0100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89C51構(gòu)成的溫度裝置,它直接輸出溫度的數(shù)字信號到微控制器。每只DS18B20具有一個獨有的不可修改的64位序列號,根據(jù)序列號可訪問不同的器件。這樣一條總線上可掛接多個D

6、S18B20傳感器,實現(xiàn)多點溫度測量,輕松的組建傳感網(wǎng)絡(luò)。 綜上分析,我們選用第二種方案。圖1.溫度傳感模塊仿真圖(2)、顯示模塊 方案一:采用8位段數(shù)碼管,將單片機得到的數(shù)據(jù)通過數(shù)碼管顯示出來。該方案簡單易行,但所需的元件較多,且不容易進行操作,可讀性差,一旦設(shè)定后很難再加入其他的功能,顯示格式受限制,且大耗電量大,不宜用電池給系統(tǒng)供電。 方案二:采用液晶顯示器件,液晶顯示平穩(wěn)、省電、美觀,更容易實現(xiàn)題目要求,對后續(xù)的園藝通兼容性高,只需將軟件作修改即可,可操作性強,也易于讀數(shù),采用RT1602兩行十六個字符的顯示,能同時顯示其它的信息如日期、時間、星期、溫度。 綜上分析,我們采用了第二個方

7、案圖2.顯示模塊仿真圖三、單元電路設(shè)計采用AT89S52單片機作為控制核心對溫度傳感器DS18B20控制,讀取溫度信號并進行計算處理,并送到液晶顯示器LCD1602顯示。 按照系統(tǒng)設(shè)計功能的要求,確定系統(tǒng)由3個模塊組成:主控制器、測溫電路和顯示電路。四、總原理圖圖3.總原理圖 DS18B20內(nèi)部的低溫度系數(shù)振蕩器是一個振蕩頻率隨溫度變化很小的振蕩器,為計數(shù)器1提供一頻率穩(wěn)定的計數(shù)脈沖。高溫度系數(shù)振蕩器是一個振蕩頻率對溫度很敏感的振蕩器,為計數(shù)器2提供一個頻率隨溫度變化的計數(shù)脈沖。初始時,溫度寄存器被預(yù)置成-55,每當(dāng)計數(shù)器1從預(yù)置數(shù)開始減計數(shù)到0時,溫度寄存器中寄存的溫度值就增加1,這個過程重

8、復(fù)進行,直到計數(shù)器2計數(shù)到0時便停止。初始時,計數(shù)器1預(yù)置的是與-55相對應(yīng)的一個預(yù)置值。以后計數(shù)器1每一個循環(huán)的預(yù)置數(shù)都由斜率累加器提供。為了補償振蕩器溫度特性的非線性性,斜率累加器提供的預(yù)置數(shù)也隨溫度相應(yīng)變化。計數(shù)器1的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器寄存值增加1計數(shù)器所需要的計數(shù)個數(shù)。DS18B20內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。在計數(shù)器2停止計數(shù)后,比較器將計數(shù)器1中的計數(shù)剩余值轉(zhuǎn)換為溫度值后與0.25進行比較,若低于0.25,溫度寄存器的最低位就置0;若高于0.25,最低位就置1;若高于0.75時,溫度寄存器的最低位就進位然后置0。這樣,經(jīng)過比較后所得

9、的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表0.5,四舍五入最大量化誤差為1/2LSB,即0.25。溫度寄存器中的溫度值以9位數(shù)據(jù)格式表示,最高位為符號位,其余8位以二進制補碼形式表示溫度值。測溫結(jié)束時,這9位數(shù)據(jù)轉(zhuǎn)存到暫存存儲器的前兩個字節(jié)中,符號位占用第一字節(jié),8位溫度數(shù)據(jù)占據(jù)第二字節(jié)。DS18B20測量溫度時使用特有的溫度測量技術(shù)。DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號;同樣的,高溫度系數(shù)振蕩器則將被測溫度轉(zhuǎn)換成頻率信號。當(dāng)計數(shù)門打開時,DS18B20進行計數(shù),計數(shù)門開通時間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對頻率的非線性度加以補償。測量結(jié)果存入

10、溫度寄存器中。一般情況下的溫度值應(yīng)該為9位,但因符號位擴展成高8位,所以最后以16位補碼形式讀出。DS18B20工作過程一般遵循以下協(xié)議:初始化ROM操作命令存儲器操作命令處理數(shù)據(jù)DS18B20的高速暫存存儲器由9個字節(jié)組成,其分配如圖3所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。表1.存儲器分配表 五、軟件部分 系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計算溫度子程序、顯示等等。 1.主程序主要功能是完成DS18B20的初始化工作,并進行讀溫度,將溫度轉(zhuǎn)化成為壓縮

11、BCD碼 并在顯示器上顯示傳感器所測得的實際溫度。2.讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需要進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。3.溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辯率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。4.計算溫度子程序計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負(fù)的判定。 六、調(diào)試與分析數(shù)字溫度計在測量中除誤差外,還有內(nèi)部固定偏差,視覺,環(huán)境溫度的變化,選用期間的溫漂,器件的精度,電源電壓的波動,輸入端各種雜散參數(shù)以及測量信號寫波分量

12、等因素引起的系統(tǒng)誤差。一起精度不高,認(rèn)為讀書存在誤差。測量值達不到理論值,多次測量取平均值誤差降到最小。圖4.調(diào)試前圖5.調(diào)試后七、總結(jié)與心得通過這次基于DS18B20傳感器測量溫度的設(shè)計,我學(xué)到了許多東西。這次設(shè)計加強了我們獨立思考的能力。一個好的設(shè)計需要通過我們不斷的思維,不斷的改善。經(jīng)過設(shè)計之后,我們不像以前那樣,遇到問題都不愿意獨立思考,只會一味的向別人求助。現(xiàn)在,我們會通過自己的思考,解決我們自己遇到的問題和困難。還有,我們學(xué)會不能手高眼低,要踏踏實實,從基礎(chǔ)學(xué)起、做起。一開始我們通過討論,初步有了設(shè)計的方案,覺得還是比較簡單的。但是,具體到設(shè)計時,我們遇到了很多麻煩,比如如何將傳感

13、器得到的溫度轉(zhuǎn)換成為對應(yīng)的電信號,如何將電信號輸送到單片機進行控制,如何把測得的溫度用數(shù)字顯示出來等等。這就要求我們學(xué)習(xí)要一步一個腳印,掌握扎實的理論基礎(chǔ)了。最重要的一點是,我們在這次設(shè)計中培養(yǎng)了自己的學(xué)習(xí)能力。就那DS18B20來說,由于我們書本上沒有介紹到這種溫度傳感器,所以我們就通過學(xué)習(xí)DS18B20的說明書,了解它工作的原理以及特性,并弄清楚在實際應(yīng)用時要注意的事項,對DS18B20進行初始化、編程的要求和規(guī)定等。培養(yǎng)了自主學(xué)習(xí)的能力,無論以后我們要做什么樣的設(shè)計,我們都能夠通過查閱資料來實現(xiàn)。最后,本次設(shè)計能夠順利完成,我要特別感謝實驗室老師給予的大力支持和熱心幫助。七、參考文獻【1

14、】 梁森,歐陽三泰,王侃夫. 自動檢測技術(shù)及應(yīng)用【M】.北京:機械工業(yè)出版社,2009.【2】 高洪志.MCS-51單片機原理及應(yīng)用技術(shù)教程【M】北京:人民郵電出版社,2009.附件完整程序如下:#include #include typedef unsigned char uint8;#define uint unsigned int#define uchar unsigned charsbit DQ = P33; / 定義DQ引腳為P3.3uchar code Bw10= 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;/百位編碼ucha

15、r code Xsw16=0x30,0x31,0x31,0x32,0x33,0x33,0x34,0x34,0x35,0x36,0x36,0x37,0x38,0x38,0x39,0x39;/小數(shù)位編碼sbit RS = P20 ;sbit RW = P21 ;sbit EN = P22 ;sbit BUSY = P07;uchar wendu;uchar temp_g,temp_d;unsigned char code word1=Temperature:;void delay(uint xms)uint i,j;for(i=xms;i0;-i)for(j=110;j0;-j);void Del

16、ayus(int t) /在11.059MHz的晶振條件下調(diào)用本函數(shù)需要24s ,然后每次計數(shù)需16s int s; for (s=0; st;s+); 等待繁忙標(biāo)志void wait(void)P0 = 0xFF;doRS = 0;RW = 1;EN = 0;EN = 1;while (BUSY = 1);EN = 0; 寫數(shù)據(jù)void w_dat(uint8 dat)wait();EN = 0;P0 = dat;RS = 1;RW = 0;EN = 1;EN = 0; 寫命令void w_cmd(uint8 cmd)wait();EN = 0;P0 = cmd;RS = 0;RW = 0;

17、EN = 1;EN = 0;發(fā)送字符串到LCDvoid w_string(uint8 addr_start, uint8 *p)w_cmd(addr_start);while (*p != 0)w_dat(*p+); 初始化1602void Init_LCD1602(void)w_cmd(0x38); / 16*2顯示,5*7點陣,8位數(shù)據(jù)接口w_cmd(0x0c); / 顯示器開、光標(biāo)開、光標(biāo)允許閃爍w_cmd(0x06); / 文字不動,光標(biāo)自動右移w_cmd(0x01); / 清屏uchar Reset()/完成單總線的復(fù)位操作。 uchar d; DQ = 0; / 將 DQ 線拉低

18、Delayus(29); / 保持 480s .復(fù)位時間為480s,因此延時時間為(480-24)/16 = 28.5,取29s。 DQ = 1; / DQ返回高電平 Delayus(3); / 等待存在脈沖.經(jīng)過70s之后檢測存在脈沖,因此延時時間為(70-24)/16 = 2.875,取3s。 d = DQ; / 獲得存在信號 Delayus(25); / 等待時間隙結(jié)束 return(d); / 返回存在信號,0 = 器件存在, 1 = 無器件void write_bit(uchar bitval)/向單總線寫入1位值:bitval DQ = 0; / 將DQ 拉低開始寫時間隙 if(b

19、itval=1) DQ =1; / 如果寫1,DQ 返回高電平 Delayus(5);/ 在時間隙內(nèi)保持電平值, DQ = 1; / Delayus函數(shù)每次循環(huán)延時16s,因此Delayus(5)=5*16+24=104svoid ds18write_byte(char val)/向單總線寫入一個字節(jié)值:val uchar i; uchar temp; for (i=0; ii; temp &= 0x01; write_bit(temp); Delayus(5);uchar read_bit()/從單總線上讀取一位信號,所需延時時間為15s,因此無法調(diào)用前面定義 /的Delayus()函數(shù),而

20、采用一個for()循環(huán)來實現(xiàn)延時。 uchar i; DQ = 0; /將DQ 拉低開始讀時間隙 DQ = 1; / 然后返回高電平 for (i=0; i3; i+); / 延時15s return(DQ); / 返回 DQ 線上的電平值uchar ds18read_byte()/從單總線讀取一個字節(jié)的值 uchar i; uchar value = 0; for (i=0;i8;i+) / 讀取字節(jié),每次讀取一個字節(jié) if(read_bit() value|=0x01i; / 然后將其左移 Delayus(6); return(value);int Readtemperature()/如果單總線節(jié)點上只有一個器件則可以直接掉用本函數(shù)。如果節(jié)點上有多個器 /件,為了避免數(shù)據(jù)沖突,應(yīng)使用Match ROM函數(shù)來選中特定器件。 uchar temp_d,temp_g,k,get2,temp; Reset(); ds18write_byte(0xcc); / 跳過 ROM ds18write_byte(0x44); / 啟動溫度轉(zhuǎn)換 Delayus(5); Reset(); ds18write_byte(0xcc); / 跳過 ROM ds18write_byte(0xbe); / 讀暫存器

溫馨提示

  • 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

提交評論