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

基于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单片机芯片。

img

2. 讲解视频:

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

3. 仿真

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

img

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

img

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

img

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字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

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

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

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

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

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

1、程序代码注释

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、讲解视频

Altium Designer 安装破解

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

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

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

img

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/702977.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RV32A\CSR\Counters 指令集

RV32A\CSR\Counters指令集 一、RV32A指令集1、Load-Reserved/Store-Conditional InstructionsLR.WSC.W2、Atomic Memory OperationsAMOSWAP.WAMOADD.WAMOAND.WAMOXOR.WAMOOR.W二、CSR(Control and Status Register) 指令集CSRRWCSRRSCSRRCCSRRWICSRRSICSRRCI三、"Zicntr…

深圳建网站

深圳是中国最具活力和创新力的城市之一&#xff0c;也是全球网站建设行业蓬勃发展的重要市场之一。随着信息科技的不断发展和互联网的普及&#xff0c;越来越多的企业和个人意识到了建立网站的重要性&#xff0c;通过网站可以为企业带来更多的业务机会和营销渠道。 建立一个优质…

【OpenGL学习】OpenGL不同版本渲染管线汇总

文章目录 一、《OpenGL编程指南》第6版/第7版的渲染管线二、《OpenGL编程指南》第8版/第9版的渲染管线 一、《OpenGL编程指南》第6版/第7版的渲染管线 图1. OpenGL 2.1、OpenGL 3.0、OpenGL 3.1 等支持的渲染管线 二、《OpenGL编程指南》第8版/第9版的渲染管线 图2. OpenGL …

上新即爆品?2024小红书爆款黄金公式

5月&#xff0c;小红书正式上线了平台级新品营销IP——“宝藏新品”&#xff0c;旨在消费愈发审慎的当下&#xff0c;帮助品牌破除不确定性&#xff0c;达成新品的高质量生长。 本期千瓜将进一步解读「宝藏新品」策略&#xff0c;帮助品牌推新呈现更多样化的成长可能。 强种草…

单张图像扩散模型(Single Image DIffusion Model)

论文&#xff1a;SinDDM: A Single Image Denoising Diffusion Model&#xff0c; ICML 2023 去噪扩散模型&#xff08;DDM&#xff09;在图像生成、编辑和恢复方面带来了惊人的性能飞跃。然而&#xff0c;现有DDM使用非常大的数据集进行训练。在这里&#xff0c;介绍一个用于…

Qwen2 阿里最强开源大模型(Qwen2-7B)本地部署、API调用和WebUI对话机器人

阿里巴巴通义千问团队发布了Qwen2系列开源模型&#xff0c;该系列模型包括5个尺寸的预训练和指令微调模型&#xff1a;Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B以及Qwen2-72B。对比当前最优的开源模型&#xff0c;Qwen2-72B在包括自然语言理解、知识、代码、数学及多…

每日一练——有效的括号

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 错误记录 #include<stddef.h> #include<stdlib.h> #include<assert.h> #include<stdbool.h>typedef char STDataType;typedef struct Stack {STDataType* a;int capacity;int top; } Stack;vo…

【网络安全的神秘世界】磁盘空间告急?如何解决“no space left on device”的困扰

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 磁盘空间告急&#xff1f;如何解决“no space left on device”的困扰 &#x1f64b;‍♂️问题描述 错误信息 "write /var/lib/docker/tmp/GetIma…

理解数学概念——线性(线性性)

1. 线性相关词汇的词源 1.1 单词“line”的词源 这个单词是古英语“line”和古法语“ligne”二者的融合。在古英语中&#xff0c;“line”的词义为“缆绳&#xff0c;绳索&#xff1b;一系列&#xff0c;行&#xff0c;字母行&#xff1b;规则&#xff0c;方向(cable, rope; s…

【2024版】最新AI 大模型的掌握与运用技巧(非常详细)零基础入门到精通,收藏这一篇就够了

前言 曾经有一批强大的 AI模型摆在我面前&#xff0c;我却未曾珍惜&#xff0c;知道发现别人能够轻松驾驭它发挥巨大价值&#xff0c;才后悔莫及&#xff0c;如果上天给我重来一次的机会&#xff0c;我会努力学习经验和技巧&#xff0c;成为第一批熟练驾驭AI 模型的人! 随着 Ch…

可转债全部历史因子数据,提供api支持

今天在写可转债系统&#xff0c;顺便下载了一下服务器的可转债数据&#xff0c;给大家研究使用 from trader_tool.stock_data import stock_datafrom trader_tool.lude_data_api import lude_data_apiimport osclass convertible_bond_back_test_system: 可转债回测系统…

1秒揭秘:APP对接广告联盟,收益翻倍!

在当前数字时代&#xff0c;移动应用&#xff08;APP&#xff09;成为连接用户与服务的重要桥梁。 许多开发者通过开发APP并接入广告联盟&#xff0c;成功实现了收益的快速增长。 然而&#xff0c;对于初学者而言&#xff0c;从零开始开发一款能够有效对接广告联盟的APP&…

单源最短路径算法 -- 迪杰斯科拉(Dijkstra)算法

1. 简介 迪杰斯科拉&#xff08;Dijkstra&#xff09;算法是一种用于在加权图中找到最短路径的经典算法。它是由荷兰计算机科学家Edsger Wybe Dijkstra在1956年首次提出的&#xff0c;并以他的名字命名。这个算法特别适合于解决单源最短路径问题&#xff0c;即计算图中一个顶点…

在自己的电脑上搭建我的世界Java版服务器

很多朋友&#xff0c;喜欢玩Minecraft&#xff0c;也希望搭建一个服务器&#xff0c;用于和小伙伴联机&#xff1b; 并且&#xff0c;拥有服务器后&#xff0c;即使所有玩家都下线&#xff0c;“世界”依旧在运行&#xff0c;玩家可以随时参与其中&#xff0c;说不定一上线&am…

栈和队列(适配器模式模拟)

文章目录 声明stack的介绍queue的介绍deque双端队列简单介绍&#xff08;了解&#xff09;概述优缺点 适配器模式通过容器适配器模拟stack通过容器适配器模拟queue 总结 声明 模拟实现源代码已上传至gitee仓库&#xff1a;stack_queue_learn stack的介绍 stack文档介绍 sta…

go语言 | 快速生成数据库表的 model 和 queryset

就是生成 model 目录的 xxx.go 和 xxx_gen.go 文件 使用的工具&#xff1a; 快速生成 model&#xff1a;gentool&#xff1a;https://github.com/go-gorm/gen/tree/master/tools/gentool 根据 model 生成 queryset&#xff1a;go-queryset&#xff1a;https://github.com/jirfa…

开源大模型之辩:真假开源

目录 前言开源的定义什么是开源大模型&#xff1f;大模型时代首次出现闭源和开源“齐头并进”开源和闭源不是绝对对立的 大模型到底开源什么&#xff1f;传统开源软件与开源大模型的差别开源软件让开源大模型“受益匪浅” 不同大模型企业&#xff0c;开源、闭源策略不同开源…

SQL 窗口函数

1.窗口函数之排序函数 RANK, DENSE_RANK, ROW_NUMBER RANK函数 计算排序时,如果存在相同位次的记录,则会跳过之后的位次 有 3 条记录排在第 1 位时: 1 位、1 位、1 位、4 位…DENSE_RANK函数 同样是计算排序,即使存在相同位次的记录,也不会跳过之后的位次 有 3 条记录排在…

SPI 配置寄存器程序

/************************************************** * **************************************************/ module zhm_mspi #( parameter C_SPI_CPHA 1 ,// clock phase &#xff0c;0&#xff0c;在 SCLK 的第一个跳变沿进行采样&#xff1b;1&…

Linux和Windows下查看CPU运行频率的方法

文章目录 0.前言1.Linux系统中查看CPU运行频率的方法&#xff08;经测试在UnRaid中适用的&#xff09;1.1.最简单的lscpu命令1.2.查看CPU实时运行频率的watch -n 1 cpufreq-info命令 2.WIndows系统中查看CPU运行频率的方法2.1.系统属性大法2.2.任务管理器大法2.3.CPU-Z等硬件检…