環(huán)境監(jiān)測(cè)程序_第1頁(yè)
環(huán)境監(jiān)測(cè)程序_第2頁(yè)
環(huán)境監(jiān)測(cè)程序_第3頁(yè)
環(huán)境監(jiān)測(cè)程序_第4頁(yè)
環(huán)境監(jiān)測(cè)程序_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

--.z..z.利用51單片機(jī)進(jìn)展設(shè)計(jì)的無(wú)線溫度監(jiān)測(cè)環(huán)境的設(shè)置,如有不妥歡迎大家給予意見(jiàn)和建議:

主機(jī)_程序#include"reg52.h"#include"hs0038.h"http://#include"send_NUM.h"#include"LCD1602_8.h"#defineRS_CONTROLP36 //無(wú)線發(fā)射/接收控制端//-----------------------------------------------------/*---------------------主函數(shù) */voidr_ds18b20(uchartplsb,uchartpmsb) //Disbuf[]!{unsignedcharzhengshu,*iaoshu;unsignedint *iaoshutemp;unsignedcharDisbuf[5];// TemperatuerResult();*iaoshu=tplsb&0*0f;tpmsb=tpmsb<<4;tplsb=tplsb>>4;*iaoshutemp=*iaoshu*625;*iaoshutemp= zhengshu=tpmsb+tplsb;if(zhengshu<0*64){}else;

Disbuf[0]=zhengshu/10+0*30;Disbuf[1]=zhengshu%10+0*30;Disbuf[2]=46;Disbuf[3]=*iaoshutemp/10+0*30;Disbuf[4]=*iaoshutemp%10+0*30;LCD1602_write_char(1,3,Disbuf[0]);LCD1602_write_char(1,4,Disbuf[1]);LCD1602_write_char(1,5,Disbuf[2]);LCD1602_write_char(1,6,Disbuf[3]);LCD1602_write_char(1,7,Disbuf[4]);}voidmain(void){LCD_initial();Beep=0;while(1){if(Succes)//R_DATA[7]{}else}}

r_ds18b20(R_DATA[3],R_DATA[4]);DS18B20程序#include<reg52.h>#include<DS18B20.H>#include<intrins.h>unsignedchard[]={0*7e,0*30,0*6d,0*79,0*33,0*5b,0*5f,0*70,0*7f,0*7b,0*00,0*01};//" 0, 4, 9unsignedcharbdata定義可為尋址變量sbithighbit=Ttemp^7;sbit lowbit=Ttemp^0;//tempyi/****Delay4+4*n(us)****/voidDelay(unsignedcharn){while(n--);}/****復(fù)位脈沖****/voidDS_Reset(void){DQ=1;DQ=0;DQ=1;while(DQ==0);//等待DQ被拉為高電平Delay(20);}/*****Writemand;writelowbitbefore*****/voidDS_Write_mand(unsignedcharmand){unsignedchari,judg;for(i=0;i<8;i++){judg=mand&0*01;mand>>=1;if(judg){ DQ=0;_nop_();DQ=judg;Delay(4);else

}{ DQ=0;_nop_();DQ=judg;Delay(4);DQ=1;}}}/**** ReadbitfromDS18B20 ****/bitDS_Read_Bit(void){bitBIT;DQ=0;_nop_();DQ=1;BIT=DQ;Delay(5);return(BIT);}/**** ReaddatafromDS18B20 ****/unsignedcharDS_Read_Data(void){unsignedchari;for(i=0;i<8;i++){Ttemp=Ttemp>>1;highbit=DS_Read_Bit();}return(Ttemp);}/**** converttempreture ****/voidConvert_Tempreture(void){DS_Reset();DS_Write_mand(0*cc);DS_Write_mand(0*44);}/**** 溫度讀取,并處理后放置到顯示緩沖區(qū) unsignedintGet_Tempreture(void){unsignedcharHdata=0,Ldata=0;unsignedintrealdata;// bitflag;Delay(100);DS_Reset();DS_Write_mand(0*cc);Ldata=DS_Read_Data();Hdata=DS_Read_Data();//讀取16為數(shù)據(jù),12為有效數(shù)據(jù)realdata=Hdata;realdata=realdata<<8;realdata=realdata|Ldata;if(realdata<0*0fff){;}//空else{// flag=1;// }realdata*=6.25;//0.0625return(realdata);/* 獲得真是溫度值。這里用整數(shù)顯示,假設(shè)要顯示小數(shù)需要加上另外處理dis_temp[1]=realdata/100;realdata%=100;dis_temp[2]=realdata/10;realdata%=10;dis_temp[3]=realdata;//簡(jiǎn)單顯示處理,if(dis_temp[1]==0){}*/}

dis_temp[0]=10;//空,不顯示if((dis_temp[0]==10)&flag)dis_temp[1]=11;//顯示‘—’號(hào)elsedis_temp[1]=10;if(dis_temp[2]==0)dis_temp[2]=10;從機(jī)程序#include"reg2051.h"http://#include"hs0038.h"#include"send_NUM.h"http://#include"DS18B20_1.H"#defineUSER_NUM P1 //用戶碼讀入#defineLIGHT P35 //光照監(jiān)測(cè)端#defineRS_CONTROLP36 //無(wú)線發(fā)/接收控制#defineSEND_DATA 0*f0#defineSEND_M 0*0fe*ternuchartpmsb,tplsb; //溫度值低位、高位字ucharData_N[7]; //發(fā)送信號(hào)存儲(chǔ)數(shù)組sbitDQ=P3^0; //#defineLEDP34voidTemperatuerResult(void);//復(fù)位/*---------------------------------------------------------ds18b20數(shù)據(jù)定義---------------------------------------------------------*/uchartplsb,tpmsb; //溫度值低位、高位字節(jié)dr;個(gè)位,Disbuf[3//unsignedint Getdata=0;//unsignedint tempdata,errdata;/*---------------------------------------------------------延時(shí)程序---------------------------------------------------------*/voiddelay_ds18b20(unsignedintt) //US{while(t--);}/*---------------------------------------------------------ds18b20程序---------------------------------------------------------*/unsignedcharReadOneChar(void) {//unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--) {DQ=0;//給脈沖信號(hào)dat>>=1;DQ=1; //if(DQ)dat|=0*80;delay_ds18b20(4);}return(dat);}voidWriteOneChar(unsignedchardat) {//unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0*01;DQ=1;dat>>=1;}}voidInit_DS18B20(void){//初始化函數(shù)DQ=1; //MCUpullDQtoHIGHdelay_ds18b20(8);DQ=0; //MCUpullDQtoLOWdelay_ds18b20(100);//Mustdelayatleast480usDQ=1; //MCUpullDQtoHIGHdelay_ds18b20(10);while(DQ==0); //稍做延時(shí)后如果*=0則初始化成功*=1則初始化失敗delay_ds18b20(20);}voidTemperatuerResult(void)//復(fù)位{unsignedchari,temp_buff[9],crc_data=0;//unsignedintt;Init_DS18B20();WriteOneChar(0*cc); //skipromWriteOneChar(0*44); //Temperatureconvertdelay_ds18b20(50000); //Mustdelayatleast750mSdelay_ds18b20(50000);Init_DS18B20();WriteOneChar(0*cc); //skipromWriteOneChar(0*be); //readTemperaturefor(i=0;i<9;i++){temp_buff[i]=ReadOneChar();}tpmsb=temp_buff[1];tplsb=temp_buff[0];}//------------------------------------------------//函數(shù)功能:得到各個(gè)要發(fā)送的數(shù)據(jù),有一個(gè)用戶碼需要輸入獲得。voidSend_Data_Chang(ucharData_m,ucharUSER_Transmit)//用戶轉(zhuǎn)發(fā)碼(USER_Transmit)獲取{Data_N[0]= Data_m;Data_N[1]= Data_N[2]=!USER_NUM;//LED=0;TemperatuerResult();//復(fù)位LED=0;Data_N[3]= tplsb;Data_N[4]= if(LIGHT)//光照與否Data_N[5]=0*f0;elseData_N[5]=0*0f;Data_N[6]= USER_Transmit;}//-----------------------------------------------------/*---------------------主函數(shù) */voidmain(void){Send_Data_Chang(SEND_DATA,0*01); //LED=0;Send_String(Data_N);LED=1;while(1){;}}DS18B20的頭文件:#ifndefDS18B20_H #define DS18B20_H /*******************************************如果DQ單總線:為0,表示內(nèi)部為忙狀態(tài),為1,表示為空閑狀態(tài),空閑狀態(tài)才能對(duì)器件進(jìn)展一些列的操作*******************************************//*************** 引腳定義 sbitDQ=P3^0;//sbitLED=P3^4;/*******************************************//*************** 指令集 ************/#defineRead_Rom 0*33//#define Match_Rom 0*55//符合ROM命令,如果不符合,等待復(fù)#defineSkip_ROM 0*CC//跳過(guò)ROM#defineSearch_Ro

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論