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

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

WordPress网创自动采集并发布插件

网创教程:WordPress插件网创自动采集并发布 阅读更新:随机添加文章的阅读数量,购买数量,喜欢数量。 使用插件注意事项 如果遇到404错误,请先检查并调整网站的伪静态设置,这是最常见的问题。需要定制化服务,请随时联系我。 本次更新内容 我们进行了多项更新和优化,主要包括: 界面设置:用户现在可以更便捷地设置文章分类和发布金额。代码优化:改进了采集和发布代码,提高了插件的稳定

【青龙面板辅助】JD商品自动给好评获取京豆脚本

1.打开链接 开下面的链接进入待评价商品页面 https://club.jd.com/myJdcomments/myJdcomments.action?sort=0 2.登陆后执行脚本 登陆后,按F12键,选择console,复制粘贴以下代码,先运行脚本1,再运行脚本2 脚本1代码 可以自行修改评价内容。 var content = '材质很好,质量也不错,到货也很快物流满分,包装快递满