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

下載本文檔

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

文檔簡介

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

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

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

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

DS18B20內(nèi)部均有一個獨(dú)立的64位序列號,單片機(jī)通過序列號可以對一條總線上的多支DS18B20進(jìn)行控制,讀取它們的溫度。但是,要完成這個操作,軟件設(shè)計比較復(fù)雜,同時存在一個缺點(diǎn)-—速度太慢。無法適用于一些實時性要求高的測溫場合.所以本次設(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=0x00;DQ=0xff;

即可一次輸出或輸入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è)計的核心部分為八點(diǎn)溫度數(shù)據(jù)的快速準(zhǔn)確讀取,完成電路設(shè)計和軟件編程后,將程序在KEIL下編譯,裝入單片機(jī),進(jìn)行仿真,可以看到,同步快速多點(diǎ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位,精確到1℃,滿足日常測量應(yīng)用。另外可以通過改變DS18B20數(shù)字值讀取位數(shù)提高精度,也可以根據(jù)實際應(yīng)用要求擴(kuò)大量程。在系統(tǒng)基礎(chǔ)上可以加入開關(guān)控制測量通路選擇,并實現(xiàn)超過測量范圍蜂鳴器報警。

5結(jié)論

該溫度測量系統(tǒng)結(jié)構(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毫秒(不夠精確的){unsignedinti,j;for(i=0;i〈ms;i++)for(j=0;j<100;j++);}voidwr_com(unsignedcharcom)//寫指令//{delay1ms(1);RS=0;RW=0;EN=0;P2=com;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_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);}voiddisplay(unsignedchar*p)//顯示//{while(*p!=’\0’){wr_dat(*p);p++;delay1ms(1);}}init_play()//初始化顯示{lcd_init();wr_com(0x80); display(str1); wr_com(0xc0); display(str2);}/******************************ds1820程序***************************************/voiddelay_18B20(unsignedinti)//延時1微秒{ while(i—-);}voidds1820rst()/*ds1820復(fù)位*/{unsignedcharx=0; DQ=1;//DQ復(fù)位 delay_18B20(4);//延時 DQ=0;//DQ拉低 delay_18B20(100);//精確延時大于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|=0x80; delay_18B20(10); } return(dat);}voidds1820wr(ucharwdata)/*寫數(shù)據(jù)*/{unsignedchari=0;for(i=8;i〉0;i--){DQ=0;DQ=wdata&0x01;delay_18B20(10);DQ=1;wdata〉〉=1;}}read_temp()/*讀取溫度值并轉(zhuǎn)換*/{uchara,b;ds1820rst();ds1820wr(0xcc);//*跳過讀序列號*/ds1820wr(0x44);//*啟動溫度轉(zhuǎn)換*/ds1820rst();ds1820wr(0xcc);//*跳過讀序列號*/ds1820wr(0xbe);//*讀取溫度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue〈<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tflag=0;else{tvalue=~tvalue+1; tflag=1;}tvalue=tvalue*(0。625);//溫度值擴(kuò)大10倍,精確到1位小數(shù) return(tvalue);}/*******************************************************************/voidds1820disp()//溫度值顯示 {ucharflagdat; disdata[0]=tvalue/1000+0x30;//百位數(shù)disdata[1]=tvalue%1000/100+0x30;//十位數(shù)disdata[2]=tvalue%100/10+0x30;//個位數(shù)disdata[3]=tvalue%10+0x30;//小數(shù)位if(tflag==0) flagdat=0x20;//正溫度不顯示符號elseflagdat=0x2d;//負(fù)溫度顯示負(fù)號:—if(disdata[0]==0x30) {disdata[0]=0x20;//如果百位為0,不顯示 if(disdata[1]==0x30) {disdata[1]=0x20;//如果百位為0,十位為0也不顯示 } } wr_com(0xc0); wr_dat(flagdat);//顯示符號位 wr_com(0xc1); wr_dat(disdata[0]);//顯示百位 wr_com(0xc2); 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

提交評論