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

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件