当前位置: 首页 > 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.jsqmd.com/news/1108659/

相关文章:

  • KMX63与STM32L162ZE在HMI设计中的低功耗手势控制方案
  • 技术揭秘:Wand-Enhancer如何通过本地化改造重塑WeMod用户体验
  • 高德地图商户通对本地商家的获客价值,不止是“占个位置”这么简单
  • 传统SEO和品牌GEO内容策略到底有什么区别?营销人一张表看懂
  • 给比赛开个“外挂”:如何设计让人尖叫的知识竞赛锦囊?
  • 缓存方案选型_为什么企业级首选阿里云Tair而非自建Redis
  • 原神帧率解锁指南:突破60帧限制的完美解决方案
  • AD74413R与PIC18F85J50的高精度工业信号处理方案
  • 华弘数科获数千万融资,全液冷边端侧算力产品效能提升39%开辟新赛道
  • 源码部署太繁琐?Hermes 轻量化整合包快速体验 AI 对话工具
  • 【小白上手】有没有降AI率的靠谱软件推荐?2026年亲测15款热门工具,助你论文顺利通关!
  • 【2026】最新版本Python 3.15 完整编译安装与环境配置手册
  • GBase 8s 连接查询使用说明
  • 告别纸质签署,拥抱数字时代!亲笔签助力湘雅博爱康复医院实现全院电子签名
  • 从原理到实战:利用iwebsec靶场深入理解SSRF漏洞与Gopher协议攻击
  • Web安全实战:12个逻辑漏洞案例与系统化挖掘方法论
  • 3步解锁QQ音乐格式限制:QMCFLAC2MP3终极解决方案
  • 实用指南:轻松解密网易云音乐NCM文件,实现音乐自由播放
  • 视程空间AIR系列边缘算力平台适配机器人/四足机器狗场景的客观分析
  • Jupyter 管理树莓派 5 上的 Python
  • Java程序员收藏必备:从入门到精通AI大模型的转型实战指南
  • YOLOv10模型改进-Backbone改进-第59篇:YOLOv10改进策略【Backbone】| ShuffleNetV2 Backbone替换
  • 腾讯会议领衔3款录制工具对比评测
  • 掌握演讲时间的终极免费工具:PPTTimer 完全指南
  • paperxie 论文写作功能全解|一站式学术文稿创作页面实操细节拆解
  • 收藏!小白程序员轻松入门大模型:Qwen3.5 安装与使用全攻略
  • 9个生产级AI Agent项目:从闭环决策到跨系统协同
  • 从CRUD到AI:小白程序员5个月逆袭之路,收藏这份转型指南!
  • 阶跃开源JetSpec,大模型推测解码提速近10倍
  • 内网隐蔽扫描实战:Nmap参数组合与流量伪装技术详解