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

基于STM32的DS18B20简易温控系统LCD1602显示仿真设计

基于STM32的简易温控系统LCD1602显示仿真设计(Proteus仿真+程序设计+设计报告+讲解视频)

仿真图Proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0108

1.主要功能

基于STM32单片机的温控系统LCD1602显示Proteus仿真设计

1、STM32单片机实时检测DS18B20温度测量及显示,默认低温阈值25℃,高温阈值30℃,超出高低对应指示灯亮。

2、温度测量范围-55到128℃,测量精度±0.1℃;

3、虚拟串口(仿真可用于模拟WiFi/蓝牙)实时传输检测温度;

4、可以对高低温报警值进行设定,通过按键设置;

5、使用LCD1602显示检测温度和温度上下限,高于上限显示Hot,

6、超过高温阈值,电机启动用于模拟降温,低于低阈值,电热丝启动模拟升温。

STM32单片机 DS18B20 LCD1602 按键 直流电机 电热丝

资料下载链接:

通过网盘分享的文件:KEY_C0108

链接: https://pan.baidu.com/s/1WsfXyLhfEFAFWPhVKtamwQ

提取码: 8cui

2.仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

STM32单片机实时检测DS18B20温度测量及显示温度测量范围-55℃到128℃,测量精度±0.1℃,虚拟串口实时显示温度,LCD1602第一行显示温度,第二行显示上下限阈值。当温度超过上限时,温度高指示灯点亮,LCD1602第一行显示Hot,降温模块启动,直流电机工作模拟风扇降温。

img

下图温度介于上下限之间,电热丝和降温模块不工作,LCD正常显示。

img

下图温度低于下限值,LCD1602第一行显示Low,温度低指示灯亮,电热丝工作模拟升温。

img

3.程序设计

程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL版本编写的,有stm32cubemx配置文件。有注释可以结合讲解视频理解。

img

img

HAL_Delay(200);temp0=DS18B20_Get_Temp();//获取温度值if(temp0<128.0&&temp0!=-0.0&&temp0!=85.0){//去掉经常出现的错误数据temp=temp0;}sprintf(str,"%0.1f",temp);
//				sprintf(str,"%d",temp);HAL_UART_Transmit(&huart1, (uint8_t *)str, 6, 10);								//串口1发送字符串,数组长度为6,超时10msHAL_UART_Transmit(&huart1, (uint8_t *)&"C\r\n", 3, 10);						//串口1发送字符串,数组长度为3,超时10ms	memset(str,0,strlen(str));	//		sprintf(data_str1,"temp=%0.1f",temp);if(setnum==0){//正常模式sprintf(data_str1,"temp=%0.1fC    \n",temp);					//写字符到data_str1sprintf(data_str2,"L:%d C   H:%d C \n",temp_L,temp_H);//写字符到data_str2if(temp>(float)temp_H){sprintf(data_str1,"temp=%0.1fC  Hot \n",temp);				//高温警告user_pwm=90;												//开风扇LED1=LED_ON;											    //开LED1 关LED2LED2=LED_OFF;RELAY=0;													//关继电器(关加热}else if((temp>(float)temp_L)&&(temp<(float)temp_H)){sprintf(data_str1,"temp=%0.1fC      \n",temp);				//正常温度user_pwm=0;												//关风扇LED1=LED2=LED_OFF;								//关LED1 LED2RELAY=0;													//关继电器(关加热}else if(temp<(float)temp_L){user_pwm=0;													//关风扇sprintf(data_str1,"temp=%0.1fC  Low \n",temp);				//低温警告LED1=LED_OFF;												LED2=LED_ON;												//开LED2 关LED1RELAY=1;													//开继电器(开加热功能}		}else if(setnum==1){	//设置高温阈值									//设置高温阈值LED1=LED2=LED_OFF;sprintf(data_str1,"temp=%0.1fC    \n",temp);sprintf(data_str2,"L:%d C   H:%d^C\n",temp_L,temp_H);		}else if(setnum==2){								        //设置低温阈值sprintf(data_str1,"temp=%0.1fC    \n",temp);sprintf(data_str2,"L:%d^C  H:%d C \n",temp_L,temp_H);		}LCD_ShowString(0,0,data_str1);	//LCD1602显示第一行LCD_ShowString(1,0,data_str2);	//LCD1602显示第二行memset(str,0,strlen(data_str1)); }

程序流程图

img

4.设计报告

11438字设计报告,内容包括设计目标、硬件设计、软件设计、结论等。

img

随着工业自动化和智能家居领域的快速发展,温度控制作为其中一项关键技术,广泛应用于各类工业设备、家用电器以及环境监测系统中。精准的温度控制不仅能够提高生产效率,还能保障设备的安全运行和用户的舒适体验。本设计旨在通过STM32单片机结合DS18B20温度传感器、LCD1602液晶显示屏以及外围执行机构(如直流电机、电热丝),构建一个具有高精度、实时显示和灵活调节功能的温控系统,并通过Proteus软件进行仿真验证,为后续实际硬件实现提供理论依据和设计参考。

5.下载链接

img

0、常见使用问题及解决方法–必读!!!!

1、程序代码

2、Proteus仿真

3、功能要求

4、开题报告

5、设计报告

6、框图

7、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接:

通过网盘分享的文件:KEY_C0108

链接: https://pan.baidu.com/s/1WsfXyLhfEFAFWPhVKtamwQ

提取码: 8cui

相关文章:

  • 论文阅读:2024 arxiv FlipAttack: Jailbreak LLMs via Flipping
  • AI 的未来是开源?DeepSeek 正在书写新篇章!
  • AI+零售:智能推荐、无人店与供应链管理的未来
  • 超越单体:进入微服务世界与Spring Cloud概述
  • 如何知道Ubuntu的端口是否被占用,被那个进程占用?如何终止进程
  • 大数据学习(115)-hive与impala
  • Redis性能优化终极指南:从原理到实战的深度调优策略
  • 【LeetCode 热题 100】矩阵置零 / 螺旋矩阵 / 旋转图像 / 搜索二维矩阵 II
  • 代码颜色模式python
  • 【资料分享】全志T536(异构多核ARMCortex-A55+玄铁E907 RISC-V)工业核心板硬件说明书
  • Hadoop 和 Spark 生态系统中的核心组件
  • 最新字节跳动运维云原生面经分享
  • VScode与远端服务器SSH链接
  • 杭州数据库恢复公司之Dell服务器RAID5阵列两块硬盘损坏报警离线
  • UEC++第15天|番茄插件、实现跳跃、实现背景运动
  • MongoDB的图形化工具robo3t,navicat
  • 深入理解 Web Service:原理、组件与核心技术详解
  • Linux-02-VIM和VI编辑器
  • 【运维心得】银行运维交接的坑
  • 今日行情明日机会——20250429
  • 荆州市委书记汪元程:全市各级干部要做到慎微、慎初、慎独、慎友
  • 年轻人的事业!6家上海人工智能企业畅想“模范生”新征程
  • 秦洪看盘|上市公司业绩“排雷”近尾声,A股下行压力趋缓
  • 伊朗港口爆炸已致46人死亡
  • 影子调查丨危房之下,百余住户搬离梦嘉商贸楼
  • 人民日报:应对外贸行业风险挑战,稳企业就是稳就业