【毕业设计】21-基于单片机的智能恒温箱_温度报警装置设计(原理图+仿真+源代码+答辩论文+答辩PPT)

news/2024/7/8 8:57:28

【毕业设计】21-基于单片机的智能恒温箱/温度报警装置设计(原理图+仿真+源代码+答辩论文+答辩PPT)

文章目录

  • 【毕业设计】21-基于单片机的智能恒温箱/温度报警装置设计(原理图+仿真+源代码+答辩论文+答辩PPT)
    • 任务书
    • 设计说明书
      • 摘要
      • 设计框架架构
      • 设计说明书及设计文件
      • 源码展示

任务书

恒温控制在工业生产过程中举足轻重,温度的控制直接影响着工业生产的质量。本文设计了基于单片机的智能恒温箱,要求选择合适的主控芯片、温度检测器、显示器以及报警器。硬件设计主要包括温度采集电路、键盘电路、报警电路、显示电路以及电源电路。
主要内容:本文采用单片机为主控制器,通过温度传感器测得箱内温度,并将温度信号传递给主控制器,主控制器通过相应程序设计控制恒温箱温度,若温度不合格则发出报警信号。
资料链接
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,20962字
英文文献及翻译
答辩PPT

设计说明书

摘要

随着科学的进步,社会的不断发展,智能控制系统已经成为了一种常用的技术,应用在各行各业中,由于现在对温度控制要求极高,传统的恒温箱无法实现较高精度的温度控制,本文针对此现象设计出一款智能恒温箱来满足当前系统设计要求,可以实现温度控制及报警的功能,
本文的设计流程为对系统的研究背景分析了解系统的工作情况、工作原理,确定本文的研发方向。对系统需要实现的功能确定;对系统的功能分析;对系统元器件选型确定系统总方案;对系统的软件部分设计。首先编写程序的总流程,然后再对系统的报告字模块编写程序,最后将程序调用在主函数中完成程序的设计,最后通过仿真软件将系统仿真出来,测试系统功能。本文设计的基于单片机的的智能恒温箱使用STC89C52单片机为主控芯片;DS18B20温度监测,使LCD1602液显示系统的信息;通过按键实现人机交互功能实现对系统的控制;蜂鸣器作为声学报警器;LED作为光学报警器。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,LCD1602液晶显示器。
通过对系统的硬件电路设计,程序编写,最后使用仿真软件Proteus来测试系统功能,完成本次设计。本系统实现了智能温度箱的控制设计可以对其进行推广,并且功能迭代,实现对智能化大力应用推广。

设计框架架构

前 言… 1

第一章 绪 论… 2

第一节 研究背景… 2

第二节 研究意义… 2

第三节 本文的主要研究内容… 3

第四节 本章小结… 3

第二章 基于单片机的智能恒温箱系统方案确定… 5

第一节 系统功能分析… 5

第二节 系统设计方案选择… 5

一、方案一… 5

二、方案二… 6

第三节 系统主要元器件介绍… 6

一、单片机介绍… 6

二、LCD显示器介绍… 6

三、温度传感器介绍… 7

第三节 系统结构总框图… 7

第四节 本章小结… 8

第三章 基于单片机的智能恒温箱系统硬件电路设计… 9

第一节 单片机最小系统电路设计… 9

第二节 电源电路设计… 10

第三节 按键电路设计… 10

第四节 LED电路设计… 11

第五节 LCD液晶显示电路设计… 11

第六节 温度传感器电路设计… 13

第七节 蜂鸣器报警电路设计… 13

第八节 系统总电路图设计… 14

第九节 本章小结… 15

第四章 基于单片机的智能恒温箱系统的软件设计… 16

第一节 Keil软件介绍… 16

第二节 软件总设计流程… 17

第三节 按键模块程序设计… 18

第四节 LED模块程序设计… 19

第五节 LCD液晶显示模块程序设计… 20

第六节 温度传感器程序设计… 23

第七节 蜂鸣器报警模块程序设计… 25

第八节 本章小结… 26

第五章 基于单片机的智能恒温箱系统的仿真… 27

第一节 仿真软件介绍… 27

第二节 系统调试… 28

第三节 系统测试… 29

第四节 本章小结… 33

总 结… 34

致 谢… 35

参考文献… 36

附 录… 38

一、英文原文… 38

二、英文翻译… 41

三、工程图纸… 43

四、源代码… 44

设计说明书及设计文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

答辩论文低重复率文档,20962字

在这里插入图片描述

源码展示

void main (void)
{
	u8 key;
	wendu=check_wendu();		  //初始化时调用温度读取函数 防止开机85°C
	Init1602();			  //调用初始化显
  LCD_Write_String(0,0," Intellect Temp");  //开机界面
	LCD_Write_String(1,0,"SET:00  NOW:00.0"); 
	delay_ms(1000);
	wendu=check_wendu();		  //初始化时调用温度读取函数 防止开机85°C
	while (1)        					//主循环
	{
		key=Key_Scan();					//按键扫描
		wendu=check_wendu();	  //读取温度值
		
		if(key==KEY_SET)
		{
			Mode++;
		}		
		switch(Mode)						//判断模式的值
		{
			case 0:								//监控模式
			{
				Display_1602(yushe_wendu,wendu);  //显示预设温度,预设烟雾,温度值,烟雾值
				
				if(wendu>=(yushe_wendu*10))	  //温度大于等于预设温度值时(为什么是大于预设值*10:因为我们要显示的温度是有小数点后一位,是一个3位数,25.9°C时实际读的数是259,所以判断预设值时将预设值*10)
				{
					Buzzer=0;			  			//打开蜂鸣器报警
					Led_Yellow=0;		  			//打开温度报警灯
					Led_Gre   =1;           //关闭未报警指示灯
				}
				else					  					//温度值小于预设值时
				{
					Led_Yellow=1;		  			//关闭报警灯
					Led_Gre   =0;           //打开未报警指示灯
				}
				if((wendu<(yushe_wendu*10)))	  //当烟雾小于预设值并且温度也小于预设值时 (&&:逻辑与,左右两边的表达式都成立(都为真,也就是1)时,该if语句才成立)
				{
					Buzzer=1;			  			//停止报警
				}
				break;
			}
			case 1://预设温度模式
			{
				SelectPosition(1,3) ;					//指定位置
	   		write_com(0x0d);							//阴影闪烁
				if(key==KEY_ADD)							//加键按下
				{
					yushe_wendu++;					    //预设温度值(阀值)加1
					if(yushe_wendu>=99)			 	//当阀值加到大于等于99时
					yushe_wendu=99;					 		//阀值固定为99
					LCD_Write_Char(1,4,yushe_wendu,2) ;//显示预设温度
				}
				if(key==KEY_MINUS)				 		//减键按下
				{
					if(yushe_wendu<=1)					//当温度上限值减小到1时
					yushe_wendu=1;          		//固定为1
					yushe_wendu--;						//预设温度值减一,最小为0
					LCD_Write_Char(1,4,yushe_wendu,2) ;//显示预设温度
				}
				break;			  								//执行后跳出switch
			}			
			default	:	
			{
				write_com(0x38);//屏幕初始化
				write_com(0x0c);//打开显示 无光标 无光标闪烁
				Mode=0;			//恢复正常模式
				break;
			}
		}		
	}
}


http://lihuaxi.xjx100.cn/news/204860.html

相关文章

国产操作系统之银河麒麟服务器版V10安装

一、银河麒麟操作系统简介 银河麒麟是目前国内国产化操作系统主流产品之一。银河麒麟高级服务器操作系统V10是针对企业级关键业务&#xff0c;适应虚拟化、云计算、大数据、工业互联网时代对主机系统可靠性、安全性、性能、扩展性和实时性等需求&#xff0c;依据CMMI5级标准研制…

Kotlin基础入门 - 从Java快速过度Kotlin

虽然之前用了Kotlin一段时间&#xff0c;但是回头看竟然没有做这方面的笔记&#xff0c;索性系统记录一下 自语&#xff1a;Kotlin语法糖真是秀儿&#xff0c;话说&#xff0c;并不是Java不如Kotlin&#xff0c;而是Google在推属于android自己的语言 如何声明变量&#xff1f;J…

后端存储实战课总结(上)

创建和更新订单 表设计 最少应该有以下几张表&#xff1a; 订单主表&#xff1a;保存订单基本信息订单商品表&#xff1a;保存订单中的商品信息订单支付表&#xff1a;保存订单支付和退款信息订单优惠表&#xff1a;保存订单的优惠信息 订单主表和字表是一对多关系&#xf…

Node.js 入门教程 51 Node.js Buffer

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Node.js 入门教程51 Node.js Buffer51.1 什么是 buffer&#xff1f;51.2 为什么需要 buffer&#xff1f;51.3 如何创建buffer51.4 使用 buff…

RabbitMQ系列【16】AmqpTemplate接口详解

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录前言AmqpTemplateAPIsendconvertAndSendreceivereceiveAndConvertreceiveAndReplysendAndReceiveconvertSendAndReceive前言 RabbitTemplate 是spring-amqp提供的一个 RabbitMQ 消息操作模板类…

时间序列:时间序列模型---自回归过程(AutoRegressive Process)

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 这次我们构造一个由无限的白噪声实现&#xff08;white noise realization) 组成的时间序列&#xff0c;即。这个由无限数目的项组成的值却是一个有限的值&#xff0c;比如时刻的值为&#xff0c; 而…

Codeforces Round #290 (Div. 2) C. Fox And Names

翻译&#xff1a; Fox Ciel将发表一篇关于FOCS (Fox操作的计算机系统&#xff0c;发音:“Fox”)的论文。她听到一个谣言:报纸上的作者名单总是按照词典顺序排列的。 在查看了一些例子后&#xff0c;她发现有时这不是真的。在一些论文中&#xff0c;作者的名字没有按照正常意义…

Spring(Spring的理解+DI+Spring的创建)

目录 1. Spring 是什么 2. DI 3. 面试题: IoC 和 DI 有什么区别? 4. Spring 的创建 5. 将 Bean (对象) 存储到 Spring (容器) 中 6. 将 Bean (对象) 从 Spring (容器) 中取出来 7. 面试题: ApplicationContext 和 BeanFactory的区别 8. getBean 更多用法 1. Spring 是…