51单片机DHT11温湿度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)
51单片机DHT11温湿度控制系统仿真设计
- 1.主要功能:
- 2.仿真
- 3. 程序代码
- 4. 原理图
- 元器件清单
- 5. 设计报告
- 6. 设计资料内容清单&下载链接
51单片机DHT11温湿度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)
仿真图proteus8.9及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0044
1.主要功能:
运用所学知识,制作一个基于51单片机的温湿度控制器proteus仿真设计
1、按键调温湿度上下限数值的,温湿度不在上下限范围内时对应的电路工作,系统通过继电器模拟降温模块,升温模块,除湿模块,加湿模块。实现温湿度自动控制。
2、系统采用DHT11传感器。
3、使用LCD1602显示当前温湿度和设置值
4、 默认温度下限值20℃,温度上限值30℃。湿度下限值30%,湿度上限值80%。
需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。原理图不变情况下,无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
以下为本设计资料展示图:
2.仿真
开始仿真
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602显示温度和湿度。

仿真中通过按键调整DHT11温湿度模块的值改变显示数值。

上下箭头用于改变温度/湿度的值。下箭头调低数值,上箭头调高数值。
通过这个箭头改变调整的值是温度还是湿度。
改图标显示的是湿度和温度的值,湿度的值在第一行,温度的值在第二行。
开始仿真后,按下设置/切换按键调整上下阈值,默认温度下限值20℃,温度上限值30℃。湿度下限值30%,湿度上限值80%。

开始仿真后,调整湿度超过湿度上限阈值80%后,超过湿度上限的值,除湿模块开始工作,红色指示灯亮。

开始仿真后,调整湿度低于湿度下限阈值30%后,加湿模块开始工作,红色指示灯亮。

开始仿真后,调整温度超过温度上限阈值30℃后,降温模块开始工作,红色指示灯亮。

开始仿真后,调整温度低于温度下限阈值20℃后,升模块开始工作,红色指示灯亮。

3. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

主程序代码
#include "reg51.h"
#include "lcd1602.h"
#include "DHT11.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit out1=P1^3;//输出控制
sbit out2=P1^4;
sbit out3=P1^5;
sbit out4=P1^6;uchar time=0,mode=0;//系统变量
uchar disp1[]="00 ";
uchar lim1=20,lim2=30,lim3=30,lim4=80;//阀值void main()//主函数
{init_1602();TMOD|=0X01;TH0=0X3C;TL0=0XB0; ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1){if(!k1)//设置{if(mode<4)mode++;elsemode=0;write_com(1);while(!k1);} if(!k2)//加{switch(mode){case 1:if(lim1<lim2)lim1++;break;case 2:if(lim2<99)lim2++;break;case 3:if(lim3<lim4)lim3++;break;case 4:if(lim4<99)lim4++;}while(!k2);}if(!k3)//减{switch(mode){case 1:if(lim1>0)lim1--;break;case 2:if(lim2>lim1)lim2--;break;case 3:if(lim3>0)lim3--;break;case 4:if(lim4>lim3)lim4--;}while(!k3);}}
}
//定时器中断
void Timer0() interrupt 1
{if(time<10)//0.5stime++;else{time=0;dht11_recive();//测量温湿度if(dht11_dat[2]<lim1)//加热out2=0;elseout2=1;if(dht11_dat[2]>lim2)//散热out1=0;elseout1=1;if(dht11_dat[0]<lim3)//加湿out4=0;elseout4=1;if(dht11_dat[0]>lim4)//除湿out3=0;elseout3=1;//显示write_com(0x0c);if(mode==0)//正常模式{disp1[0]=dht11_dat[2]/10+0x30;disp1[1]=dht11_dat[2]%10+0x30;disp1[2]='C';write_string(1,0,"Temp:");write_string(1,5,disp1);disp1[0]=dht11_dat[0]/10+0x30;disp1[1]=dht11_dat[0]%10+0x30;disp1[2]='%';write_string(2,0,"Humi:");write_string(2,5,disp1);}else //设置模式{disp1[0]=lim1/10+0x30;disp1[1]=lim1%10+0x30;disp1[2]='C';write_string(1,0,"TL:");write_string(1,3,disp1);disp1[0]=lim2/10+0x30;disp1[1]=lim2%10+0x30;disp1[2]='C';write_string(1,8,"TH:");write_string(1,11,disp1);disp1[0]=lim3/10+0x30;disp1[1]=lim3%10+0x30;disp1[2]='%';write_string(2,0,"HL:");write_string(2,3,disp1);disp1[0]=lim4/10+0x30;disp1[1]=lim4%10+0x30;disp1[2]='%';write_string(2,8,"HH:");write_string(2,11,disp1);//设置光标switch(mode){case 1:write_sfm(1,4);break;case 2:write_sfm(1,12);break;case 3:write_sfm(2,4);break;case 4:write_sfm(2,12);}write_com(0x0e);}}TH0=0X3C;TL0=0XB0;
}
4. 原理图
原理图使用AD绘制,可供实物链接参考,仿真不同于实物,经验不足不要轻易搞实物。新手制作实物会犯很多低级错误,耗费大量时间,本设计不提供实物制作答疑。
Proteus仿真和实物作品的区别:
1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。
2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。
电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。
3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。
4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

元器件清单
元件 型号 数量
单片机 AT89C51 1
电容 10uf 1
电容 30pf 2
晶振 12MHZ 1
电阻 10k 1
按钮 4
温湿度传感器 DHT11 1
电位器 1k 2
LED 红色 4
电阻 100欧 4
电阻 1k 4
三极管 PNP 4
继电器 5V 4
显示器 LCD1602 1
排阻 10k 1
稳压电源部分
排针 2P 1
电容 0.1uf 2
电容 100uf 2
稳压器 7805 1
5. 设计报告
7386字设计报告,内容包含设计框图,引言,硬件设计介绍,软件设计介绍,仿真调试,总结和参考文献。

6. 设计资料内容清单&下载链接
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、仿真图
2、程序源码
3、开题报告
4、原理图
5、功能要求
6、元器件清单
7、设计报告
8、软硬件流程框图
9、讲解视频
Altium Designer 软件资料
KEIL软件资料
Proteus软件资料
单片机学习资料
答辩技巧
设计报告常用描述
鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

资料下载链接(可点击):
相关文章:
51单片机DHT11温湿度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)
51单片机DHT11温湿度控制系统仿真设计 1.主要功能:2.仿真3. 程序代码4. 原理图元器件清单5. 设计报告6. 设计资料内容清单&下载链接 51单片机DHT11温湿度控制系统仿真设计( proteus仿真程序原理图报告讲解视频) 仿真图proteus8.9及以上 程序编译器&…...
神仙级python入门教程(非常详细),从0到精通,从看这篇开始!
毫无疑问,Python 是当下最火的编程语言之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事。其实,只要掌握了科学的学习方法并制定了合理的学习计划,Python 从 入门到精通只需要一个月…...
详解4种类型的爬虫技术
聚焦网络爬虫是“面向特定主题需求”的一种爬虫程序,而通用网络爬虫则是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 增量抓取意…...
QTday1基础
作业 一、做个QT页面 #include "hqyj.h"HQYJ::HQYJ(QWidget *parent)//构造函数定义: QWidget(parent)//显性调用父类的有参构造 {//主界面设置this->resize(540,410);//设置大小this->setFixedSize(540,410);//设置固定大小this->setWindowIcon(QIcon(&q…...
activiti 通过xml上传 直接部署模型
通过流程xml 直接先发布模型,然后再通过发布模型之后的流程定义获取bpmn model来创建Model. 1、通过xml先发布模型 InputStream bpmnStream multipartFile.getInputStream() deployment repositoryService.createDeployment().addInputStream(multipartFile.getO…...
算法题打卡day56-编辑距离 | 583. 两个字符串的删除操作、72. 编辑距离
583. 两个字符串的删除操作 - 力扣(LeetCode) 状态:查看思路后AC。 和查找子序列的操作类似,但是考虑的是删除操作。代码如下: class Solution { public:int minDistance(string word1, string word2) {int len1 wor…...
SQL中的CASE WHEN语句:从基础到高级应用指南
SQL中的CASE WHEN语句:从基础到高级应用指南 准备工作 - 表1: products 示例数据: 我们使用一个名为"Products"的表,包含以下列:ProductID、ProductName、CategoryID、UnitPrice、StockQuantity。 -- 建表 CREATE TA…...
超时取消子线程任务
文章目录 前言一、编码思路二、使用步骤直接上代码 总结 前言 问题背景: 主线程需要执行一些任务,不能影响主任务执行,这些任务有超时时间,当超过处理时间后,应该不予处理;如果未超时,应该获取到这些任务的执行结果; 一、编码思路 由于主线程正常执行不能影响,任务会处理很久…...
模块化---common.js
入口文件:app.js // require是同步加载 // 客户端:common.js的模块化,需要browserify编译之后才能使用 // 服务端:运行时同步加载,无问题 let module1 require(./module1.js) let module2 require(./module2.js) co…...
VSCode下载、安装及配置、调试的一些过程理解
第一步先下载了vscode,官方地址为:https://code.visualstudio.com/Download 第二步安装vscode,安装环境是win10,安装基本上就是一步步默认即可。 第三步汉化vscode,这一步就是去扩展插件里面下载一个中文插件即可&am…...
KC705开发板——MGT IBERT测试记录
本文介绍使用KC705开发板进行MGT的IBERT测试。 KC705开发板 KC705开发板的图片如下图所示。FPGA芯片型号为XC7K325T-2FFG900C。 MGT MGT是 Multi-Gigabit Transceiver的缩写,是Multi-Gigabit Serializer/Deserializer (SERDES)的别称。MGT包含GTP、GTX、GTH、G…...
前端代码优化散记
把import Button from xxx 的引入方式,变成import {Button} from xxx 的方式引入,以利于按需打包。原生监听事件、定时器等,必须在componentWillUnmount中清除,大型项目会发生内存泄露,极度影响性能。使用PureComponen…...
HTML <map> 标签的使用
map标签的用途:是与img标签绑定使用的,常被用来赋予给客户端图像某处区域特殊的含义,点击该区域可跳转到新的文档。 编写格式: <img src"图片" border"0" usemap"#planetmap" alt"Planets…...
stable diffusion实践操作-大模型介绍
本文专门开一节写大模型相关的内容,在看之前,可以同步关注: stable diffusion实践操作 模型下载网站 国内的是:https://www.liblibai.com 国外的是:https://civitai.com(科学上网) 一、发展历…...
W5500-EVB-PICO进行MQTT连接订阅发布教程(十二)
前言 上一章我们用开发板通过SNTP协议获取网络协议,本章我们介绍一下开发板通过配置MQTT连接到服务器上,并且订阅和发布消息。 什么是MQTT? MQTT是一种轻量级的消息传输协议,旨在物联网(IoT)应用中实现设备…...
90、00后严选出的数据可视化工具:奥威BI工具
90、00后主打一个巧用工具,绝不低效率上班,因此当擅长大数据智能可视化分析的BI数据可视化工具出现后,自然而然地就成了90、00后职场人常用的数据可视化工具。 奥威BI工具三大特点,让职场人眼前一亮! 1、零编程&…...
删除maven中出现.lastUpdate结尾的文件
出现 .lastupdate 结尾的文件的原因:由于网络原因没有将maven的依赖下载完整. 解决方案: 1) 删除所有以 .lastupdate 结尾的文件 A) 1.切换到maven本地仓库 B)2.在当前目录打开cmd命令行(shift右键-->在此处打开命令窗口 或 直接在当前文件路径上敲cmd 或 右键-->…...
Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
webpack打包js文件中不允许混用import和module.exports。 方式①:babel.config.js添加sourceType: {"presets": [...],"sourceType": "unambiguous" }方式②:安装babel-plugin-transform-es2015-modules-commonjs npm …...
Dockerfile中编译、打包、部署spring boot项目
1、Dockerfile 1.1、什么是Dockerfile Dockerfile是自动构建docker镜像的配置文件,将镜像构建过程通过指令的方式定义在Dockerfile中。配合docker build命令行可以实现自动化的Docker镜像的构建。 1.2、Dockerfile语法解析 我们在学习一门语言或文档语法的时候&am…...
微型计算机原理知识点总结(一)
目录 一.微型计算机 二.微型计算机系统 1.微型计算机硬件系统 冯诺依曼体系结构 总线 (1)微处理器(CPU) 运算器 控制器 内部寄存器 (2)存储器 1.基本概念 2.内存的操作 3.内存的分类 (3)I/O接口与输入/输出设备 2.微型计算机软件系统 (1)系统软件 操作系统 …...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
