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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片機應用系統(tǒng)設計課題:基于DS18B20的多點溫度測量系統(tǒng)的設計姓名:班級:學號:指導老師:日期:引言

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

DS18B20簡介

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

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

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

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

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

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

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

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

#defineDQP3;DQ=0x00;DQ=0xff;

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

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

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

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

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

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

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

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

5結論

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

6參考文獻

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

微計算機信息

20027、譚浩強。C語言程序設計(第二版)

北京:清華大學出版社

1999

附錄:程序 #include<reg51。h〉#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//ds18b20與單片機連接口sbitRS=P3^0;sbitRW=P3^1;sbitEN=P3^2;unsignedcharcodestr1[]={”temperature:"};unsignedcharcodestr2[]={”"};uchardatadisdata[5];uinttvalue;//溫度值uchartflag;//溫度正負標志/*************************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ù)據//{delay1ms(1);;RS=1;RW=0;EN=0;P2=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;}voidlcd_init()//初始化設置//{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復位*/{unsignedcharx=0; DQ=1;//DQ復位 delay_18B20(4);//延時 DQ=0;//DQ拉低 delay_18B20(100);//精確延時大于480us DQ=1;//拉高 delay_18B20(40); }uchards1820rd()/*讀數(shù)據*/{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ù)據*/{unsignedchari=0;for(i=8;i〉0;i--){DQ=0;DQ=wdata&0x01;delay_18B20(10);DQ=1;wdata〉〉=1;}}read_temp()/*讀取溫度值并轉換*/{uchara,b;ds1820rst();ds1820wr(0xcc);//*跳過讀序列號*/ds1820wr(0x44);//*啟動溫度轉換*/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);//溫度值擴大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;//負溫度顯示負號:—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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論