当前位置: 首页 > news >正文

基于单片机的空调控制器的设计

摘 要 以单片机为核心的空调控制器因其体积小 成本低 功能强 简便易行而得到广泛应用 本设计通过 AT89S52 控制DS18B20摄取实时温度信息 键盘设定温度值 定时时间及状态 LCD1602 显示相应信息的方法 实现了基于单片机的空调控制器系统的设计。 最终实验结果表明 本设计能很好地实现温度显示 控制器定时及根据温度启动相应的功能电路等多种功能, 具有一定的创新性及实用性
关键词 单片机 空调控制器 AT89S52 DS18B20 LCD1602

引 言

温度是生活及生产中最基本的物理量 在很多生产过程中, 温度的测量和控制都直接和安全生产 提高生产效率相关 因此 温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。
非接触式测温方法是通过对辐射能量的检测来实现温度测量的方法。 其优点是不破坏被测温场 可以测量热容量小的物体, 适于测量运动物体的温度 还可以测量区域的温度分布, 响应速度较快 因此 在实际的温度测量中, 要根据具体的测量对象选择合适的测量方法 在满足测量精度要求的前提下尽量减少投入。

系统的整体设计概述

系统实现了如下功能
实时温度设定超出安全范围时警报 设定温度和实时温度不等时启动相应加热电路或制冷电路;
显示实时温度和设置温度 以及定时开启控制器
单片机的空调控制器的系统框图如图 所示 系统由4 个模块组成 单片机接口电路 键盘扫描电路 温度及定时显示电路、 实时温度测量电路 各功能电路如蜂鸣电路、 加热电路 制冷电路

2硬件电路设计

2.1 单片机接口电路

单片机接口电如 图 所 示 P1 口 用 于 4×4的 键 盘扫 描,低 四 位 用 于 行,高 四 位 用 于 列。P0 口 接 至LCD1602显示器的数据输入输出端。设 定 温 度,实 时 温度,定时时间及定时状态的相关信息均通过 P0口送到显示器进行显示。P2.1口 接 DS18B20的数据输入输出脚,接收实时温度信息。P2.2口控制蜂鸣器报警电路,当实时温度值超过安全范围(如35℃)时,启动蜂鸣器进 行报警。当设定温度值大于实时温度值时,利用 P2.3口启动加热电路。当设定温度值小于实时温度值时,通过P2.4口启 动 制 冷 电 路。LCD1602的 数 据/命 令 选 择 端,读/写选择端及 使 能 信 号 分 别 由 P2.5、P2.6、P2.7 口 控 制。LED用于观测扫描键盘的时候按键是否灵敏及常亮时表示正在定时。因本设计充分使用了单片机的各端口,无需再扩展I/O。

2.2 实时温度测量电路

DS18B20 在动态转换周期中需要获得足够的电流供应。 DS18B20 供电的 方 法 是 从 VCC 引脚接入一个外部电源 见图 这样做的好处是 线上不需要加强上拉, 而且总线控制器不用在温度转换期间总保持高电平。 这样在转换期间可以允许在单线总线上进行其他数据往来。 使用外部电源的时候 可以先发一个 SkipROM命令, 再接一个 ConvertT 命令 进行温度转换 注意 :当加上外部 电 源 时, GND 引 脚 不 能 悬 空 DQ 通 过 单 片机P2.1 口读或者写信息

控制器软件设计

首先对系统进行初始化 初始化后 蜂鸣器 制 冷 电路、 加热电路不启动 温度设定值默认为 25℃ 定时器 T0用 于 定 时 中 断, 工 作 于 方 式 定 时 时 间 为 50 ms 。LCD1602显示温度设定值 实时温度 定时时间及定时状态信息。 然后比较设定温度和实时温度 若设定温度大于实时温度, 则启动加热电路 设定温度小于实时温度 则启动制冷电路。 如果 定 时 状 态 为 状 态 则 定 时 开 始 并开 CPU 中断和 T0 中断 。主程序流程图如图4 所示

数据分析

本设计的制冷电路用 CPU 风扇模拟 事实上风扇并不能改变温度, 而只能将温度降至常温 所以只对加热状况下的数据进行分析。 比较显示的实时温度和温度计显示的温度值, 得出测量误差和计算出相对误差 相关数据如表1 所示
计算而得 误差来源 DS18B20 和温度计与热源之间的距离, 温度计本身的精度及测量方法的不精确
本系统采用的是定值开关温控法 这种控制方式是当系统温度上升至设定点时关断电源, 当系统温度下降至设定点时开通电源

结束语

该设计的空调控制器以 AT89S52 单 片 机 为 核 心 最大限度的利用单片机的资源, 用键盘扫描方式设置温度 ,定时时间和定时状态 利用 LCD1602 液晶显示设定温度值, 实时温度值 定时时间和定时状态 DS18B20 数字温度传感器摄取实时温度, 其余各功能电路如蜂鸣电路, 加 热 电 路 制冷电路均用单片机的某一 口 进 行控制
该设计硬件电路简单 工作稳定可靠 性价比高 兼容性好, 便于扩展功能 其测温精度和转换速度能满足大多数测温系统的工作要求。

相关文章:

基于单片机的空调控制器的设计

摘 要 : 以单片机为核心的空调控制器因其体积小 、 成本低 、 功能强 、 简便易行而得到广泛应用 。 本设计通过 AT89S52 控制DS18&a…...

企业如何利用短视频平台做口碑塑造和品牌营销?

随着短视频平台的不断发展,新型的双微一抖小红书等新媒体平台,正在成为网民聚集的核心平台,小马识途营销顾问认为越来越多的企业应该利用这些平台进行品牌营销和宣传。其中,抖音和小红书作为短视频平台的代表,吸引了大…...

SQL INSERT批量插入方式

1、常规INSERT写法 INSERT INTO ... VALUES (...);INSERT INTO 表名( 字段1, 字段2) VALUES (字段1的值, 字段2的值);2、SELECT语句返回值INSERT INSERT INTO ...VALUES (..., (select ...));INSERT INTO 表名1(字段1, 字段2) VALUES (字段1的值, (select 查询字段 from 表名2 …...

2.5 C#视觉程序开发实例1----IO_Manager实现切换程序

2.5 C#视觉程序开发实例1----IO_Manager实现切换程序 1 IO_Manager中输入实现 1.0 IO_Manager中输入部分引脚定义 // 设定index 目的是为了今后可以配置这些参数、 // 输入引脚定义 private int index_trig0 0; // trig index private int index_cst 7; //cst index priva…...

【入门篇】STM32寻址范围(更新中)

写在前面 STM32的寻址范围涉及存储器映射和32位地址线的使用。并且STM32的内存地址访问是按字节编址的,即每个存储单元是1字节(8位)。 一、寻址大小与范围 地址线根数 地址编号(二进制) 地址编号数(即内存大小) <...

DDD架构

1.DDD架构的概念&#xff1a; 领域驱动设计&#xff08;Domain-Driven Design, DDD&#xff09;是一种软件设计方法&#xff0c;旨在将软件系统的设计和开发焦点集中在领域模型上&#xff0c;以解决复杂业务问题 2.DDD架构解决了什么问题: 在以前的mvc架构种&#xff0c;三层结…...

Open3D KDtree的建立与使用

目录 一、概述 1.1kd树原理 1.2kd树搜索原理 1.3kd树构建示例 二、常见的领域搜索方式 2.1K近邻搜索&#xff08;K-Nearest Neighbors, KNN Search&#xff09; 2.2半径搜索&#xff08;Radius Search&#xff09; 2.3混合搜索&#xff08;Hybrid Search&#xff09; …...

C语言编程3:运算符,运算符的基本用法

C语言3&#x1f525;&#xff1a;运算符&#xff0c;运算符的基本用法 一、运算符&#x1f33f; &#x1f387;1.1 定义 运算符是指进行运算的动作&#xff0c;比如加法运算符"“&#xff0c;减法运算符”-" 算子是指参与运算的值&#xff0c;这个值可能是常数&a…...

如何通过SPI机制去实现读取配置文件并动态加载对应实现类

最近写完鱼皮的RPC项目后&#xff0c;打算整理出来一些编程技巧的模版。 有两种实现&#xff1a;1.ServiceLoader 2.SpiLoader 一、直接使用java.util下的ServiceLoader 首先在resource目录下创建 META-INF/services 目录&#xff0c;并且创一个名称为对应要实现的接口的包…...

双链表(数组模拟)

双链表&#xff08;数组模拟&#xff09; 什么是双链表数组模拟双链表题目 什么是双链表 双链表不同于单链表的是 每一个节点不但存储了下一个节点的位置&#xff0c;也存储了上一个节点的位置。 数组模拟双链表 所以如果用数组的话&#xff0c;就需要创建三个数组。 题目 …...

ChatGPT 5.0:一年半后的展望与看法

在人工智能领域&#xff0c;每一次技术的飞跃都预示着未来生活与工作方式的深刻变革。随着OpenAI在人工智能领域的不断探索与突破&#xff0c;ChatGPT系列模型已成为全球关注的焦点。当谈及ChatGPT 5.0在未来一年半后可能发布的前景时&#xff0c;我们不禁充满期待&#xff0c;…...

城市地下综合管廊物联网远程监控

城市地下综合管廊物联网远程监控 城市地下综合管廊&#xff0c;作为现代都市基础设施的重要组成部分&#xff0c;其物联网远程监控系统的构建是实现智慧城市建设的关键环节。这一系统集成了先进的信息技术、传感器技术、通信技术和数据处理技术&#xff0c;旨在对埋设于地下的…...

VS 附加进程调试

背景&#xff1a; 此方式适合VS、代码和待调试的exe在同一台机器上。 一、还原代码到和正在跑的exe同版本 此操作可以保证能够调试生产环境的exe 二、设置符号路径 1.调试->选项 三、附加进程 方式1&#xff1a; 打开VS&#xff0c;调试->附加到进程&#xff0c;出…...

核函数的深入理解

核函数 &#xff08;Kernel Function&#xff09;是一种在高维特征空间中隐式计算内积的方法&#xff0c;它允许在原始低维空间中通过一个简单的函数来实现高维空间中的内积计算&#xff0c;而无需显式地计算高维特征向量。 核函数 的基本思想是通过一个映射函数 ϕ \phi ϕ …...

使用Ckman部署ClickHouse集群介绍

使用Ckman部署ClickHouse集群介绍 1. Ckman简介 ClickHouse Manager是一个为ClickHouse数据库量身定制的管理工具&#xff0c;它是由擎创科技数据库团队主导研发的一款用来管理和监控ClickHouse集群的可视化运维工具。目前该工具已在github上开源&#xff0c;开源地址为&…...

「前端工具」postman接口测试工具详解

Postman 是一款流行的 API 开发工具,用于构建和测试 RESTful API。以下是 Postman 的一些关键特性和使用方法的详解: 1. 界面和基本操作 工作区:Postman 的主界面,用于显示集合、环境和全局变量。请求构建器:用于输入请求的 URL、HTTP 方法、请求头、请求体等。响应区:显…...

生成requirements.txt

pip install pipreqs pipreqs ./ --encodingutf-8 --force python导出requirements.txt的几种方法总结...

ubuntu ceph部署

ubuntu ceph部署 参考文档&#xff1a;http://docs.ceph.org.cn/start/ 节点配置 1个mon节点&#xff0c;3个osd节点 安装前准备 安装ceph-deploy 添加 release key wget -q -O- https://download.ceph.com/keys/release.asc | sudo apt-key add -添加Ceph软件包源&…...

2024.7.8

2024.7.8 【追逐影子的人&#xff0c;自己就是影子 —— 荷马】 Monday 六月初三 讲的根本听不懂好吧&#xff01; 目前只写了三道题&#xff08;但是黑色 确实是没见过这么抽象的数据结构 Gregor and the Two Painters Number of Components Equal LCM Subsets 这个lcm确实…...

Spring 外部jar包Bean自动装配

Spring 外部jar包Bean自动装配 背景介绍 公共代码模块被作为jar包引入业务项目&#xff0c;前者定义的bean即使添加了Component注解由于不会被扫描到也就无法被Spring管理。此处通过Spring SPI机制来完成 使用 spring.factories 在外部 jar 包中创建 spring.factories 文件&a…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...