基于51单片机智能农业大棚恒温恒湿Proteus仿真(源码+仿真+全套资料)

资料编号:134

视频讲解:

134-基于51单片机智能农业大棚监测恒温恒湿Proteus仿真(源码+仿真+全套资料)

功能介绍:

采用51单片机作为主控芯片,可以采集当前的温湿度,并且LCD1602显示,可以通过按键设置温湿度的上下阈值,当超过此设置阈值,蜂鸣器进行报警,并且继电器启动相对应的功能,比如低于温度设置的最低值,开启加温,高于温度设置的最高值,开启降温;,比如低于湿度设置的最低值,开启加湿,高于湿度设置的最高值,开启去湿,全套资料齐全:

部分程序展示示例:

//定义四个输出端口
sbit Led_jiashi=P3^6;        //加湿
sbit Led_qushi=P3^4;        //去湿
sbit Led_jiangwen=P3^2;        //降温
sbit Led_shengwen=P3^3;        //升温
//定义三个设置按键
sbit Key_SET = P2^0;
sbit Key_ADD = P2^1;
sbit Key_SUB = P2^2;
sbit Key_OK  = P2^3;
//定义24C02数据口
sbit SCL = P1^0;
sbit SDA = P1^1;
//定义DHT11数据口
sbit DATA = P1^7;
sbit buzz=P3^5;
//定义LCD1602端口
sbit E=P1^3;        //1602使能引脚
//sbit RW=P2^6;        //1602读写引脚    
sbit RS=P1^2;        //1602数据/命令选择引脚
//定义全局变量


/*
sbit Led_jiashi=P1^4;        //加湿
sbit Led_qushi=P1^5;        //去湿
sbit Led_jiangwen=P1^6;        //降温
sbit Led_shengwen=P1^7;        //升温
//定义三个设置按键
sbit Key_SET = P1^0;
sbit Key_ADD = P1^1;
sbit Key_SUB = P1^2;
sbit Key_OK  = P1^3;
//定义24C02数据口
sbit SCL = P2^1;
sbit SDA = P2^0;
//定义DHT11数据口
sbit DATA = P3^7;
sbit buzz=P3^2;

//定义LCD1602端口
sbit E=P2^7;        //1602使能引脚
//sbit RW=P2^6;        //1602读写引脚    
sbit RS=P2^6;        //1602数据/命令选择引脚
sbit RW=P2^5;
 */

uchar U8FLAG,U8temp,U8comdata,U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp;
uchar U8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata;
uchar Mode,humidity,temperature;
char TH,TL,HH,HL;
bit bdata FlagStartRH,hot,cold,humid,dry,BJ,flag_1,flag_2;//flag_1温度标志是否发短信,flag_2标志湿度报警是否发短信

#define NULL 0
#define RsBuf_N            120

unsigned char idata RsBuf[RsBuf_N];    //定义串口接收数据缓冲区
uchar RsPoint;
unsigned char  dianhuahaoma[12]="15046397767\0";

//定时器0初始化
void Timer0_Init()
{
    ET0 = 1;        //允许定时器0中断
    TMOD = 0x21;       //定时器工作方式选择
    TL0 = 0xFF;     
    TH0 = 0x4B;     //定时器赋予初值
    TR0 = 1;        //启动定时器
}

//定时器0中断
void Timer0_ISR (void) interrupt 1 using 0
{
    uchar RHCounter;
    TL0 = 0xFF;
    TH0 = 0x4B;     //定时器赋予初值
    RHCounter++;
    if(RHCounter%10==0&&BJ==1)
    buzz=!buzz;
    else if(BJ==0)
    buzz=1;
    //每2秒钟启动一次温湿度转换
    if (RHCounter >= 40)
    {
       FlagStartRH = 1;
       RHCounter = 0;
    }
}

资料下载链接icon-default.png?t=M85Bhttps://pan.baidu.com/s/1z4Q-lcaWweHXWPqxMO_lYA?pwd=ihl9

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子工程DIY工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值