当前位置: 首页 > news >正文

基于STM32单片机的温度控制系统(Proteus仿真+Keil源码+设计文档)DS18B20 附下载链接!

提供对应的Proteus仿真电路图,Keil程序源码(C语言)+设计文档等电子资料参考学习,附全部资料的下载链接

1)项目完整资料获取链接:下载链接

2)Keil、Proteus各个版本安装包: 下载链接

01设计要求

设计一个基于STM32单片机的温度控制系统:

  1. DS18B20监测环境温度,显示在LCD1602上
  2. 可以设置温度上下限
  3. 可以控制加热或者降温
  4. 超过限制温度用LED或者蜂鸣器进行提示

02Proteus仿真

03示例代码

#include"main.h"#include"bsp-lcd1602.h"#include"ds18b20.h"#include"delay.h"intmain(void){/* USER CODE BEGIN 1 */u8 state=0,i=0,j=0;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();/* USER CODE BEGIN 2 */LCD1602_Init();DS18B20_Init();//DS18B20初始化HAL_Delay(10);//延时一段时间LCD1602_ShowStr(2,0,"Temp Alarm",11);LCD1602_ShowStr(0,1,"detection system",16);HAL_Delay(1000);//延时1SLCD1602_WriteCmd(0x01);//清屏/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while(1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */switch(state){case0:display_temperature(0,0);//获取温度值并在LCD1602上显示,当前温度值与阈值进行比较并报警if(key==KEY2_PRESS){key=0;LCD1602_WriteCmd(0x01);//清屏state=1;}if(key==KEY3_PRESS){key=0;i=~i;LCD1602_WriteCmd(0x01);//清屏state=3;}if(key==KEY4_PRESS){key=0;j=~j;LCD1602_WriteCmd(0x01);//清屏state=4;}break;case1:LCD1602_ShowStr(0,0,"SetHighTemp:",12);LCD1602_ShowStr(0,1,"HTemp =",7);LCD1602_ShowNum(8,1,Hight_Temp_Value/100);LCD1602_ShowNum(9,1,Hight_Temp_Value%100/10);if(key==KEY0_PRESS){key=0;Hight_Temp_Value=Hight_Temp_Value+10;if(Hight_Temp_Value>1000)Hight_Temp_Value=0;}elseif(key==KEY1_PRESS){key=0;Hight_Temp_Value=Hight_Temp_Value-10;if(Hight_Temp_Value<1)Hight_Temp_Value=0;}elseif(key==KEY2_PRESS){key=0;LCD1602_WriteCmd(0x01);//清屏state=2;}break;case2:LCD1602_ShowStr(0,0,"SetLowTemp:",11);LCD1602_ShowStr(0,1,"LTemp =",7);LCD1602_ShowNum(8,1,Low_Temp_Value/100);LCD1602_ShowNum(9,1,Low_Temp_Value%100/10);if(key==KEY0_PRESS){key=0;Low_Temp_Value=Low_Temp_Value+10;if(Low_Temp_Value>Hight_Temp_Value)Low_Temp_Value=Hight_Temp_Value-10;}elseif(key==KEY1_PRESS){key=0;Low_Temp_Value=Low_Temp_Value-10;if(Low_Temp_Value<1)Low_Temp_Value=0;}elseif(key==KEY2_PRESS){key=0;LCD1602_WriteCmd(0x01);//清屏state=0;}break;case3://每按一下,改变升温电机的状态if(i)HAL_GPIO_WritePin(Heat_OUT_GPIO_Port,Heat_OUT_Pin,GPIO_PIN_SET);elseHAL_GPIO_WritePin(Heat_OUT_GPIO_Port,Heat_OUT_Pin,GPIO_PIN_RESET);state=0;break;case4://每按一下,改变降温风机的状态if(j)HAL_GPIO_WritePin(Cold_OUT_GPIO_Port,Cold_OUT_Pin,GPIO_PIN_SET);elseHAL_GPIO_WritePin(Cold_OUT_GPIO_Port,Cold_OUT_Pin,GPIO_PIN_RESET);state=0;break;default:break;}/* USER CODE END 3 */}}

注:

  1. 源码使用Keil4或Keil5打开

  2. 仿真使用的是Proteus8.13及以上版本,版本过低可能会打不开。

04资料获取

1)项目完整资料获取链接:下载链接

2)Keil、Proteus各个版本安装包: 下载链接

http://www.gsyq.cn/news/1620629.html

相关文章:

  • 原神帧率解锁指南:突破60帧限制的完美解决方案
  • 从原理到实战:利用iwebsec靶场深入理解SSRF漏洞与Gopher协议攻击
  • 源码部署太繁琐?Hermes 轻量化整合包快速体验 AI 对话工具
  • 告别纸质签署,拥抱数字时代!亲笔签助力湘雅博爱康复医院实现全院电子签名
  • Web安全实战:12个逻辑漏洞案例与系统化挖掘方法论
  • 3步解锁QQ音乐格式限制:QMCFLAC2MP3终极解决方案
  • YOLOv10模型改进-Backbone改进-第59篇:YOLOv10改进策略【Backbone】| ShuffleNetV2 Backbone替换
  • 分布式事务2PC_TSO详解_阿里云PolarDB-X如何实现高性能分布式事务
  • 池州彩钢瓦
  • 内网隐蔽扫描实战:Nmap参数组合与流量伪装技术详解
  • 让小爱音箱秒变AI助手:MiGPT完整配置指南
  • 3步掌握AMD Ryzen处理器深度调试:从新手到硬件专家的完整指南
  • 13DOF传感器与PIC18F86K22微控制器的定位系统设计
  • rust语言学习笔记(指针七)Arc<T>(线程安全引用计数)
  • 【VMware 3D加速终极指南】:20年虚拟化专家亲授显卡直通、OpenGL/DirectX优化与性能翻倍实操秘籍
  • 110、unittest 标准库:TestCase、TestSuite、TestRunner 的共存与迁移
  • 车辆速度估计 车速识别 车速估计 车辆速度计算
  • KKManager:告别模组混乱,14款游戏模组一键智能管理
  • 3PEAK思瑞浦 TPA158B3-S5TR-S SOT23-5 电流信号检测放大器
  • 抖音批量下载技术方案:从零构建高效内容管理工具
  • Gemma 4本地AI部署指南:从硬件配置到性能优化
  • 终极Steam创意工坊下载器:跨平台免费获取海量游戏模组的完整指南
  • 如何将小爱音箱快速升级为AI语音助手:MiGPT完整配置教程
  • 防御者视角下的SMBGhost漏洞:从检测、修复到验证的完整实战指南
  • Vue2与SpringBoot集成SM2国密算法实现前后端双向加密通信
  • 解锁AMD Ryzen隐藏性能:3步掌握SMUDebugTool硬件调优神器
  • 三步高效修复损坏MP4视频:UnTrunc实用指南
  • 告别视频硬字幕困扰:3分钟掌握AI智能字幕去除神器
  • codex多agent协作新手项目落地实践
  • MQ 选型最难的不是比吞吐,而是先判断你要的是事件日志、任务队列,还是业务消息