#include<AT89X52.h>
#include<intrins.h>
#defineuint unsigned int
#defineuchar unsigned char
#include"1602.h"
#include<dh11.h>
uchartemp[] ="RH_SET:00%\0"; //设置的湿度值显示
uchartemp_s[] ="RH:00% TEMP:00 \0"; //实时湿度显示
sbitsw3=P1^5; //按键定义
sbitsw1=P1^3;
sbitsw2=P1^4;
sbitbaojing=P3^3;
//sbitled=P3^5;
ucharset; //变量定义
ucharnum1;
uchargetdata=55;
uintshangxian=34;
uchartemp_h,temp_t;
voidconv();
yunxing();
voidkey();
voidkongzhi();
voidzhuanhuan()//扫描数据转换
{
temp[7]=shangxian/10%10+0x30;
temp[8]=shangxian%10+0x30;
temp_s[3]=temp_h/10%10+0x30;
temp_s[4]=temp_h%10+0x30;
temp_s[3]=temp_h/10%10+0x30;
temp_s[4]=temp_h%10+0x30;
temp_s[12]=temp_t/10%10+0x30;
temp_s[13]=temp_t%10+0x30;
temp_s[14]=0xdf;
temp_s[15]='C';
}
//------------------------------------------------------------
main()
{
baojing=0;
delay(500);
baojing=1;
//led=0;
LCD_Initial(); //液晶初始化
while(1)
{
RH();
temp_t=U8T_data_H;
temp_h=U8RH_data_H;
zhuanhuan();
key();// 按键检测
kongzhi();
GotoXY(0,0);//显示起始位置 Y=0,第一行,Y=1 第二行//显示第一行
Print(temp);// 内容
GotoXY(0,1);//显示起始位置 Y=0,第一行,Y=1 第二行 显示第二行
Print(temp_s);// 内容
delay(1);
//getdate= GetADCResult(0)*3.9;
}
}
void key() //按键检测程序
{
if(set==1)//上限设置
{
if(sw1==0) //上限减功能
{
delay(50);
if(sw1==0)
{ //while(sw1==0);
if(shangxian>0) shangxian--;
else( shangxian=255);
}
}
if(sw2==0) //上限加功能
{
delay(50);
if(sw2==0)
{ //while(sw2==0);
if(shangxian<255) shangxian++;
else( shangxian=0);
}
}
}
}
void kongzhi() //控制报警
{
if((temp_h>=shangxian)|(temp_t>32)) //此处设定预设温度
{
//led=1;
num1++;
if(num1>=20)
{
num1=0;
baojing=~baojing;
}
}
else{baojing=1; }
}
DHT11
传感器接受和发送信息,然后将接收来的信息作出相应的判断和处理,然后反馈到显示器。
#include<at89x52.h>
#include<intrins.h>
// aem
typedefunsigned char U8; /* defined for unsigned 8-bits integervariable 无符号8位整型变量 */
typedefsigned char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */
typedefunsigned int U16; /* defined for unsigned 16-bits integervariable 无符号16位整型变量 */
typedefsigned int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
typedefunsigned long U32; /* defined for unsigned 32-bits integervariable 无符号32位整型变量 */
typedefsigned long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
typedeffloat F32; /*single precision floating point variable (32bits) 单精度浮点数(32位长度) */
typedefdouble F64; /* double precision floating pointvariable (64bits) 双精度浮点数(64位长度) */
//
#defineuchar unsigned char
#defineuint unsigned int
#define Data_0_time 4 //相当于用Data_0_time代替4.
//----------------------------------------------//
//----------------IO口定义区--------------------//
//----------------------------------------------//
sbit DQ =P3^0 ;
//----------------------------------------------//
//----------------定义区--------------------//
//----------------------------------------------//
U8 U8FLAG,k;
U8 U8count,U8temp;
U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8 U8comdata;
U8 outdata[5]; //定义发送的字节数
U8 indata[5];
U8 count, count_r=0;
U16U16temp1,U16temp2;
//以上为变量的定义.
void COM(void);
void Delay2(U16 j) //延时函数
{ U8 i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void) //延时10us的延时函数.
{
U8 i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void COM(void)
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
#include<intrins.h>
#defineuint unsigned int
#defineuchar unsigned char
#include"1602.h"
#include<dh11.h>
uchartemp[] ="RH_SET:00%\0"; //设置的湿度值显示
uchartemp_s[] ="RH:00% TEMP:00 \0"; //实时湿度显示
sbitsw3=P1^5; //按键定义
sbitsw1=P1^3;
sbitsw2=P1^4;
sbitbaojing=P3^3;
//sbitled=P3^5;
ucharset; //变量定义
ucharnum1;
uchargetdata=55;
uintshangxian=34;
uchartemp_h,temp_t;
voidconv();
yunxing();
voidkey();
voidkongzhi();
voidzhuanhuan()//扫描数据转换
{
temp[7]=shangxian/10%10+0x30;
temp[8]=shangxian%10+0x30;
temp_s[3]=temp_h/10%10+0x30;
temp_s[4]=temp_h%10+0x30;
temp_s[3]=temp_h/10%10+0x30;
temp_s[4]=temp_h%10+0x30;
temp_s[12]=temp_t/10%10+0x30;
temp_s[13]=temp_t%10+0x30;
temp_s[14]=0xdf;
temp_s[15]='C';
}
//------------------------------------------------------------
main()
{
baojing=0;
delay(500);
baojing=1;
//led=0;
LCD_Initial(); //液晶初始化
while(1)
{
RH();
temp_t=U8T_data_H;
temp_h=U8RH_data_H;
zhuanhuan();
key();// 按键检测
kongzhi();
GotoXY(0,0);//显示起始位置 Y=0,第一行,Y=1 第二行//显示第一行
Print(temp);// 内容
GotoXY(0,1);//显示起始位置 Y=0,第一行,Y=1 第二行 显示第二行
Print(temp_s);// 内容
delay(1);
//getdate= GetADCResult(0)*3.9;
}
}
void key() //按键检测程序
{
if(set==1)//上限设置
{
if(sw1==0) //上限减功能
{
delay(50);
if(sw1==0)
{ //while(sw1==0);
if(shangxian>0) shangxian--;
else( shangxian=255);
}
}
if(sw2==0) //上限加功能
{
delay(50);
if(sw2==0)
{ //while(sw2==0);
if(shangxian<255) shangxian++;
else( shangxian=0);
}
}
}
}
void kongzhi() //控制报警
{
if((temp_h>=shangxian)|(temp_t>32)) //此处设定预设温度
{
//led=1;
num1++;
if(num1>=20)
{
num1=0;
baojing=~baojing;
}
}
else{baojing=1; }
}
DHT11
传感器接受和发送信息,然后将接收来的信息作出相应的判断和处理,然后反馈到显示器。
#include<at89x52.h>
#include<intrins.h>
// aem
typedefunsigned char U8; /* defined for unsigned 8-bits integervariable 无符号8位整型变量 */
typedefsigned char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */
typedefunsigned int U16; /* defined for unsigned 16-bits integervariable 无符号16位整型变量 */
typedefsigned int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
typedefunsigned long U32; /* defined for unsigned 32-bits integervariable 无符号32位整型变量 */
typedefsigned long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
typedeffloat F32; /*single precision floating point variable (32bits) 单精度浮点数(32位长度) */
typedefdouble F64; /* double precision floating pointvariable (64bits) 双精度浮点数(64位长度) */
//
#defineuchar unsigned char
#defineuint unsigned int
#define Data_0_time 4 //相当于用Data_0_time代替4.
//----------------------------------------------//
//----------------IO口定义区--------------------//
//----------------------------------------------//
sbit DQ =P3^0 ;
//----------------------------------------------//
//----------------定义区--------------------//
//----------------------------------------------//
U8 U8FLAG,k;
U8 U8count,U8temp;
U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8 U8comdata;
U8 outdata[5]; //定义发送的字节数
U8 indata[5];
U8 count, count_r=0;
U16U16temp1,U16temp2;
//以上为变量的定义.
void COM(void);
void Delay2(U16 j) //延时函数
{ U8 i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void) //延时10us的延时函数.
{
U8 i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void COM(void)
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;

专业户