基于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,超时10ms
		HAL_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_str1
			sprintf(data_str2,"L:%d C   H:%d C \n",temp_L,temp_H);//写字符到data_str2
			if(temp>(float)temp_H){
				sprintf(data_str1,"temp=%0.1fC  Hot \n",temp);				//高温警告
				user_pwm=90;												//开风扇
				LED1=LED_ON;											    //开LED1 关LED2
				LED2=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 LED2
				RELAY=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 关LED1
				RELAY=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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BT-BOX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值