27-基于51单片机的空调温度控制系统

最新更新时间:2021-10-22来源: eefocus关键字:51单片机  控制系统 手机看文章 扫描二维码
随时随地手机看文章

具体实现功能

系统由STC89C51单片机+LCD1602液晶显示屏+L298N控制模块+直流电机+DS18B20温度传感器构成。


具体功能:


(1)实现L298N对电机的控制,利用LCD1602直接、清晰明了的显示温度;


(2) 基于测得的温度实现对电机转速的控制(利用电机模拟空调变频系统);


(3)在自动模式下,温度越高,占空越高,转数越快。手动模式下,通过按键可以实现电机转速的控制。

设计背景

近些年来,随着空调行业的迅速发展,极大的占领了市场。与风扇相比,空调有强大的制冷功能,可以快速有效地降低环境温度。然而,空调也存在不少问题,例如,夏天吹时间长了容易得空调病,室内和室外温度不平衡容易热感冒;同时,由于是强制制冷,老人和孩子身体容易受不了,使用空调室内长时间空气不流通容易滋生病菌,空调耗能较高等。因此,合理的控制和使用空调十分关键,随着科技的发展和人们生活水平的提高,家用电器产品趋向于自动化、智能化、低功耗、环保化和人性化,由微机控制的智能温控空调得以出现。


为解决上述问题,利用单片机具有小型化、多功能,可以实现多种设计要求,被应用在多个领域的特点,本文设计了基于单片机的空调温度控制系统。本系统采用高精度集成温度传感器,用单片机控制,能显示实时温度,并根据温度调整空调的变频系统,实现空调控制,提升了空调的智能化和人性化,节省了电量。


硬件设计

如图是本系统的硬件设计方案,具体地,硬件电路由以下模块构成:


(1)单片机最小系统。用于驱动和控制其他模块,以实现整体功能,其以AT89C51单片机为核心芯片,并辅以复位电路和晶振电路;


(2)按键模块。由三个按键构成,实现自动/手动状态的切换,以及电机速度的控制(加速与减速);


(3)显示模块。通过LCD1602液晶显示屏显示DS18B20测得的实时温度值;


(4)电机及其驱动模块。通过电机的转数模拟空调变频器的工作。

软件设计

根据本文设计需求,在硬件电路设计的基础上,需要通过软件编程实现的具体功能:


(1)驱动各个模块工作,实现LCD1602的清晰显示;


(2)按键设置功能。交互式单刀双掷开关用于实现自动/手动状态的切换,另外两个按键开关用于实现电机速度的控制(加速与减速);


(3)温度检测功能的实现。实现对环境温度的实时检测及显示;


(4)电机的驱动及控制。实现基于温度大小的电机转速控制。


具体设计流程如图所示。

原理图

本系统原理图设计采用Altium Designer19,具体如图。

程序

本设计利用KEIL5软件实现程序设计,具体如图。

仿真实现

本设计利用protues8.7软件实现仿真设计,具体如图。

关键字:51单片机  控制系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic548319.html

上一篇:28-基于51单片机的智能窗帘设计
下一篇:26-基于单片机的简单温控风扇

推荐阅读

51单片机流水灯控制(5种方法)
实现流程: 1. 新建一个工程(新项目) 2. 查看原理图确定需求(流水灯)对应LED引脚在单片机上的哪个引脚 3. 编写程序(通过查看原理图可以看到我们需要控制整个P2口以控制8个LED灯) 4. 编译程序,下载程序至开发板 5. 查看效果(调试)进制转换表(因为单片机首先处理的是十六进制的数据,所以我们需要将二进制控制需求转换成十六进制去写代码):控制代码:#include <REGX52.H> //头文件#include "Delay.h"#include "intrins.h"/* -----------------------------------------
发表于 2022-09-29
<font color='red'>51单片机</font>流水灯控制(5种方法)
51单片机 定时器时钟
1.main.c注:Sec,Min,Hour可不进行赋值#include <REGX52.H>#include "Delay.h"#include "LCD1602.h"#include "Timer0.h"unsigned char Sec=55,Min=59,Hour=23;void main(){ LCD_Init(); Timer0Init(); LCD_ShowString(1,1,"Clock:"); LCD_ShowString(2,1," : :"); while(1) { LCD_ShowNum(2
发表于 2022-09-28
51单片机 按键控制LED流水灯模式
1.将之前文件中Delay.c.h复制过来,进行添加2.模块化编程3.main.c#include <REGX52.H>#include "Timer0.h"#include "Key.h"#include <INTRINS.H>unsigned char KeyNum,LEDMode;void main(){ P2=0xFE; Timer0Init(); while(1) { KeyNum=Key(); if(KeyNum==1) { LEDMode++; if(LEDMode>=2)LEDMode=0; } } }void Timer0_Routi
发表于 2022-09-28
<font color='red'>51单片机</font> 按键控制LED流水灯模式
51单片机 LCD1602调试工具
本章博客讲述的是关于LCD1602的调试,使用它是为了更加直观的表示出代码所要实现的功能1.首先,需要添加两份驱动文件到新建的工程中来,再插入到新建的工程中来将其复制到新建文件的同一目录下,在进行添加2.写出以下代码进行编译查看效果#include <REGX52.H>#include "LCD1602.h"void main(){ LCD_Init(); LCD_ShowChar(1,1,'A'); LCD_ShowString(1,3,"Hello"); LCD_ShowNum(1,9,123,3); //高位补零,如果最后一位是2则显示23 LCD_
发表于 2022-09-28
<font color='red'>51单片机</font> LCD1602调试工具
51单片机 模块化编程
了解模块化编程1.首先了解一下传统方式编程和模块化编程传统方式编程:所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路 模块化编程:把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其它.c文件想使用其中的代码时,只需要#include "XXX.h"文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等2. 模块化编程注意事项.c文件:函数、变量的定义.h文件:可被外部调用的函数、变量的声明任何自定义的变量、函数在调用前必须有定义或声明(同一个.c)使用到的自定义函数的.c文件必须添加到工程参
发表于 2022-09-28
<font color='red'>51单片机</font> 模块化编程
51单片机 动态数码管显示
本章博客写的内容主要围绕动态数码管显示,动态数码管显示与静态数码管显示比较稍有变化,主要在添加延时函数这点上1.首先将上一章节使用子函数方法的代码复制过来将Nixie( , )移到下方while循环中(因为要实现效果为动态的)void main(){ while(1) { Nixie(1,1); Nixie(2,2); Nixie(3,3); }}编译下载后效果为:对于这种效果要进行消影的处理因为单片机编译处理顺序是按照:位选 段选 (清零),位选 段选 ,位选 段选由上一段的段选到下一部分的位选需要进行清零处理接下来主要进行:增添延时函数和清零处理2.在STC-ISP中生成相应的延时函数,函数时间为1ms,并对其进行灵活修改,
发表于 2022-09-28
<font color='red'>51单片机</font> 动态数码管显示

推荐帖子

【转帖】阻抗匹配基础知识详解
基本概念信号传输过程中负载阻抗和信源内阻抗之间的特定配合关系。一件器材的输出阻抗和所连接的负载阻抗之间所应满足的某种关系,以免接上负载后对器材本身的工作状态产生明显的影响。对电子设备互连来说,例如信号源连放大器,前级连后级,只要后一级的输入阻抗大于前一级的输出阻抗5-10倍以上,就可认为阻抗匹配良好;对于放大器连接音箱来说,电子管机应选用与其输出端标称阻抗相等或接近的音箱,而晶体管放大器则无此限制,可以接任何阻抗的音箱。匹配条件①负载阻抗等于信源内阻抗,即它们的模与辐角分别相等,这时在负载阻抗上
皇华Ameya360 综合技术交流
MSP430注意的问题
本帖最后由灞波儿奔于2017-6-2421:51编辑 MSP430注意的问题,希望能够对大家有所帮助! MSP430注意的问题
灞波儿奔 微控制器 MCU
arm开发板
现有两块vhdl开发板,要还一块arm开发板,有意者请联系zhongranxu@163.com或QQ366508051arm开发板
zhongranxu ARM技术
求助:ad637可以转换直流为直流吗?
ad637可以转换直流为直流吗?做一个交直流毫伏表,10mv到10v可以提供一些方案吗求助:ad637可以转换直流为直流吗?
sucaptain ADI参考电路
请问:ZigBee网络中众多节点采集到的数据,怎么通过登录网页的方式实时查询?和哪...
请问:ZigBee网络中众多节点采集到的数据,怎么通过登录网页的方式实时查询?和哪些方面的知识相关,想做这个,已经可以组成网络在电脑上显示了,现在但是不知道要学哪方面的东西,请高手指点下请问:ZigBee网络中众多节点采集到的数据,怎么通过登录网页的方式实时查询?和哪...
ywzq RF/无线
100本书上都没有的知识:如何确定宽范围BUCK、BOOST的电感
近期论坛里有一些关于BOOST的贴子DC-DC电源中,电感如何选择计算的问题http://bbs.eeworld.com.cn/thread-1195945-1-1.htmlbuck_boost为什么要从最低输入电压设计http://bbs.eeworld.com.cn/thread-1198862-1-1.html书上只有变比公式,但是应用中输入电压是一定范围变化的,有的应用中输出还是可调的,如何确定电感呢?引申到BUCK,又如何办?选电感的条件有很多,最小损耗法,最小纹波法,最
PowerAnts 电源技术
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved