基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0099

1. 主要功能:

基于51单片机的简易温控水杯恒温杯仿真设计

1、采用DS18B20检测温度,温度检测范围-55~125摄氏度。

2、LCD1602显示检测温度和设置温度值,温度低于设定值显示low,高于显示high。

3、检测温度小于设定温度-1°时,开启加热器。

检测温度大于设定温度+1时,开启制冷器控制温度。

4、按键加减设置温度设定值,可以通过按键控制电动开关盖。

51单片机、DS18B20温度传感器、LCD1602显示

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)-LMLPHP

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真

开始仿真后LCD1602液晶显示当前测量的温度,设置温度,如果检测到温度大于设置值+1,制冷器开始工作降温。

基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)-LMLPHP

如果检测到温度小于设置值-1,加热器开始工作加热提高温度。

基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)-LMLPHP

可以通过按键控制瓶盖开关。

基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)-LMLPHP

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

#include "reg51.h"
#include"Ds18b20.h"
#include "lcd1602.h"
#define uchar unsigned char	//重定义
#define uint unsigned int
sbit k1=P3^0;//按钮
sbit k2=P3^1;
sbit k3=P3^2;
sbit door=P2^2;	//开关盖
sbit heat=P2^0;	 //加热
sbit cold=P2^1;	 //制冷

sbit beep=P2^5;//蜂鸣器

uchar time=0,num1=0;//定时
int wendu=0;//温度
uchar Ds_0_flag=0;//0度以上标志位
float tp; 
完整代码见文章下载链接
uint down=40;//阀值
uchar disp1[]="wendu:000 C     ";
uchar disp2[]="set_wendu:000 C ";
//uchar disp2[]="L:000 C  H:000 C";

uchar flag=0,beep_flag=0;

void delay(uint i)//延时
{
	while(i--)
	{
		delay_uint(50000);
	}
}
void main()
{
	disp1[9]=0xdf;
	disp2[13]=0xdf;
//	disp2[14]=0xdf;
	init_1602();//初始化液晶
	TMOD|=0X11;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
	TH1=(65536-50000)/256;	//给定时器赋初值,定时50ms
	TL1=(65536-50000)%256;	
	ET1=1;//打开定时器1中断允许
	EA=1;//打开总中断
	TR1=1;//打开定时器1

	delay(4);
	beep_flag = 0;
	while(1)
	{
		//按键检测
		if(!k1)
		{
			if(down<125) //下限阈值检测范围小
				down++;	//阈值+1
			while(!k1);
		}
		if(!k2)
		{
			if(down>0)
				down--;	 	//阈值-1
			while(!k2);
		}
		if(!k3)
		{
			if(door){
				door=0;
			}else{
				door=1;
			}
			while(!k3);
		}

	}
}

void Timer1() interrupt 3//定时器中断
{
	TH1=(65536-50000)/256;	//给定时器赋初值,定时50ms
	TL1=(65536-50000)%256;	
	if(time<10)
		time++;
	else
	{
		time=0;
		wendu=Ds18b20ReadTemp();//测量温度
		if(wendu<0){
			Ds_0_flag=0;
			wendu=wendu-1;
			wendu=~wendu;
			tp=wendu;
			wendu=tp*0.0625+0.5;	
			disp1[6]='-';//计算温度
	  		disp1[7]=wendu%100/10+0x30;
			disp1[8]=wendu%10+0x30;
		}else{
			Ds_0_flag=1;
			tp=wendu;
			wendu=tp*0.0625+0.5;	
			//温度在寄存器中12位,分辨率:0.0625
			//加0.5是四舍五入
			disp1[6]=wendu/100+0x30;//计算温度
			disp1[7]=wendu%100/10+0x30;
			disp1[8]=wendu%10+0x30;
		}


		disp2[10]=down/100+0x30;//计算阈值
		disp2[11]=down%100/10+0x30;
		disp2[12]=down%10+0x30;

		write_string(1,0,disp1);//显示
		write_string(2,0,disp2);
	}
	if(wendu<down-1||Ds_0_flag==0){
		write_string(1,12,"Low ");
		heat = 0;//低温加热
		cold = 1;
	}else if(wendu>down+1){
		write_string(1,12,"High");
		cold = 0;//高温制冷
		heat = 1;
	}else{
		write_string(1,12,"    ");
		heat=cold=1;//取消加热制冷
	}
		
}


5. 设计报告

7187字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)-LMLPHP

随着科技日新月异的进步和生活质量的不断提升,人们对生活用品的功能性、便利性和智能化程度提出了更高的要求。在这样的时代背景下,智能生活用品正逐渐成为现代生活的标配,它们不仅改善了人们的生活质量,还极大地提高了生活的舒适度与效率。智能恒温水杯作为一种代表性的智能化生活用品,其核心功能在于能够自动感应并调节杯内液体的温度,确保饮品始终保持在最适宜饮用的范围内,无论是热饮还是冷饮,都能做到随心所欲,这无疑极大地迎合了现代快节奏生活中人们对健康饮水习惯的追求,也因其高度的实用性和便捷性而广受市场和消费者的青睐。

针对这一趋势,本课题聚焦于设计一款基于51系列单片机为核心的简易温控水杯恒温杯仿真系统。此设计项目的核心目标有两个方面:首先,从实用角度出发,致力于研发一种能够精确控制水温的技术方案,使水杯能根据预先设定的温度自动启动加热或降温机制,从而实现在任何环境条件下都能让杯中的水温保持在理想的水平,充分满足人们日常生活中对不同饮品适宜温度的需求;其次,从教育与科研层面来看,本课题设计有助于提升学生对嵌入式系统设计理论的理解,通过从理论到实践的设计过程,让学生亲手构建一套包含温度感知、数据处理、控制执行等环节的完整闭环系统,有效锻炼学生的动手能力和工程实践能力。

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

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

1、程序代码注释

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、讲解视频

Altium Designer 安装破解

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

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

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

基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)-LMLPHP

百度网盘下载链接:-失效请留言
https://pan.baidu.com/s/1gET6ed4LRllvEgB6qmK4kg?pwd=drml

06-11 08:45