基于单片机的温度控制系统设计
摘 要
当今社会不断发展,工业以及生活领域对温度控制系统的要求日益增加。以往的设计系统已经不能满足如今的社会需求,因此设计更加符合要求的温度控制系统是大势所趋。采用单片机进行温度控制系统的设计可以使温度的调节更简单、灵活,节约操作成本。本文将利用STC89C51单片机设计一个温控系统,利用温度传感器进行数据采集,LCD显示屏显示当下的温度。当设备的温度超过或低于预设的温度区间时,报警器发出警告且继电器开始控制相应的器件进行温度控制操作,从而将温度控制在预设的区间内。最终通过仿真对设计进行调试以及改善。本系统可作为热水器温度控制系统、温室温度控制系统等。系统灵活性大,便于调节。
关键词:单片机;继电器;温度传感器;数码管
设计框图及介绍
通过对单片机温度控制系统的相关资料的查找、阅读吸取其中适合于本次系统设计的部分并且利用仿真软件Proteus以及keil对系统的设计进行具体操作,我对本次的温度控制系统设计基本分为了六部分。
这六部分分别是:DS18B20温度传感器传输设备温度的部分、STC89C51单片机主控部分(由于仿真软件Proteus8.6中没有所需的STC系列芯片,而且经过查阅资料可以了解到AT89C51单片机与STC89C51单片机的引脚功能基本相同,所设计的温度控制系统采用的STC89C51单片机引脚在AT89C51中都有,所以仿真图的连接以及后续的代码设计采用AT89C51单片机进行代替)、继电器控制温度升降温部分(在Proteus软件中没有相应的加热片进行升温处理,所以在仿真中采用的是光电耦合器以及LED灯来代替基本的工作原理,如果LED灯发出光亮则证明本系统设计正常运行或采用步进电机模拟小风扇,OVEN加热炉模拟加热片来进行设计)、控制按钮部分、LCD1602液晶屏显示部分
(在连接的仿真图中LCD1602显示器用LCD1表示)以及蜂鸣器报警部分,设计的各个部分都是直接连接在STC89C51单片机上从而进行具体的设计功能操作。
图1系统设计框图
单片机控制部分
单片机控制部分主要是将从DS18B20温度传感器中接收到的数字温度信号进行一定的操作处理并将数据传输到LCD1602液晶显示器电路、报警器电路以及继电器控制电路中去(在仿真原理图中继电器控制小风扇和加热片部分的一个实现采用的是光电耦合器控制LED灯的亮暗来代替,主要是因为在Proteus中没有合适的加热片以及小风扇进行操作,所以用LED的亮暗来代表这个部分是否在正常的运行)。
单片机最小系统部分含有两个模块:晶振电路以及复位电路。他们的作用如下:
晶振电路的功能意义:它在单片机里面的主要作用是调节工作的节奏。相应的速率较大,那么它的系统节奏就快;速率较小则相反。单片机晶振的作用就是为系统发送基础时钟信号,在一个设计系统中一般只有一个晶振可以被共用,主要是为了方便各部分保持同步。
复位电路的功能意义:系统里面的复位电路其功能就是可以自动使复位电路返回最初的工作形态,主要作用是保护微机控制系统过程中电路能够稳定可靠且安全的工作。电路的基本原理类似于计算机的工作过程,仅在开始的方法以及理念上有所不相同,复位电路可以让电路回到最初的形态就好像是计算器上的归零键,让电路回到最初的样子,重新开始工作。
由STC89C51单片机以及晶振电路、复位电路组成了单片机的最小系统,连接图如下所示:
图1单片机控制部分仿真连接图
软件设计
软件的设计流程图
软件仿真程序流程以及传感器工作的原理见下方两个图:
图1软件设计整体流程图
图2传感器部分设计流程图
结 论
通过测试,本次设计的系统可以基于51系列单片机、DS18B20温度传感器、LCD1602液晶显示器、报警器、继电器等核心器件实现相应的温度控制。满足设计预期设定的要求。以STC89C51(AT89C51)单片机作为主控部分为系统的设计提供了很大的便利条件,同时也具有操作快捷、简单易懂、价格低廉等优点。可以提高工业生产的工作效率,节约人工成本。本次的系统设计主要设计的是基于单片机的温度控制系统,在设计中软件、硬件方面都遇到了不同的困难,同样针对于困难进行了研究解决,具体如:
(1)系统的仿真原理图和PCB的封装图在进行连接、封装的时候,对各类器件的选择以及与单片机不同引脚的连接把控不清,首先是因为对Proteus仿真软件以及AD封装软件中各器件的名称不了解,还需要对每一个器件名称进行搜索,其次是因为对各器件的引脚具体功能不甚清楚,需要一个个进行查阅观测此类型的其他的系统设计中是怎样具体连接来实现相应的功能。
(2)连接完成仿真电路图之后,系统的蜂鸣器不发声,开始以为是程序代码出现了问题,所以调整了报警器部分的代码,之后确定报警器部分代码无误但是蜂鸣器依旧不发声;经过网上查寻资料得到,在实物单片机工作以及Proteus仿真软件中,51系列单片机的工作电压在5V。所以蜂鸣器的电压最好小于5V当把其电压调整之后,蜂鸣器得到了改善。
(3)软件仿真代码部分设计时,刚开始部分引脚连接混乱,整体对系统程序编程内容不熟悉,对实现相应的器件功能不了解用什么代码,不知道怎样进行调节设计。后续同样一点点在书籍以及网上进行各项资料的查阅,最终完成了设计的程序代码编辑并得到了相应的结果。
(4)通过本次设计可以总结出:选择器件的时候要对数值有所把控。比如:DS18B20温度传感器适应的电压范围在:3.0V~5.5V之间;STC89C51单片机一般供电电压在5V左右,因此,在进行实物焊接之前要先选择合适范围的器件,防止损坏单片机内部或其他器件的功能。
我本次的毕设包含了仿真电路图连接和代码程序编辑以及电路板焊接这三个部分,经过这段时间的动手操作,我在温度系统类型的设计、完善方面有了很多新的认识。经过了仿真电路图连接部分的操作,我对于仿真软件的认识也更加深刻,掌握了用Proteus进行电路图连接的方法。通过对实物成品的焊接,对开发板以及芯片有了更深的了解,懂得他们的引脚接口以及如何对实物进行飞线操作。在软件设计方面,对C语言有了更多的学习,对一些语句进行了了解,在温度控制方面需要的一些基本程序更加的熟悉并且经过这段时间的实际操作使得我对于自身的不足情况有了一定的认识。通过对设计进行具体的操作,也同时将我自身的实际操作能力进行了提升,可以通过自己的研究设计简单的系统。
通过对本次基于单片机的温度控制系统设计,可以从中得出单片机的重要性,在如今社会,单片机控制可以运用在很多方面。相比其他的主控器件,单片机自身性价比较高且能够实现基础的控制操作。可以实现社会中对温度控制系统的一个长远要求。但本次设计也有未攻破的领域,比如:在本设计之上是否还可以添加更多的功能,适应更多的领域;是否可以采用适应温度更高的器件进行设计以此来满足高温设备的一个温度控制。针对于以上未探索的领域,在之后的系统设计中,可以针对于此方面进行更深一步的了解、研究。
相关文章:
基于单片机的温度控制系统设计
摘 要 当今社会不断发展,工业以及生活领域对温度控制系统的要求日益增加。以往的设计系统已经不能满足如今的社会需求,因此设计更加符合要求的温度控制系统是大势所趋。采用单片机进行温度控制系统的设计可以使温度的调节更简单、灵活,节约操…...
pjfun.top相册中上传图片获取github apiToken
1、登录github [登录](https://github.com/login) 没有账号就注册2、 点击头像,进入设置settings 3、进入Developer settings 4、点击Fine-grained tokens 再点击 Generate new token 5、填写相关基础信息 Token name(随意起名) Expiratio…...
S4 UPA of AA :新资产会计概览
通用并行会计(Universal Parallel Accounting)可以支持每个独立的分类账与其他模块集成,UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估,并…...
单片机学习笔记 11. 外部中断
更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…...
C++中智能指针的使用及其原理 -- RAII,内存泄漏,shared_ptr,unique_ptr,weak_ptr
目录 1.智能指针的使用场景分析 2.RAII和智能指针的设计思路 3.C标准库智能指针的使用 4.智能指针的原理以及模拟实现 5.shared_ptr循环引用问题和weak_ptr 5.1shared_ptr循环引用问题 5.2weak_ptr的原理和部分接口 5.3weak_ptr的简单模拟实现 6. shared_ptr的线程安…...
DICOM医学影像应用篇——伪彩色映射 在DICOM医学影像中的应用详解
目录 引言 伪彩色映射的概念 基本原理 查找表(Look-Up Table, LUT) 步骤 示例映射方案 实现伪彩色映射的C代码 代码详解 伪彩色处理效果展示 总结 扩展知识 LUT 的基本概念 LUT 在伪彩色映射中的应用 示例 引言 在医学影像处理中,…...
注意http-proxy-middleware要解决跨域问题,想修改origin请求头不要设置changeOrigin=true
在使用http-proxy-middleware的时候,有一个配置是“changeOrigin”,通过名字来看这个字段是用来控制是否修改origin的,但是实际使用下来,你会发现,当设置为true的时候,header中的origin的值并不会修改&…...
SpringBoot宠物领养平台:设计与实现
摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领养…...
qt 的udp发送和接收
udp要在.pro中加入 QT network udp接收 //QUdpSocket *udp1; udp1 new QUdpSocket(this); udp1->bind(2024,QUdpSocket::ShareAddress); connect(udp1,SIGNAL(readyRead()),this,SLOT(ReadyOut())); void MainWindow::ReadyOut() { while(udp1->hasPend…...
极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【五】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
中科亿海微SoM模组——波控处理软硬一体解决方案
本文介绍的波控处理软硬一体解决方案主要是面向相控阵天线控制领域,波控处理通过控制不同天线组件的幅相来调整天线波束的方向和增益,实现高精度角度控制和高增益。本方案由波控处理板、波控处理控制软件算法和上位机软件共同构成。波控处理SoM模组原型样…...
vue页面跟数据不同步this.$set
“Vue页面跟数据同步this.$set”可能是指在某些情况下,需要确保数据的响应式特性,即当数据发生变化时,页面上的显示也能实时更新。 如果你遇到数据已经设置,但页面没有更新,可能是因为你没有正确使用 Vue 的响应式系统…...
黑马2024AI+JavaWeb开发入门Day02-JS-VUE飞书作业
视频地址:哔哩哔哩 讲义作业飞书地址:飞书 一、作业1 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge">&l…...
(0基础保姆教程)-JavaEE开课啦!--12课程(Spring MVC注解 + Vue2.0 + Mybatis)-实验10
一、常见的SpringMVC注解有哪些? 1.Controller:用于声明一个类为 Spring MVC 控制器。 2.RequestMapping:用于将 HTTP 请求映射到特定的处理方法上。可以指定请求类型(GET、POST等)和URL路径。 3.GetMappingÿ…...
未成年人模式护航,保障安全健康上网
为保护未成年人的上网环境,预防未成年人沉迷网络,帮助未成年人培养积极健康的用网习惯,HarmonyOS SDK 提供未成年人模式功能,在华为设备上加强对面向未成年人的产品和服务的管理。 场景介绍(应用跟随系统未成年人模式…...
【实体配置】.NET开源 ORM 框架 SqlSugar 系列
.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列 …...
MySQL中Update在什么情况下行锁会升级成表锁
MySQL中Update在什么情况下行锁会升级成表锁 在MySQL中,特别是使用InnoDB存储引擎时,行锁(row-level locking)通常用于提高并发性能。然而,在某些特定情况下,行锁可能会升级为表锁(table-level…...
应急响应靶机——easy溯源
载入虚拟机,开启虚拟机: (账户密码:zgsfsys/zgsfsys) 解题程序.exe是额外下载解压得到的: 1. 攻击者内网跳板机IP地址 2. 攻击者服务器地址 3. 存在漏洞的服务(提示:7个字符) 4. 攻击者留下的flag(格式…...
使用Compose Multiplatform开发跨平台的Android调试工具
背景 最近对CMP跨平台很感兴趣,为了练手,在移动端做了一个Android和IOS共享UI和逻辑代码的天气软件,简单适配了一下双端的深浅主题切换,网络状态监测,刷新调用振动器接口。 做了两年多车机Android开发,偶…...
LabVIEW实现TCP通信
目录 1、TCP通信原理 2、硬件环境部署 3、云端环境部署 4、TCP通信函数 5、程序架构 6、前面板设计 7、程序框图设计 8、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合…...
Realtek网卡MAC刷新工具PG8168.exe Version:2.34.0.4使用说明
本刷新工具虽然文件名叫PG8168.EXE,但不是只有RTL8168可用,是这一个系列的产品都可以使用。实验证明RTL8111也可以使用。 用法: PG8168 [/h][/?][/b][/c HexOffsetHexValue][/d NICNumber][/l][/r][/w][/v] [/# NICNumber] [/nodeidHexNOD…...
【maven】配置下载私有仓库的快照版本
1、setting.xml配置 <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/SETTINGS/1.0.0https://maven.apache.org/xsd/settings-1.0.0.…...
基于pytorch使用仿真数据集来训练一个深度学习模型进行相位解包裹
使用 PyTorch 来训练一个深度学习模型进行相位解包裹是一种常见的方法。下面是一个详细的示例,展示如何生成仿真数据集并在 PyTorch 中训练模型。 1. 生成仿真数据集 首先,我们生成一些仿真数据集,包含多个包裹相位图和对应的解包裹相位图。…...
【排序算法】之快速排序篇
思想: 分而治之,通过选定某一个元素作为基准值,将序列分为两部分,左边的序列小于基准值,右边的序列大于基准值, 然后再分别将左序列和右序列进行递归排序,直至每部分有序。 性质:这…...
WebSocket
握手 1 客户端发起握手请求:客户端向服务器发送一个特殊的HTTP请求,其中包含一个Upgrade字段,表明客户端希望将该连接从HTTP协议升级为WebSocket协议。请求的关键部分包括: GET请求:客户端使用GET方法请求与WebSocket…...
适配器模式
适配器模式(Adapter Pattern)详解 定义 适配器模式是一种结构型设计模式,通过将一个类的接口转换为客户期望的另一个接口,使得原本接口不兼容的类可以一起工作。适配器模式又称“包装器(Wrapper)”。 适配…...
Jmeter最新详细安装及修改中文教程(附安装包)
目录 初识:Jmeter 一、下载:Jmeter 二、安装前必要的配置 1.桌面点击菜单栏搜索【cmd】,然后打开命令提示符 2.输入java -version命令 三、安装:Jmeter 1.首先在D盘创建【Jmeter】文件夹,把下载的【Jmeter】压缩…...
Java 语言的起源发展与基本概念(JDK,JRE,JVM)
Java语言的起源 源起 Java语言最初是由Sun Microsystems公司(该公司于2009年被Oracle公司收购)开发的一种编程语言。其创造者是詹姆斯高斯林(James Gosling),他是一位加拿大计算机科学家。其前身名为Oak(橡…...
利用dockerCompose一键部署前后端分离项目
1.Docker Compose介绍 2.将自己准备好的docker-compose.yml文件上传到宿主机 3.查看docker-compose.yml文件 宿主机的文件内容可参考: 项目部署-通过docker手动部署前后端分离项目(全网超级详细 的教程)-CSDN博客 修改宿主机的nginx.conf …...
redis大key和热key
redis中大key、热key 什么是大key大key可能产生的原因大key可能会造成什么影响如何检测大key如何优化删除大key时可能的问题删除大key的策略 热key热key可能导致的问题解决热key的方法 什么是大key 大key通常是指占用内存空间过大或包含大量元素的键值对。 数据量大ÿ…...
在 Linux 系统中根据pid查找软件位置
在 Linux 系统中,如果您知道一个进程的 PID(进程标识符),并且想要找到该进程对应的可执行文件的位置,可以使用以下几种方法: 方法一:使用 ps 命令 ps 命令可以显示进程的详细信息,包括可执行文件的路径。假设您的 PID 是 1234,可以使用以下命令: ps -p 1234 -o co…...
Python开发环境搭建+conda管理环境
下载Miniconda 推荐从清华镜像下载安装包 Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 打开网页后,下拉到最后找到Miniconda3-latest前缀的文件,或者网页中直接搜索Miniconda3-latest,都可以找…...
Java 8新特性详解与实战
目录 引言 1. Lambda 表达式(Lambda Expressions) 2. 函数式接口(Functional Interfaces) 3. 流 API(Stream API) 4. 默认方法(Default Methods) 5. Optional 类 6. 新的时间日…...
K8s内存溢出问题剖析:排查与解决方案
文章目录 一、背景二、排查方案:1. 可能是数据量超出了限制的大小,检查数据目录大小2. 查看是否是内存溢出2.1 排查数据量(查看数据目录大小是否超过limit限制)2.2 查看pod详情发现问题 三、解决过程 一、背景 做redis压测过程中…...
Network Link Conditioner Mac 上模拟网络环境工具的安装和使用
前言 Xcode 的模拟器本身是不支持模拟网络环境的,在开发界面的时候,设计会出无网、弱网这种情况的设计图,为了方便在开发过程中实现这些情况的代码逻辑,Network Link Conditioner 就是模拟网络环境的好帮手。 安装 Network Lin…...
SeggisV1.0 遥感影像分割软件【源代码】讲解
在此基础上进行二次开发,开发自己的软件,例如:【1】无人机及个人私有影像识别【2】离线使用【3】变化监测模型集成【4】个人私有分割模型集成等等,不管是您用来个人学习 还是公司研发需求,都相当合适,包您满…...
电子应用设计方案-27:智能淋浴系统方案设计
智能淋浴系统方案设计 一、系统概述 本智能淋浴系统旨在为用户提供舒适、便捷、个性化的淋浴体验,通过集成多种智能技术,实现水温、水流、淋浴模式的精准控制以及与其他智能家居设备的联动。 二、系统组成 1. 喷头及淋浴杆 - 采用可调节角度和高度的设计…...
旋转图像(java)
题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 代码思路: class Solution {public void ro…...
单片机知识总结(完整)
1、单片机概述 1.1. 单片机的定义与分类 定义: 单片机(Microcontroller Unit,简称MCU)是一种将微处理器、存储器(包括程序存储器和数据存储器)、输入/输出接口和其他必要的功能模块集成在单个芯片上的微型…...
蓝桥杯备赛笔记(一)
这里的笔记是关于蓝桥杯关键知识点的记录,有别于基础语法,很多内容只要求会用就行,无需深入掌握。 文章目录 前言一、编程基础1.1 C基础格式和版本选择1.2 输入输出cin和cout: 1.3 string以下是字符串的一些简介:字符串…...
Spring Boot【四】
单例bean中使用多例bean 1.lookup-method方式实现 当serviceB中调用getServiceA的时候,系统自动将这个方法拦截,然后去spring容器中查找对应的serviceA对象然后返回 2.replaced-method:方法替换 我们可以对serviceB这个bean中的getServiceA…...
linux基础1
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
DAMODEL丹摩|部署FLUX.1+ComfyUI实战教程
本文仅做测评体验,非广告。 文章目录 1. FLUX.1简介2. 实战2. 1 创建资源2. 1 ComfyUI的部署操作2. 3 部署FLUX.1 3. 测试5. 释放资源4. 结语 1. FLUX.1简介 FLUX.1是由黑森林实验室(Black Forest Labs)开发的开源AI图像生成模型。它拥有12…...
Python语法基础(三)
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 我们这篇文章来说一下函数的返回值和匿名函数 函数的返回值 我们先来看下面的这一段函数的定义代码 # 1、返回值的意义 def func1():print(111111111------start)num166print…...
计算分数的浮点数值
计算分数的浮点数值 C语言代码C 代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点…...
Staircase mesh” 和 Conformal mesh区别
一、Staircase Mesh(阶梯状网格) 1.1 含义 阶梯状网格就像是用一个个小方块或者矩形拼接起来的网格。在对几何形状进行划分网格时,它会以一种比较简单直接的方式,使得网格边界呈现出像楼梯台阶一样的形状。比如在模拟一个圆形物体…...
探索未来工业的核心:数字孪生技术深度解析
经过数十年的发展,建模和模拟已成为工程和科学的基石。人们针对改进建模的计算方法进行了大量的研究和开发工作。这些计算机模型对系统设计非常有用,可以削减实验和测试的高昂成本。然而在实操中,还需要跟踪系统随时间的演变情况,…...
dns 服务器简单介绍
dns 服务器分类: 根域名服务器顶级域名服务器权威域名服务器本地域名服务器 dns 的查询过程 国内优秀公共域名 腾讯:DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司 119.29.29.29 和 182.254.118.118 阿里…...
SQL基础入门——C++与SQL连接实践
在开发中,C与SQL数据库的连接和交互是非常常见的需求。通过将C与SQL数据库连接起来,我们可以轻松地执行数据存取、查询、更新等操作。C与数据库的集成通常依赖于数据库的连接器或驱动程序,本章节将详细讲解如何在C中使用MySQL Connector与SQL…...
对max_seq_length参数的理解,基于open-instruct框架:中英文解释
使用open-instruct (https://github.com/allenai/open-instruct )框架,对其中的max_seq_length参数的理解记录下来。 bash脚本内容如下: # 设置模型和训练参数 MODEL_NAMEgoogle/gemma-2-2b MACHINE_RANK0 MAIN_PROCESS_IP127.0.0.1 MAIN_PROCESS_PORT2…...