基于51单片机的孵化环境温湿度监控系统设计

发布时间:2023-03-03  

实现功能:

1、对孵化环境的温度、湿度进行监控
2、可以警报提示、修改温度、湿度上下限值
3、led灯指示报警温湿度信息、LCD显示相关信息

电路原理图:


部分程序:

#include

#include "intrins.h"

typedef unsigned char uint8;

typedef unsigned int uint16;

sbit rs=P2^6; // 数据命令选择

sbit rw=P2^5; //读写选择

sbit e=P2^7; //使能


sbit k1=P3^3; //模式

sbit k2=P2^1; //加

sbit k3=P2^2; //减


sbit DHT11_DQ_OUT=P3^2;

sbit led1=P3^6;

sbit led2=P3^7;


sbit dq=P2^0;


uint8 mode=0,xian;

char temph=50,templ=20;

char humih=80,humil=20;

uint8 temp,humi;

uint8 flag; //设定报警标志

uint8 a,c,tempvalue;

uint8 code num[10]="0123456789";


uint8 code str1[]="Temp:"; //温度

uint8 code str2[]="Humi:"; //湿度

uint8 code str3[]="Error";

uint8 code str4[]="Success ";

uint8 code str5[]="%RH";

uint8 code str6[]="TempH:"; //设定温度上限显示

uint8 code str7[]="TempL:"; //设定温度下限显示

uint8 code str8[]="HumiH:"; //设定湿度上限显示

uint8 code str9[]="HumiL:"; //设定湿度下限显示


//从DHT11读取一个位

//返回值:1/0

uint8 DHT11_Read_Bit(void)

{

uint8 retry=0;

while(DHT11_DQ_OUT&&retry<100)//等待变为低电平 12-14us 开始

{

retry++;

_nop_();

}

retry=0;

while((!DHT11_DQ_OUT)&&retry<100)//等待变高电平 26-28us表示0,116-118us表示1

{

retry++;

_nop_();

}

delay(1);//等待40us

if(DHT11_DQ_OUT)return 1;

else return 0;

}


//从DHT11读取一个字节

//返回值:读到的数据

uint8 DHT11_Read_Byte(void)

{

uint8 i,dat=0;

for (i=0;i<8;i++)

{

dat<<=1;

dat|=DHT11_Read_Bit();

}

return dat;

}


//从DHT11读取一次数据

//temp:温度值(范围:0~50°)

//humi:湿度值(范围:20%~90%)

//返回值:0,正常;1,读取失败

uint8 DHT11_Read_Data(uint8 *temp,uint8 *humi)

{

uint8 buf[5];

uint8 i;

DHT11_Rst();

if(DHT11_Check()==0)

{

for(i=0;i<5;i++)//读取40位数据

{

buf[i]=DHT11_Read_Byte();

}

if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])

{

*humi=buf[0];

*temp=buf[2];

}

}else return 1;

return 0;

}





void ds18b20init() //18b20的初始化

{

dq=1;

delay(1);

dq=0;

delay(80);

dq=1;

delay(5);

dq=0;

delay(20);

dq=1;

delay(35);

}

void ds18b20wr(uint8 dat) //18b20写数据

{

uint8 i;

for(i=0;i<8;i++)

{

dq=0;

dq=dat&0x01;

dat>>=1;

delay(8);//在时序上只有这一块对时序要求最准确,他的时间必须大于15us

dq=1;

delay(1);

}

}

uint8 ds18b20rd() //18b20读数据

{

uint8 value,i;

for(i=0;i<8;i++)

{

dq=0;

value>>=1;

dq=1;

if(dq==1)value|=0x80;

delay(8);//在这一块也对时间要求特别准确,整段程序必须大于60us

}

return value;

}

uint8 readtemp() //读取温度内需要复位的

{

uint8 b;

ds18b20init(); //初始化

ds18b20wr(0xcc); //发送忽略ROM指令

ds18b20wr(0x44); //发送温度转换指令

delay(100);

ds18b20init(); //初始化

ds18b20wr(0xcc); //发送忽略ROM指令

ds18b20wr(0xbe); //发读暂存器指令

a=ds18b20rd(); //温度的低八位

b=ds18b20rd(); //温度的高八位

b<<=4; //ssss s***;s为标志位s=0表示温度值为正数,s=1温度值为负数

c=b&0x80; //温度正负标志位确认

b+=(a&0xf0)>>4;

a=a&0x0f; //温度的小数部分

return b;

}



void key_pros() //按键处理函数

{

if(k1==0)

{

delay(1000);

if(k1==0)

{

mode++;

if(mode==5)mode=0;

wrc(0x01);

}

while(!k1);

}

if(mode==1) //对温度上限设定

{

if(k2==0) //加

{

delay(1000);

if(k2==0)

{

temph++;

if(temph>=80)temph=80;

}

while(!k2);

}

if(k3==0) //减

{

delay(1000);

if(k3==0)

{

temph--;

if(temph<=0)temph=0;

}

while(!k3);

}

}

if(mode==2) //对温度下限设定

{

if(k2==0) //加

{

delay(1000);

if(k2==0)

{

templ++;

if(templ>=80)templ=80;

}

while(!k2);

}

if(k3==0) //减

{

delay(1000);

if(k3==0)

{

templ--;

if(templ<=0)templ=0;

}

while(!k3);

}

}

if(mode==3) //对湿度上限设定

{

if(k2==0) //加

{

delay(1000);

if(k2==0)

{

humih++;

if(humih>=80)humih=80;

}

while(!k2);

}

if(k3==0) //减

{

delay(1000);

if(k3==0)

{

humih--;

if(humih<=0)humih=0;

}

while(!k3);

}

}

if(mode==4) //对湿度下限设定

{

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    定合理的灌溉制度提供数据参考,达成适时灌溉和节约用水等目的。 1 系统总体设计 基于机智云物联网平台的农作物需水量计算系统,利用嵌入式微控制器采集作物的温湿度、风速环境信息,同时采用 ZigBee 技术......
    终端和数据处理终端两个部分。农作物现场环境信息采集终端的主要作用是通过 STM32 主控单元采集农作物的温湿度、风速信息并通过 ZigBee 无线......
    基于STM32的低功耗温湿度采集器的设计与实现;STM32嵌入式系统在许多控制领域有着广泛的应用。STM32是一款基于Cortex-M3内核的微控器,该控......
    上位机软件实时监测各个节点的数据。 数字传感器系统主要由控制中心模块、压力采集模块、温湿度采集模块、CAN总线模块及电源模块等部分组成。控制中心模块选用C8051F060单片机;为了实现温湿压数据的采集,数据采集......
    终端、外设4 个部分组成。通过空气温湿度、光照强度、土壤温湿度及氮磷钾含量、土壤PH 值传感器采集数据,并通过ZigBee 协议传输数据,用户可通过手机APP 或者PC 端直......
    基于8051单片机的温湿度采集系统设计;通过前面的学习,我们学会了如何用串口发送数据和接收固定字节的命令。今天,我们继续讨论串口应用协议,主要焦点还是在如何有效地使用串口发送数据。为了简化描述,假设......
    源码编程即可实现远程控制。 机智云平台开发界面 本设计是基于STM32单片机和4G网络的智能开窗器控制系统,设计主要实现了能够根据光照、有无下雨情况自动控制窗户的开关,并且具备温湿度采集和控制窗户开关的功能。 系统......
    单片机和4G网络的智能开窗器控制系统,设计主要实现了能够根据光照、有无下雨情况自动控制窗户的开关,并且具备温湿度采集和控制窗户开关的功能。系统还具备手机APP远程控制开窗器进而控制窗户开关的功能,系统......
    可选择读取部分数据。 从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集采集数据后转换到低速模式。 1.1.1 起始信号 总线......
    ://bbs.huaweicloud.com/blogs/381072 【基于华为云IOT平台实现多节点温度采集(STM32+NBIOT)】 四、设计代码 【1】DHT11温湿度数据读取 以下是基于HAL库的......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>