資源簡介
以51單片機為主體 實現多點的溫濕度測量和顯示 外接一個迷你usb加濕器 在當前濕度低于設定值時啟動

代碼片段和文件信息
#include?“DHT11.h“
U8??U8FLAGk;
U8??U8countU8temp;
U8??U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
U8??U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
U8??U8comdata;
U8??count?count_r=0;
U8??U8FLAG11k11;
U8??U8count11U8temp11;
U8??U8T_data_H11U8T_data_L11U8RH_data_H11U8RH_data_L11U8checkdata11;
U8??U8T_data_H_temp11U8T_data_L_temp11U8RH_data_H_temp11U8RH_data_L_temp11U8checkdata_temp11;
U8??U8comdata11;
U8??count11?count_r11=0;
void?Delay1(U16?j)
{
????U8?i;
????for(;j>0;j--)
????{?
for(i=0;i<27;i++);
????}
}
void??Delay_10us(void)
{
????U8?i;
????i--;
????i--;
????i--;
????i--;
????i--;
????i--;
}
void??COM(void)
{
????U8?i;
????for(i=0;i<8;i++) ???
????{
?? ????U8FLAG=2;
??? while((!DATA)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
?? U8temp=0;
????????if(DATA)U8temp=1;
????U8FLAG=2;
while((DATA)&&U8FLAG++);
??? //超時則跳出for循環 ??
??? if(U8FLAG==1)break;
??? //判斷數據位是0還是1 ?
??? ???
//?如果高電平高過預定0高電平值則數據位為?1?
??? ?
U8comdata<<=1;
??? U8comdata|=U8temp;????????//0
????}//rof
}
//--------------------------------
//-----溫濕度讀取子程序?------------
//--------------------------------
//----以下變量均為全局變量--------
//----溫度高8位==?U8T_data_H------
//----溫度低8位==?U8T_data_L------
//----濕度高8位==?U8RH_data_H-----
//----濕度低8位==?U8RH_data_L-----
//----校驗?8位?==?U8checkdata-----
//----調用相關子程序如下----------
//----?Delay();?Delay_10us();COM();?
//--------------------------------
U8?RH(void)
{
????//主機拉低18ms?
????DATA=0;
Delay1(180);??//原來為5
DATA=1;
//總線由上拉電阻拉高?主機延時20us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主機設為輸入?判斷從機響應信號?
DATA=1;
//判斷從機是否有低電平響應信號?如不響應則跳出,響應則向下運行 ??
if(!DATA) ?//T?! ??
{
????U8FLAG=2;
????//判斷從機是否發出?80us?的低電平響應信號是否結束 ?
????while((!DATA)&&U8FLAG++);
????U8FLAG=2;
????//判斷從機是否發出?80us?的高電平,如發出則進入數據接收狀態
????while((DATA)&&U8FLAG++);
????//數據接收狀態 ?
????COM();
????U8RH_data_H_temp=U8comdata;
????COM();
????U8RH_data_L_temp=U8comdata;
????COM();
????U8T_data_H_temp=U8comdata;
????COM();
????U8T_data_L_temp=U8comdata;
????COM();
????U8checkdata_temp=U8comdata;
????DATA=1;
????//數據校驗?
????U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
????if(U8temp==U8checkdata_temp)
????{
??? ???U8RH_data_H=U8RH_data_H_temp;
??? ???U8RH_data_L=U8RH_data_L_temp;
??? ???U8T_data_H=U8T_data_H_temp;
??? ???U8T_data_L=U8T_data_L_temp;
??? ???U8checkdata=U8checkdata_temp;
????}//fi
return?1;
}//fi
else???//傳感器不響應
{
???return?0;
}
}
void??COM11(void)
{
????U8?i;
????for(i=0;i<8;i++) ???
????{
?? ????U8FLAG11=2;
??? while((!DATA11)&&U8FLAG11++);
Delay_10us();
Delay_10us();
Delay_10us();
?? U8temp11=0;
????????if(DATA11)U8temp11=1;
????U8FLAG11=2;
while((DATA11)&&U8FLAG11++);
??? //超時則跳出for循環 ??
??? if(U8FLAG11==1)break;
??? //判斷數據位是0還是
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5143??2018-03-24?15:14??34401多路溫濕度程序\DHT11.c
?????文件???????1215??2018-03-24?15:12??34401多路溫濕度程序\DHT11.h
?????文件??????10609??2018-03-27?15:52??34401多路溫濕度程序\DHT11.LST
?????文件??????11559??2018-03-27?15:52??34401多路溫濕度程序\DHT11.OBJ
?????文件???????3468??2018-03-01?21:57??34401多路溫濕度程序\DS1302.c
?????文件????????855??2018-03-01?19:49??34401多路溫濕度程序\DS1302.h
?????文件???????7615??2018-03-01?22:04??34401多路溫濕度程序\DS1302.OBJ
?????文件???????2147??2017-10-20?13:03??34401多路溫濕度程序\LCD1602.c
?????文件????????434??2018-01-09?20:18??34401多路溫濕度程序\LCD1602.h
?????文件???????4402??2018-03-27?15:52??34401多路溫濕度程序\LCD1602.LST
?????文件???????5314??2018-03-27?15:52??34401多路溫濕度程序\LCD1602.OBJ
?????文件???????7893??2018-03-27?15:52??34401多路溫濕度程序\main.LST
?????文件???????9698??2018-03-27?15:52??34401多路溫濕度程序\main.OBJ
?????文件????????943??2017-01-17?17:59??34401多路溫濕度程序\main.opt.bak
?????文件???????2069??2017-01-17?17:59??34401多路溫濕度程序\main.Uv2.bak
????.......?????68873??2018-03-27?16:59??34401多路溫濕度程序\main.uvopt
????.......?????13739??2018-03-27?15:51??34401多路溫濕度程序\main.uvproj
?????文件???????1685??2017-01-17?17:59??34401多路溫濕度程序\main_Opt.Bak
????.......?????68867??2018-03-27?16:30??34401多路溫濕度程序\main_uvopt.bak
????.......?????13742??2018-03-24?14:10??34401多路溫濕度程序\main_uvproj.bak
?????文件???????5116??2017-01-17?17:59??34401多路溫濕度程序\STARTUP.A51
?????文件??????11666??2018-03-27?15:52??34401多路溫濕度程序\Startup.LST
?????文件????????749??2018-03-27?15:52??34401多路溫濕度程序\Startup.OBJ
?????文件??????23024??2018-03-27?15:52??34401多路溫濕度程序\溫濕度
?????文件???????4224??2018-03-27?15:52??34401多路溫濕度程序\溫濕度.hex
?????文件??????25246??2018-03-27?15:52??34401多路溫濕度程序\溫濕度.M51
?????文件????????223??2018-03-27?16:51??34401多路溫濕度程序\溫濕度.plg
?????文件??????35840??2018-10-10?12:52??lunwen.doc
?????目錄??????????0??2018-10-10?12:52??34401多路溫濕度程序
-----------?---------??----------?-----??----
............此處省略2個文件信息
評論
共有 條評論