基于 DS18B20 數(shù)字溫度計設(shè)計(共18頁)_第1頁
基于 DS18B20 數(shù)字溫度計設(shè)計(共18頁)_第2頁
基于 DS18B20 數(shù)字溫度計設(shè)計(共18頁)_第3頁
基于 DS18B20 數(shù)字溫度計設(shè)計(共18頁)_第4頁
基于 DS18B20 數(shù)字溫度計設(shè)計(共18頁)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 測控(c kn)技術(shù)與儀器 專業(yè)(zhuny)測控系統(tǒng)原理(yunl)與設(shè)計課程設(shè)計任務(wù)書淮陰工學(xué)院電子與電氣工程學(xué)院 2014年6月 測控(c kn)系統(tǒng)原理與設(shè)計課程設(shè)計課題(kt):基于(jy) DS18B20 數(shù)字溫度計設(shè)計 班級 學(xué)號 學(xué)生姓名 專業(yè) 測控技術(shù)與儀器 系別 測控系 指導(dǎo)教師 楊銀賢 李 華 淮陰工學(xué)院電子與電氣工程學(xué)院2014年6月 目錄(ml)1 概述(i sh)1.1 課程設(shè)計的意義(yy)1.2 設(shè)計的任務(wù)和要求2 系統(tǒng)總體方案及硬件設(shè)計2.1 數(shù)字溫度計設(shè)計方案論證2.2 系統(tǒng)總體設(shè)計2.3 系統(tǒng)模塊2.3.1 主控制器2.3.2 顯示電路2.3.3 溫度傳

2、感器2.3.4 報警溫度調(diào)整按鍵3 系統(tǒng)軟件算法分析3.1 主程序流程圖3.2 讀出溫度子程序3.3 溫度轉(zhuǎn)換命令子程序3.4 計算溫度子程序3.5 顯示數(shù)據(jù)刷新子程序3.6 按鍵掃描處理子程序4 實驗仿真5 總結(jié)與體會查考文獻附 1 源程序代碼1 概述(i sh)1.1 課程設(shè)計的意義(yy) 單片機是隨著超大規(guī)模集成電路技術(shù)的發(fā)展而誕生的,由于它具有體積小、功能強、性價比高等特點,所以廣泛應(yīng)用于電子儀表、家用電器(ji yn din q)、節(jié)能裝置、軍事裝置、機器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡化了設(shè)計。本設(shè)計主要利用單片機和LCD液

3、晶顯示屏設(shè)計一個數(shù)字顯示的溫度計。選題的意義在于通過這次設(shè)計可以將平時在課堂上學(xué)到的關(guān)于單片機的知識應(yīng)用與實踐中,而且更加深入的認識到單片機在現(xiàn)代生活和生產(chǎn)中的重要性。1.2 設(shè)計的任務(wù)和要求1、基本范圍0-1002、精度誤差小于 0.53、LED 數(shù)碼直讀顯示2 系統(tǒng)總體方案及硬件設(shè)計2.1 數(shù)字溫度計設(shè)計方案論證考慮到用溫度傳感器, 在單片機電路設(shè)計中, 大多都是使用傳感器, 所以可以采用一只溫度傳感器 DS18B20, 此傳感器, 可以很容易直接讀取被測溫度值, 進行轉(zhuǎn)換, 電路簡單, 精度高, 軟硬件都以實現(xiàn), 而且使用單片機的接口便于系統(tǒng)的再擴展,滿足設(shè)計要求。2.2 系統(tǒng)總體設(shè)計溫

4、度計電路設(shè)計總體設(shè)計方框圖如圖 1 所示, 控制器采用單片機 AT89S51, 溫度傳感器采用 DS18B20,用 3 位 LED 數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。圖 2.21 總體設(shè)計方框圖圖 2.2 2 系統(tǒng)(xtng)仿真圖2.3 系統(tǒng)(xtng)模塊 系統(tǒng)(xtng)由單片機最小系統(tǒng)、顯示電路、按鍵、溫度傳感器等組成。2.3.1 主控制器 單片機 AT89S51 具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)(xtng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。晶振采用(ciyng) 12MHZ。復(fù)位(f wi)電路采用上電加按鈕復(fù)位。圖 2

5、.3.11 晶振電路圖 2.3.12 復(fù)位電路 顯示電路采用 4 位共陰極 LED 數(shù)碼管, P0 口由上拉電阻提高驅(qū)動能力, 作為段碼輸出并作為數(shù)碼管的驅(qū)動。P2 口的低四位作為數(shù)碼管的位選端。采用動態(tài)掃描的方式顯示。圖 2.3.2 數(shù)碼管顯示電路2.3.3 溫度傳感器DS18B20 的性能特點(tdin)如下:1、獨特的單線接口僅需要(xyo)一個端口引腳進行通信;2、多個(du ) DS18B20 可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能3、無須外部器件;4、可通過數(shù)據(jù)線供電,電壓范圍為 3.05.5;5、零待機功耗;6、溫度以或位數(shù)字;7、用戶可定義報警設(shè)置;8、報警搜索命令識別并標志

6、超過程序限定溫度(溫度報警條件)的器件;9、負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;DS18B20 可以采用兩種方式供電, 一種是采用電源供電方式, 此時 DS18B20 的 1 腳接地,2 腳作為信號線,3 腳接電源。 另一種是寄生電源供電方式,如圖 4 所示單片機端口接單線總線,為保證在有效的 DS18B20 時鐘周期內(nèi)提供足夠的電流,可用一個 MOSFET 管來完成對總線的上拉。當 DS18B20 處于寫存儲器操作和溫度 A/D 轉(zhuǎn)換操作時, 總線上必須有強的上拉, 上拉開啟時間最大為 10us。采用寄生電源供電方式時 VDD 端接地。由于單線制只有一根線,因

7、此發(fā)送接口必須是三態(tài)的。圖 2.3.3 溫度傳感器與單片機的連接3 系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序, 讀出溫度子程序,溫度轉(zhuǎn)換命令子程序, 計算溫度子程序,顯示數(shù)據(jù)刷新子程序,按鍵掃描處理子程序等。3.1 主程序流程圖主程序的主要功能是負責溫度的實時顯示、 讀出并處理 DS18B20 的測量的當前溫度值,溫度測量每 1s 進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖 3.1 所示。3.2 讀出溫度(wnd)子程序讀出溫度(wnd)子程序的主要功能是讀出 RAM 中的 9 字節(jié)(z ji),在讀出時需進行 CRC 校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖 3

8、.2 示3.3 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令, 當采用 12 位分辨率時轉(zhuǎn)換時間約為750ms, 在本程序設(shè)計中采用 1s 顯示程序延時法等待轉(zhuǎn)換的完成。 溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖 3.3 所示 3.4 計算(j sun)溫度子程序 計算(j sun)溫度子程序?qū)?RAM 中讀取值進行(jnxng) BCD 碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖 3.4 所示。3.5 顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對 分離后的溫度顯示數(shù)據(jù)進行刷新操作,當標志位位為 1時將符號顯示位移入第一位。程序流程圖如圖 3.5 。3.6 按鍵(n j

9、in)掃描處理子程序 按鍵采用掃描(somio)查詢方式, 設(shè)置(shzh)標志位, 當標志位為 1 時, 顯示設(shè)置溫度, 否則顯示當前溫度。如下圖 3.6 示。4 實驗仿真進入 protuse 后,連接好電路,并將程序下載進去。將 DS18B20 的改為 0.1,數(shù)碼管顯示溫度與傳感器的溫度相同。圖 41 溫度顯示仿真當按下 SET 鍵一次時, 進入溫度報警上線調(diào)節(jié), 此時顯示軟件設(shè)置的溫度報警上線, 按 ADD或 DEC 分別對報警溫度進行加一或減一。當再次(zi c)按下 SET 鍵時, 進入溫度(wnd)報警下線調(diào)節(jié), 此時(c sh)顯示軟件設(shè)置的溫度報警下線, ADD或 DEC 分

10、別對報警溫度進行加一或減一。圖 42 溫度調(diào)試仿真當?shù)谌伟聪?SET 鍵時,退出溫度報警線設(shè)置。顯示當前溫度。5 總結(jié)與體會 隨著科學(xué)技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要,測溫技術(shù)也不斷地改進和提高。由于測溫范圍越來越廣,根據(jù)不同的要求,又制造出不同需要的測溫器。在測控系統(tǒng)技術(shù)的課程設(shè)計中,查資料是做課程設(shè)計的前期準備工作,好的開端就相當于成功了一半,因此資料是否全面、可靠,關(guān)系到整個設(shè)計的進程。非常感謝百度、圖書館等給了我一個龐大的資料庫。通過上面的過程,我積累了不少資料,對所做的題目也大概有了一些了解,綜合已有的資料來更透徹的分析題目。仔細研究這個題目在哪些方面是還沒有完全發(fā)揮潛力的,然后確定

11、一個具體的方向,那么就可以在這方面去研究了。 最后,有了研究方向,就應(yīng)該動手實現(xiàn)了。在自己不斷的錯誤和摸索下找到了一定的方法。終于做完了,有種如釋重負的感覺。我通過查閱大量有關(guān)資料,與同學(xué)交流經(jīng)驗和自學(xué),并向老師請教等方式,使自己學(xué)到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個項目開發(fā)過程中我懂得了許多東西,也培養(yǎng)了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學(xué)習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中的探索的艱難和成功的喜悅。雖然這個項目還不是很完美,但是在設(shè)計過程中所學(xué)到的東西是這次課程設(shè)計的最大收獲和財富。查考(chko)文

12、獻【1】馬忠梅,張凱,等. 單片機的 C 語言應(yīng)用(yngyng)程序設(shè)計(第四版) 北京航空航天大學(xué)出版社【2】薛慶軍,張秀娟,等.單片機原理實驗(shyn)教程 北京航天航空大學(xué)出版社【3】廖常初.現(xiàn)場總線概述J.電工技術(shù),1999.附 1 源程序代碼/DS18B20 的讀寫程序,數(shù)據(jù)腳 P2.7 / 溫度傳感器 18B20 匯編程序,采用器件默認的 12 位轉(zhuǎn)化 / 最大轉(zhuǎn)化時間 750 微秒,顯示溫度-55 到+125 度,顯示精度 / 為 0.1 度,顯示采用 4 位 LED 共陽顯示測溫值 /P0 口為段碼輸入,P34P37 為位選 /*/#include reg51.h#incl

13、ude intrins.h /_nop_();延時函數(shù)用#define dm P0 /段碼輸出口#define uchar unsigned char#define uint unsigned intsbit DQ=P27; /溫度輸入口sbit w0=P20; /數(shù)碼管 4sbit w1=P21; /數(shù)碼管 3sbit w2=P22; /數(shù)碼管 2sbit w3=P23; /數(shù)碼管 1sbit beep=P17; /蜂鳴器和指示燈sbit set=P26; /溫度設(shè)置切換鍵sbit add=P24; /溫度加sbit dec=P25; /溫度減int temp1=0; /顯示當前溫度和設(shè)置溫

14、度的標志位為 0 時顯示當前溫度uint h;uint temp;uchar r;uchar high=35,low=20;uchar sign;uchar q=0;uchar tt=0;uchar scale;/*溫度(wnd)小數(shù)部分用查表法*/uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09;/小數(shù)(xiosh)斷碼表uchar code table_dm12=0 x3f,0 x06,0 x5b,0 x4f,0

15、 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00,0 x40;/ 共陰 LED 段碼表 0 1 2 3 4 5 6 7 8 9 不亮 -uchar table_dm1=0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef; /個位(gwi)帶小數(shù)點的斷碼表uchar data temp_data2=0 x00,0 x00; /讀出溫度暫放uchar data display5=0 x00,0 x00,0 x00,0 x00,0 x00; /顯示單元數(shù)據(jù),共 4 個數(shù)據(jù)和一個運算暫用/*11us 延

16、時函數(shù)*/void delay(uint t)for (;t0;t-);void scan()int j;for(j=0;j0;i-)DQ=1;_nop_();_nop_(); /從高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0 x01; /最低位移出delay(6); /66 usval=val/2; /右移 1 位DQ=1;delay(1);/*DS18B20 讀 1 字節(jié)函數(shù)*/ 從總線上取 1 個字節(jié)uchar read_byte(void)uchar i;uchar value=0;for(i=8;i0;i-)DQ=1;

17、_nop_();_nop_();value=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ)value|=0 x80;delay(6); /66 usDQ=1;return(value);/*讀出溫度(wnd)函數(shù)*/read_temp()ow_reset(); /總線(zn xin)復(fù)位delay(200);write_byte(0 xcc); /發(fā)命令(mng lng)write_byte(0 x44); /發(fā)轉(zhuǎn)換命令ow_reset();delay(

18、1);write_byte(0 xcc); /發(fā)命令write_byte(0 xbe);temp_data0=read_byte(); /讀溫度值的第字節(jié)temp_data1=read_byte(); /讀溫度值的高字節(jié)temp=temp_data1;temp6348) / 溫度值正負判斷tem=65536-tem;n=1; / 負溫度求補碼,標志位置 1display4=tem&0 x0f; / 取小數(shù)部分的值display0=ditabdisplay4; / 存入小數(shù)部分顯示值display4=tem4; / 取中間八位,即整數(shù)部分的值display3=display4/100; / 取百

19、位數(shù)據(jù)暫存display1=display4%100; / 取后兩位數(shù)據(jù)暫存display2=display1/10; / 取十位數(shù)據(jù)暫存display1=display1%10; /個位數(shù)據(jù)r=display1+display2*10+display3*100;/ 符號位顯示判斷/if(!display3)display3=0 x0a; /最高位為 0 時不顯示if(!display2)display2=0 x0a; /次高位為 0 時不顯示if(n)display3=0 x0b; /負溫度時最高位顯示(xinsh)-void BEEP()if(r=high&r129)|r128)horl=

20、256-horl;n=1;display3=horl/100;display3=display3&0 x0f;display2=horl%100/10;display1=horl%10;display0=0;if(!display3)display3=0 x0a; /最高位為 0 時不顯示(xinsh)if(!display2)display2=0 x0a; /次高位為 0 時不顯示if(n)display3=0 x0b; /負溫度時最高位顯示-/*按鍵查詢程序*/void keyscan()int temp1; /最高溫度和最低溫度標志位if(set=0)while(1)delay(500);/消抖if

溫馨提示

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

評論

0/150

提交評論