使用DSB溫度傳感器設(shè)計溫度控制系統(tǒng)設(shè)計.doc_第1頁
使用DSB溫度傳感器設(shè)計溫度控制系統(tǒng)設(shè)計.doc_第2頁
使用DSB溫度傳感器設(shè)計溫度控制系統(tǒng)設(shè)計.doc_第3頁
使用DSB溫度傳感器設(shè)計溫度控制系統(tǒng)設(shè)計.doc_第4頁
使用DSB溫度傳感器設(shè)計溫度控制系統(tǒng)設(shè)計.doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、使用DS18B20溫度傳感器設(shè)計溫度控制系統(tǒng)設(shè)計設(shè)計說明:1。1 使用DS18B20溫度傳感器設(shè)計溫度控制系統(tǒng)1. 在數(shù)碼管上可顯示采集到的溫度(099.9)2. 當溫度低于27時,蜂鳴器開始以慢地“滴"聲報警,P1.0口發(fā)光二極管閃爍,當溫度繼續(xù)降低并低于25時,蜂鳴器開始以快地“滴"聲報警,P1.0和P1。1口發(fā)光二極管閃爍。3. 當溫度高于30時,蜂鳴器開始以慢地“滴”聲報警,P1。2口發(fā)光二極管閃爍,當溫度繼續(xù)升高并高于32時,蜂鳴器開始以快地“滴”聲報警,P1。2和P1.3口發(fā)光二極管閃爍。1.2 元件說明:(1)使用的元器件 器件數(shù)量(件)AT89C521DS1

2、8B20174HC5732排阻1小功率揚聲器1二極管4數(shù)碼管310K電阻1導(dǎo)線若干VCC電源1(2)DS18B20 器件說明DS18B20:電壓范圍3.05.5V ;溫度可測范圍-55+125;可編程分辨率為912位,對應(yīng)的可分辨溫度為:0。5、0。25、0.125和0。0625;測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。其引腳定義圖如下圖:引腳定義電源負極信號輸入輸出電源正極 (3) 硬件連接圖硬件連接圖如上圖:1.3 工作原理首先看控制DS18B20的指令,只列舉此設(shè)計用到的,如下表:CCH跳過ROM44H溫度轉(zhuǎn)換BEH

3、讀暫存器原理:DS18B20測量外部溫度,經(jīng)過溫度轉(zhuǎn)換,將溫度物理量轉(zhuǎn)換成數(shù)字信號,再傳送數(shù)據(jù)到AT89C52,AT89C52控制數(shù)碼管顯示及二極管、揚聲器的工作,從而實現(xiàn)了溫度在數(shù)碼管上顯示,還有溫度范圍的亮燈與報警。1。4 C語言編程見附錄1。5 實驗結(jié)果可將環(huán)境溫度經(jīng)過DS18B20溫度傳感器,在數(shù)碼管上顯示,顯示準確。附錄includereg51.h#includestdio.h>define uchar unsigned char#define uint unsigned intsbit ds=P22;sbit dula=P26;sbit wela=P27;sbit beep=

4、P23;uint temp;float f_temp;uint warn_l1=270;uint warn_l2=250;uint warn_h1=300;uint warn_h2=320;sbit led0=P10;sbit led1=P11;sbit led2=P12;sbit led3=P13;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87,0xff,0xef;void delay(uint z) uint

5、 x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); void dsreset() uint i; ds=0; i=103; while(i0) i-; ds=1; i=4; while(i0) i-; bit tempreadbit() uint i; bit dat; ds=0;i+; ds=1;i+;i+; dat=ds; i=8; while(i0) i-; return(dat); uchar tempread() uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tempreadbit(); dat=(j

6、<7)(dat>1); return(dat); tempwritebyte(uchar dat) uint i;uchar j;bit testb;for(j=1;j<=8;j+) testb=dat0x01; dat=dat>1; if(testb) ds=0; i+;i+; ds=1; i=8;while(i>0) i-; else ds=0; i=8;while(i0) i-; ds=1; i+;i+; tempchange() dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0x44); u

7、int get_temp() uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); b=tempread(); temp=b; temp<<=8; temp=temp|a; f_temp=temp*0.0625; temp=f_temp*10+0。5; f_temp=f_temp+0。05; return temp; display(uchar num,uchar dat) uchar i; dula=0; P0=tabledat; dula=1; dula=0

8、; wela=0; i=0xff; i=i((0x01)<(num)); P0=i; wela=1; wela=0; delay(50); dis_temp(uint t) uchar i; i=t/100; display(0,i); i=t100/10; display(1,i+10); i=t%10010; display(2,i); warn(uint s,uchar led) uchar i;i=s;beep=0;P1=(led);while(i-) dis_temp(get_temp(); beep=1; P1=0xff; i=s; while(i-) dis_temp(ge

9、t_temp(); deal(uint t) uchar i;if((t>warn_l2)(t<=warn_l1)) warn(40,0x01); else if(t<=warn_l2) warn(10,0x03); else if(t<warn_h2)&(t>=warn_h1) warn(40,0x04); else if(t=warn_h2) warn(10,0x0c); else i=40; while(i-) dis_temp(get_temp(); init_com() TMOD=0x20; PCON=0x00; SCON=0x50; TH1=0xfd; TL1=0xfd; TR1=1; comm(char *parr) do SBUF=*parr+; while(!TI); TI=0; while(parr); main() uchar buff4,i; dula=0; wela=0; init_com(); while(1) tempchange();for(i=10;i>0;i-) dis_temp(get_temp(); deal(temp);sprintf(buff,"%

溫馨提示

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

評論

0/150

提交評論