111-基于stm32单片机高低温恒温恒湿试验箱自动控制系统Proteus仿真+程序源码

本文主要是介绍111-基于stm32单片机高低温恒温恒湿试验箱自动控制系统Proteus仿真+程序源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:功能介绍

1、采用stm32单片机+LCD1602+DHT11温湿度传感器+按键+电机,制作一个单片机高低温恒温恒湿试验箱自动控制系统;

2、通过按键设置温度和湿度的阈值,通过DHT11传感器采集温湿度;

3、当采集温度大于阈值,开启制冷模式,当温度小于设置温度,开启加热模式,当采集湿度大于阈值,开启排气模式,当湿度小于设置湿度,开启加湿模式;

4、LCD1602显示实时温湿度和按键设置的温湿度阈值;

二:仿真演示视频+程序简要讲解:(程序有中文注释,新手容易看懂)

111-基于stm32单片机高低温恒温恒湿试验箱自动控制系统Proteus仿真+程序源码+讲解视频

三:设计软件介绍

本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。

四:程序打开方法

特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

3e447bdf76b686abfb62f39881f4bd57.png

cc05d2ed24e55260e30b2ffcd5dbbfc6.png

程序部分展示,有中文注释,新手容易看懂
/*****************引脚配置********************/
void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//LCD1602 管脚      GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8| GPIO_Pin_9| GPIO_Pin_10| GPIO_Pin_11| GPIO_Pin_12| GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 |GPIO_Pin_6|GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);  //DHT11 GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;GPIO_Init(GPIOB, &GPIO_InitStructure);
}
void IO_out( void )
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC ,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;;GPIO_Init(GPIOC, &GPIO_InitStructure);  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_9|GPIO_Pin_8|GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOC, &GPIO_InitStructure);  PCout(7)=PCout(8)=PCout(9)=PCout(10)=1;
}
void anjiansaomiao(void)
{//温度值+if(k1 == 1){wendu1++; while(k1!=0);if(wendu1>100) wendu1=100;      }//温度-    if(k2 == 1){wendu1--;  while(k2!=0);if(wendu1<1) wendu1=1;}  //湿度+if(k3 == 1){shidu1++; while(k3!=0);if(shidu1>100) shidu1=100;}//湿度-    if(k4 == 1){shidu1--; while(k4!=0);if(shidu1<1) shidu1=1;}      
}int main(void)
{IO_out();GPIO_Configuration();//初始化  Init1602(); WrByte1602(0,1,' '); //字符显示WrByte1602(0,2,'W'); WrByte1602(0,3,'D'); WrByte1602(0,4,'='); WrByte1602(1,1,'S'); WrByte1602(1,2,'E'); WrByte1602(1,3,'T'); WrByte1602(1,4,'='); WrByte1602(0,9,' '); WrByte1602(0,10,'S'); WrByte1602(0,11,'D'); WrByte1602(0,12,'='); WrByte1602(1,9,'S'); WrByte1602(1,10,'E'); WrByte1602(1,11,'T'); WrByte1602(1,12,'='); delay_ms(500);while(1){anjiansaomiao();//读取温湿度DHT11_receive(&shidu,&wendu);anjiansaomiao();WrByte1602(0,5,AsciiCode[wendu%1000/100]);//显示温度WrByte1602(0,6,AsciiCode[wendu%100/10]);WrByte1602(0,7,AsciiCode[wendu%10]);WrByte1602(0,13,AsciiCode[shidu%1000/100]);  //显示湿度WrByte1602(0,14,AsciiCode[shidu%100/10]);WrByte1602(0,15,AsciiCode[shidu%10]);WrByte1602(1,5,AsciiCode[wendu1%1000/100]);  //显示温度阈值WrByte1602(1,6,AsciiCode[wendu1%100/10]);WrByte1602(1,7,AsciiCode[wendu1%10]);WrByte1602(1,13,AsciiCode[shidu1%1000/100]);  //显示湿度阈值WrByte1602(1,14,AsciiCode[shidu1%100/10]);WrByte1602(1,15,AsciiCode[shidu1%10]);if(wendu>wendu1)//温度高于设置值 开始制冷PCout(7)=0;else PCout(7)=1;if(wendu<wendu1)//温度低于设置值 开始加热PCout(8)=0;else PCout(8)=1;if(shidu>shidu1)//湿度高于设置值 开始排气去湿PCout(9)=0;else PCout(9)=1;if(shidu<shidu1)//湿度低于设置值 开始加湿PCout(10)=0;else PCout(10)=1;  }
}

:仿真文件(采用Proteus打开)

bf5ce385cd8a8f0e4b2788e43168297c.png

8e47cffde533c31a148cd322ac1ae97f.png

8f87359ad921c1c2db642b089096a4d2.png

六:资料清单展示(文件中包含的相关资料)

ae91f369f28cad30e356aa19cb98f317.png

百度云盘下载链接

这篇关于111-基于stm32单片机高低温恒温恒湿试验箱自动控制系统Proteus仿真+程序源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747410

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。