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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

13、ude intrins.h /_nop_();延時(shí)函數(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; /顯示當(dāng)前溫度和設(shè)置溫

14、度的標(biāo)志位為 0 時(shí)顯示當(dāng)前溫度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; /個(gè)位(gwi)帶小數(shù)點(diǎn)的斷碼表uchar data temp_data2=0 x00,0 x00; /讀出溫度暫放uchar data display5=0 x00,0 x00,0 x00,0 x00,0 x00; /顯示單元數(shù)據(jù),共 4 個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用/*11us 延

16、時(shí)函數(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 個(gè)字節(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) / 溫度值正負(fù)判斷tem=65536-tem;n=1; / 負(fù)溫度求補(bǔ)碼,標(biāo)志位置 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; /個(gè)位數(shù)據(jù)r=display1+display2*10+display3*100;/ 符號(hào)位顯示判斷/if(!display3)display3=0 x0a; /最高位為 0 時(shí)不顯示if(!display2)display2=0 x0a; /次高位為 0 時(shí)不顯示if(n)display3=0 x0b; /負(fù)溫度時(shí)最高位顯示(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 時(shí)不顯示(xinsh)if(!display2)display2=0 x0a; /次高位為 0 時(shí)不顯示if(n)display3=0 x0b; /負(fù)溫度時(shí)最高位顯示-/*按鍵查詢程序*/void keyscan()int temp1; /最高溫度和最低溫度標(biāo)志位if(set=0)while(1)delay(500);/消抖if

溫馨提示

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

評(píng)論

0/150

提交評(píng)論