單片機(jī)課程設(shè)計報告之基于DS18B20的多點溫度測量系統(tǒng)的設(shè)計_第1頁
單片機(jī)課程設(shè)計報告之基于DS18B20的多點溫度測量系統(tǒng)的設(shè)計_第2頁
單片機(jī)課程設(shè)計報告之基于DS18B20的多點溫度測量系統(tǒng)的設(shè)計_第3頁
單片機(jī)課程設(shè)計報告之基于DS18B20的多點溫度測量系統(tǒng)的設(shè)計_第4頁
單片機(jī)課程設(shè)計報告之基于DS18B20的多點溫度測量系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-.z單片機(jī)應(yīng)用系統(tǒng)設(shè)計課題:基于DS18B20的多點溫度測量系統(tǒng)的設(shè)計姓名:班級:學(xué)號:指導(dǎo)教師:日期:引言

在糧庫測溫系統(tǒng)、冷庫測溫系統(tǒng)、智能化建筑控制系統(tǒng)、中央空調(diào)系統(tǒng)等多種系統(tǒng)中都需要多點溫度測量系統(tǒng)。因此,多點溫度測量技術(shù)實現(xiàn)尤為重要。美國Dallas公司推出的數(shù)字溫度傳感器DSl8B20,電源供電*圍在3.0~5.5V;溫度測量*圍為-55~+125℃;具有獨特的單總線接口,僅需要占用一個通用I/O端口即可完成與微處理器的通信;在-10~+85℃溫度*圍內(nèi)具有±0.5℃精度;用戶可編程設(shè)定9~12位的分辨率。以上特性使得DSl8B20非常適用于構(gòu)建高精度、多點溫度測量系統(tǒng)。DS18B20簡介

DSl8B20是美國Dallas半導(dǎo)體公司推出的一種智能數(shù)字溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度,并且可根據(jù)實際要求通過編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式;可以分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量;從DS18B20讀出信息或?qū)懭隓S18B20信息僅需要1根口線(單線接口);溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。使用DS18B20可使系統(tǒng)構(gòu)造更趨簡單,可靠性更高。

1系統(tǒng)硬件設(shè)計

由DS18B20和Atmel公司推出的單片機(jī)AT89C51以及相關(guān)外圍電路組成的高精度、多點溫度測量系統(tǒng)的構(gòu)造框圖如圖1所示。系統(tǒng)采用8片DS18B20構(gòu)成小型溫度傳感器網(wǎng)絡(luò)[3],通過并行連接方式連接至單片機(jī)的通用I/O端口。單片機(jī)獲得溫度信息后,通過特定的算法,將處理后的溫度信息通過LED顯示出來,同時通過串行口送上位機(jī)處理。

DS18B20內(nèi)部均有一個獨立的64位序列號,單片機(jī)通過序列號可以對一條總線上的多支DS18B20進(jìn)展控制,讀取它們的溫度。但是,要完成這個操作,軟件設(shè)計比擬復(fù)雜,同時存在一個缺點——速度太慢。無法適用于一些實時性要求高的測溫場合。所以本次設(shè)計采取一種利用單片機(jī)的并口,同步快速讀取8支DS18B20的方法。

2系統(tǒng)軟件設(shè)計

2.1并行同步快速讀取8支DS18B20的方法

對于一支DS18B20,我們要輸出或輸入各類數(shù)據(jù)時,可以采用位尋址,比方:sbitDQ=P3^3;DQ=0;DQ=1;

而對于8支DS18B20,如果還采用位尋址的方法,采用單總線,通過查詢序列號依次讀取,程序就非常復(fù)雜,而且速度會大大減慢,所以將位尋址擴(kuò)展為字節(jié)尋址,比方:

*defineDQP3;DQ=0*00;DQ=0*ff;

即可一次輸出或輸入8個位數(shù)據(jù),從而到達(dá)同步讀取的目的。

2.2系統(tǒng)的溫度合成處理

采用上述方法一次讀取8支DS18B20的時間不超過1秒,但讀取的數(shù)據(jù)在RAM中并不順序排列的。必須用軟件合成處理,才能得到所需要的溫度值。如表-1所示,縱向排列的是存放每次讀取數(shù)據(jù)的Buf,而橫向才是我們需要的溫度值,此時設(shè)計一個將縱向數(shù)據(jù)轉(zhuǎn)為橫向溫度的程序,連續(xù)執(zhí)行兩次,就可以將DS18B20的高和低字節(jié)全部合成標(biāo)準(zhǔn)的溫度數(shù)據(jù)。2.3系統(tǒng)軟件流程圖

主程序執(zhí)行流程如圖2所示,主程序先對各DS18B20進(jìn)展初始化,然后重復(fù)調(diào)用寫命令和讀數(shù)據(jù)模塊,最后將數(shù)據(jù)處理后送入LED顯示。2.4系統(tǒng)電路圖3系統(tǒng)仿真

Proteus軟件是Labcenter公司的一款電路設(shè)計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計,而ISIS模塊用來完成電路原理圖的繪制與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機(jī)芯片,比方MCS-51系列、PIC系列等等,以及單片機(jī)外圍電路,比方鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機(jī)實驗環(huán)境。

本設(shè)計的核心局部為八點溫度數(shù)據(jù)的快速準(zhǔn)確讀取,完成電路設(shè)計和軟件編程后,將程序在KEIL下編譯,裝入單片機(jī),進(jìn)展仿真,可以看到,同步快速多點溫度測量得到了實現(xiàn)。仿真中的一個畫面如下面圖3中的效果所示,此時采集的是第5通路的測量溫度。4系統(tǒng)運(yùn)行與數(shù)據(jù)分析

根據(jù)系統(tǒng)軟件與硬件設(shè)計方案搭建實際系統(tǒng)電路,依次采集八路溫度測量數(shù)據(jù),并且在LED數(shù)碼管上顯示所測溫度,同時與現(xiàn)場溫度計測量值進(jìn)展比擬,系統(tǒng)運(yùn)行結(jié)果如下,見表-2:表-2傳感器與溫度計數(shù)據(jù)對照

測量結(jié)果數(shù)據(jù)與溫度計直接測量吻合,符合仿真結(jié)果,本系統(tǒng)的測量*圍為0-99℃,DS18B20數(shù)字值讀取位數(shù)為8位,準(zhǔn)確到1℃,滿足日常測量應(yīng)用。另外可以通過改變DS18B20數(shù)字值讀取位數(shù)提高精度,也可以根據(jù)實際應(yīng)用要求擴(kuò)大量程。在系統(tǒng)根底上可以參加開關(guān)控制測量通路選擇,并實現(xiàn)超過測量*圍蜂鳴器報警。

5結(jié)論

該溫度測量系統(tǒng)構(gòu)造簡單、程序設(shè)計方便,基于仿真系統(tǒng)構(gòu)建的實際電路運(yùn)行良好,8支DS18B20的讀取時間與1支DS18B20的讀取時間根本相等,測溫迅速準(zhǔn)確。本設(shè)計采用Proteus仿真的好處在于可以迅速觀察到設(shè)計效果,同時可以通過改變元器件參數(shù)使整個電路性能到達(dá)最優(yōu)化。6參考文獻(xiàn)

1、唐俊翟.單片機(jī)原理與應(yīng)用[M].:冶金工業(yè),252-2672、胡偉.單片機(jī)C程序設(shè)計及應(yīng)用實例[M].:人民郵電,1-4873、趙娜,趙剛.基于51單片機(jī)的溫度測量系統(tǒng)[J].微計算機(jī)信息,2007.4、于永學(xué),葛建.1-Wire總線數(shù)字溫度傳感器DS1-8B20及應(yīng)用[J].電子產(chǎn)品世界,2003(2):80-82.5、江世明,*先任.基于DS18B20的智能溫度測量裝置[J].**學(xué)院學(xué)報,2004.6、聶毅.單片機(jī)定時器中斷時間誤差的分析及補(bǔ)償[J]

微計算機(jī)信息

20027、譚浩強(qiáng).C語言程序設(shè)計〔第二版〕

:清華大學(xué)

1999

附錄:程序*include<reg51.h>*defineucharunsignedchar*defineuintunsignedintsbitDQ=P3^7;//ds18b20與單片機(jī)連接口sbitRS=P3^0;sbitRW=P3^1;sbitEN=P3^2;unsignedcharcodestr1[]={"temperature:"};unsignedcharcodestr2[]={""};uchardatadisdata[5];uinttvalue;//溫度值uchartflag;//溫度正負(fù)標(biāo)志/*************************lcd1602程序**************************/voiddelay1ms(unsignedintms)//延時1毫秒〔不夠準(zhǔn)確的〕{unsignedinti,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);}voidwr_(unsignedchar)//寫指令//{delay1ms(1);RS=0;RW=0;EN=0;P2=;delay1ms(1);EN=1;delay1ms(1);EN=0;}voidwr_dat(unsignedchardat)//寫數(shù)據(jù)//{delay1ms(1);;RS=1;RW=0;EN=0;P2=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;}voidlcd_init()//初始化設(shè)置//{delay1ms(15);wr_(0*38);delay1ms(5);wr_(0*08);delay1ms(5);wr_(0*01);delay1ms(5);wr_(0*06);delay1ms(5);wr_(0*0c);delay1ms(5);}voiddisplay(unsignedchar*p)//顯示//{while(*p!='\0'){wr_dat(*p);p++;delay1ms(1);}}init_play()//初始化顯示{lcd_init();wr_(0*80); display(str1); wr_(0*c0); display(str2);}/******************************ds1820程序***************************************/voiddelay_18B20(unsignedinti)//延時1微秒{ while(i--);}voidds1820rst()/*ds1820復(fù)位*/{unsignedchar*=0; DQ=1;//DQ復(fù)位 delay_18B20(4);//延時 DQ=0;//DQ拉低 delay_18B20(100);//準(zhǔn)確延時大于480us DQ=1;//拉高 delay_18B20(40); }uchards1820rd()/*讀數(shù)據(jù)*/{unsignedchari=0; unsignedchardat=0; for(i=8;i>0;i--) {DQ=0;//給脈沖信號 dat>>=1; DQ=1;//給脈沖信號 if(DQ) dat|=0*80; delay_18B20(10); } return(dat);}voidds1820wr(ucharwdata)/*寫數(shù)據(jù)*/{unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=wdata&0*01;delay_18B20(10);DQ=1;wdata>>=1;}}read_temp()/*讀取溫度值并轉(zhuǎn)換*/{uchara,b;ds1820rst();ds1820wr(0*cc);//*跳過讀序列號*/ds1820wr(0*44);//*啟動溫度轉(zhuǎn)換*/ds1820rst();ds1820wr(0*cc);//*跳過讀序列號*/ds1820wr(0*be);//*讀取溫度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0*0fff)tflag=0;else{tvalue=~tvalue+1; tflag=1;}tvalue=tvalue*(0.625);//溫度值擴(kuò)大10倍,準(zhǔn)確到1位小數(shù) return(tvalue);}/*******************************************************************/voidds1820disp()//溫度值顯示 {ucharflagdat; disdata[0]=tvalue/1000+0*30;//百位數(shù)disdata[1]=tvalue%1000/100+0*30;//十位數(shù)disdata[2]=tvalue%100/10+0*30;//個位數(shù)disdata[3]=tvalue%10+0*30;//小數(shù)位if(tflag==0) flagdat=0*20;//正溫度不顯示符號elseflagdat=0*2d;//負(fù)溫度顯示負(fù)號:-if(disdata[0]==0*30) {disdata[0]=0*20;//如果百位為0,不顯示 if(disdata[1]==0*30) {disdata[1]=0*20;//如果百位為0,十位為0也不顯示 } } wr_(0*c0); wr_dat(flagdat);//顯示符號位 wr_(0*c1); wr_dat(disdata[0]);//顯示百位 wr_(0*c2); wr_dat(disdata[1]);//顯示十位

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論