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

摘 要 以单片机为核心的空调控制器因其体积小 成本低 功能强 简便易行而得到广泛应用 本设计通过 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 数字温度传感器摄取实时温度, 其余各功能电路如蜂鸣电路, 加 热 电 路 制冷电路均用单片机的某一 口 进 行控制
该设计硬件电路简单 工作稳定可靠 性价比高 兼容性好, 便于扩展功能 其测温精度和转换速度能满足大多数测温系统的工作要求。

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

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

相关文章

基于YOLOv9的脑肿瘤区域检测

数据集 脑肿瘤区域检测,我们直接采用kaggle公开数据集,Br35H 数据中已对医学图像中脑肿瘤位置进行标注 数据集我已经按照YOLO格式配置好,数据内容如下 数据集中共包含700张图像,其中训练集500张,验证集200张 模型训…

全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法-模拟串口传感器和主机

全网最适合入门的面向对象编程教程:11 类和对象的 Python 实现-子类调用父类方法-模拟串口传感器和主机 摘要: 本节课,我们主要讲解了在 Python 类的继承中子类如何进行初始化、调用父类的属性和方法,同时讲解了模拟串口传感器和…

【问题记录】Nodeclub运行make install报错npm ERR! code ELIFECYCLE

问题展示 按照官网给出的教程进行到make install这一步卡住了,显示了如下报错。 解决方法 将node.js版本变更为能够识别代码的版本,我将版本修改成了16.14.0以后成功运行。 nvm install 16.14.0

Java设计模式---(创建型模式)工厂、单例、建造者、原型

目录 前言一、工厂模式(Factory)1.1 工厂方法模式(Factory Method)1.1.1 普通工厂方法模式1.1.2 多个工厂方法模式1.1.3 静态工厂方法模式 1.2 抽象工厂模式(Abstract Factory) 二、单例模式(Si…

从零开始做题:好怪哦

题目 给出一个压缩文件 解题 方法1 01Edit打开,发现是个反着的压缩包(末尾倒着的PK头) import os# 目标目录路径 # target_directory /home/ai001/alpaca-lora# 切换到目标目录 # os.chdir(target_directory)# 打印当前工作目录以确认…

前端开发过程中经常遇到的问题以及对应解决方法 (持续更新)

我的朋友已经工作了 3 年,他过去一直担任前端工程师。 不幸的是,他被老板批评了,因为他在工作中犯了一个错误,这是一个非常简单但容易忽视的问题,我想也是很多朋友容易忽视的一个问题。 今天我把它分享出来&#xff…

前端面试题27(在实际项目中,如何有效地利用Vue3的响应式系统提高性能?)

在实际项目中,有效利用Vue3的响应式系统提高性能主要涉及以下几个关键点: 1. 合理使用reactive和ref reactive:用于将复杂的数据结构(如对象或数组)转换成响应式版本。确保只将需要实时更新的数据结构声明为响应式&am…

elasticSearch的索引库文档的增删改查

我们都知道,elasticsearch在进行搜索引擎的工作时,是会先把数据库中的信息存储一份到elasticsearch中,再去分词查询等之后的工作的。 elasticsearch中的文档数据会被序列化为json格式后存储在elasticsearch中。elasticsearch会对存储的数据进…

4.Python4:requests

1.requests爬虫原理 (1)requests是一个python的第三方库,主要用于发送http请求 2.正则表达式 #正则表达式 import re,requests str1aceace #A(.*?)B,匹配A和B之间的值 print(re.findall(a(.*?)e,str1))import re,requests str2hello com…

Redis-Jedis连接池\RedisTemplate\StringRedisTemplate

Redis-Jedis连接池\RedisTemplate\StringRedisTemplate 1. Jedis连接池1.1 通过工具类1.1.1 连接池:JedisConnectionFactory:1.1.2 test:(代码其实只有连接池那里改变了) 2. SpringDataRedis(lettuce&#…

滑动窗口(同向的双指针)

通过 双指针的 同向移动 算法应用的场景: 满足xxx条件(计算结果,出现次数,同时包含) 最长/最短 子串 /子数组/子序列 例如:长度最小的子数组 滑动窗口 使用思路 (寻找最长) –核心…

刷题(day01)

1、leetcode485.最大连续1的个数 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.…

基于CentOS Stream 9平台搭建FRP内网穿透

内网穿透方法很多,本文以github上很火的frp为例 1.frp官方 文档:https://gofrp.org/zh-cn/docs/overview/ 1.1 下载 https://github.com/fatedier/frp/releases 选中合适的版本 2. 服务端(服务器)搭建frps 需要公网IP服务器 选…

假期笔记1:anaconda的安装与pycharm中的引用

1.下载安装 Download Anaconda Distribution | Anaconda 2.填个邮箱 11111.. 3.下载。有点需要时间 4.安装,双击,根据实际进行,记清安装路径 5。环境设置 conda -V 6.创建环境 conda create --name env_name conda create --na…

Qt文档阅读笔记-Queued Custom Type Example

此篇展示了使用Qt编写多线程程序。 概述 此案例创建一Block类,用于存储数据,并且在元对象系统中注册后,在多线程中进行信号与槽函数的连接中充当参数。 Block类 在元对象系统中,注册类,需要类在public部分提供默认构…

基于SSM的志愿者服务平台

基于SSM的志愿者服务平台系统主要其系统包括不同的端组成,前端主要包括系统用户管理、新闻数据管理、变幻图管理、志愿者管理、培训视频管理、志愿者项目管理、服务时长管理、交流分享管理、志愿者表彰管理。前台主要包括网站首页、培训视频、志愿者项目、交流分享、…

React+TS前台项目实战(二十六)-- 高性能可配置Echarts图表组件封装

文章目录 前言CommonChart组件1. 功能分析2. 代码详细注释3. 使用到的全局hook代码4. 使用方式5. 效果展示 总结 前言 Echarts图表在项目中经常用到,然而,重复编写初始化,更新,以及清除实例等动作对于开发人员来说是一种浪费时间…

C语言相关内容模块

C语言相关内容模块 1、函数指针定义方式 1、函数指针定义方式 函数指针的具体用法

最近点对问题(算法与数据结构设计)

课题内容和要求 最近点对问题,在二维平面上输入n个点列P。其中任一点pi(xi,yi),编写程序求出最近的两个点。使用穷举法实现,算法复杂度O(n2);优化算法,以O(nlog2n)实现这一问题 数…

阶段三:项目开发---民航功能模块实现:任务24:航空实时监控

任务描述 内 容:地图展示、飞机飞行轨迹、扇区控制。航空实时监控,是飞机每秒发送坐标,经过终端转换实时发送给塔台,为了飞机位置的精准度,传输位置的密度很大,在地图位置显示不明显。本次为了案例展示效…