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

news/2024/5/3 9:20:57/文章来源:https://blog.csdn.net/qq_17200045/article/details/127328474

资料编号: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_23701.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习之决策树

一、决策树基本介绍 Decision Tree 可以解决分类和回归问题监督学习算法 二、决策树工作原理 从根开始,按照决策树的分类属性,从上往下,逐层划分。直到叶子节点,便能获得结果。所以决策树算法的核心在于如何构造一颗决策树&…

Flink内存模型

一、内存布局 1、直观图2、树状图 二、内存解释 1、Flink使用的内存 (1)JVM堆上内存说明:堆上内存管理序列化之后的数据,如果需要处理的数据超出了内存限制,则会将部分数据存储到硬盘上。堆上内存在写磁盘或网络传输时至少需要一次内存复制。a.框架堆上内存Framework Heap…

[附源码]Java计算机毕业设计SSMOA自动化办公系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

DenseNet - 稠密神经网络(CNN卷积神经网络)

文章目录DenseNet - 稠密神经网络稠密块体稠密块中的卷积层稠密块过渡层DenseNet模型训练模型小结DenseNet - 稠密神经网络 ResNet极大地改变了如何参数化深层网络中函数的观点。 稠密连接网络(DenseNet) [Huang et al., 2017]在某种程度上是ResNet的逻…

阿里巴巴面试题- - -多线程并发篇(四十一)

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~ 内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elast…

SptingBoot基于Echarts生成折线图,柱状图。看完必会,超详细~~

SptingBoot基于Echarts生成折线图,柱状图前言用到的技术与开源代码1.PhantomJS2.Echartsconvert 开源项目2.SpringBoot实现统计图生成1.pom.xml重要依赖2.图片数据模板3.JAVA代码结尾前言 近期产品团伙给了一个生成PDF数据报的需求,PDF中需要生成折线图…

MySQL死锁排查步骤

系列文章目录 第一章:sql_mode模式 第二章:optimize table、analyze table、alter table、gh-ost 第三章:InnoDB MVCC原理 第四章:sql语句执行过程 第五章:Percona Toolkit工具简介 第六章:MySQL索引 第七…

TRC丨艾美捷TRC 波普瑞韦代谢物 M4说明书

艾美捷TRC 波普瑞韦代谢物 M4—丙型肝炎病毒 NS3 丝氨酸蛋白酶抑制剂 Boceprevir (B675500) 的代谢物。 艾美捷TRC 波普瑞韦代谢物 M4化学性质: 目录号B674520 化学名称波普瑞韦代谢物 M4 同义词(1R,2S,5S)-3-[(2S)-2-[[[[1,1-二甲基乙基]氨基]羰基]氨基]-3,3-二…

【C++笔试强训】第四天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

【Day28】力扣算法(超详细思路+注释) [1790. 仅执行一次字符串交换能否使两个字符串相等 ] [328. 奇偶链表 ][148. 排序链表]

刷题打卡,第 二十八 天题目一、1790. 仅执行一次字符串交换能否使两个字符串相等题目二、328. 奇偶链表题目三、148. 排序链表题目一、1790. 仅执行一次字符串交换能否使两个字符串相等 原题链接:1790. 仅执行一次字符串交换能否使两个字符串相等 题目…

消息队列的一些思考

前言 像我们Feign进行服务远程调用就会出现上述情况,服务调用是同步的,需要保证整个链路成功执行完才能成功下单,需要考虑网络抖动等影响,还有雪崩的现象——>同步通信会产生不稳定的影响导致用户体验较差 (41条消息) Dubbo_…

【前端笔试之输入输出问题汇总】系列1

1、题目1:涉及到new Array()以及map方面的一些特性 const array new Array(5).map((item) > {return item {name: 1} }) console.log(array)//[empty*5]一般我们认为会输出[name,name,name,name,name]。但是输出的却是empty。 因为new Array(5)生成的数组在每…

CAD导入Revit缺少东西原因-Revit中如何批量导出CAD图纸

一、CAD导入Revit缺少东西原因汇总 在Revit中导入CAD进行模型搭建是建模过程中常用的方法,但是有时会遇到导入的CAD缺少东西的情况,下面介绍几种导致这种问题的原因 1.CAD导入的时候,不是设置为全部可见。 CAD导入Revit中时,“图层…

护眼灯色温多少对眼睛好?推荐色温4000K暖白光的护眼灯

色温就是指温度的颜色,通常人眼所见的光线,由7中色光的光谱所组成,而护眼灯的光源越接近自然光就越好,一般要求色温在4000K左右比较合适,灯光为暖黄光,既温馨有符合相应的亮度,可以起到很好保护…

ROS2在ROS1 的基础的改进点

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、为什么要推出ROS2【重构ROS1】二、ROS1存在的问题三、ROS1与ROS2架构对比四、ROS2新概念例举五、ROS安装版本(…

【SpringCloud学习笔记】Feign

Feign 的使用 什么是Feign Feign是声明性的web服务客户端。它使编写web服务客户端更加容易,它封装类Ribbon和RestTemplate Feign vs OpenFeign 1、Feign是Netflix公司写的,是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端,是Spring…

C/C++里危险的宏(Macro)

#define SQUARE(x) x*x 上述宏定义SQUARE(x)用于求“参数”x的平方,这个宏很容易被使用者误认为是函数。宏是由预处理器处理的,它有着函数的形式却没有函数调用的代价。我们不建议初学者使用宏,因为使用宏的收益远不足以抵消其带给初学者的风…

基于本地存储LVM新建虚机方案

文章目录基于本地存储LVM新建虚机方案date: 2021/12/22auth: mmwei3一、环境信息如下:二、需求方案:1、虚机(卷启动)系统盘数据盘 三者在同一计算节点。2、虚机可以挂本计算节点的数据盘也可以挂载其他计算节点的数据盘。3、虚机可以使用本节点上的HDD做…

大数据必学Java基础(七十六):创建线程的三种方式

文章目录 创建线程的三种方式 一、继承Thread类 二、实现Runnable接口 三、实现Callable接口 创建线程的三种方式 一、继承Thread类 在学习多线程之前,以前的代码是单线程的吗? 不是,以前也是有三个线程同时执行的。 现在我想自己制造…

《单元测试》Junit5入门教程——非常详细,入门即精通

本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 单元测试-Junit5入门教程一、添加Junit5依赖二、Junit5 常用注解2.1、Test2.2、BeforeAll2.3、AfterAll2.4、BeforeEac…