多功能LED显示电风扇控制器的设计

上传人:天*** 文档编号:108309808 上传时间:2022-06-15 格式:DOC 页数:32 大小:835.80KB
返回 下载 相关 举报
多功能LED显示电风扇控制器的设计_第1页
第1页 / 共32页
多功能LED显示电风扇控制器的设计_第2页
第2页 / 共32页
多功能LED显示电风扇控制器的设计_第3页
第3页 / 共32页
点击查看更多>>
资源描述
多功能LED显示电风扇控制器的设计摘要本课题设计了一种使用ATC89C51单片机当做核心控制器的智能系统产品。实现了电风扇的多功能,而且能够将检测到的实时温度使用高清晰的液晶屏来显示。用户还可以通过使用按键对电风扇的启动温度进行设置,超过该值后将使得电风扇转动功能。这款多功能LED显示电风扇控制器内部核心框架是由ATC89C51单片机作为主控部分并且在这款高性能的微处理器芯片外部还配置了LCD1602液晶屏幕、DS18B20温度传感器和有源蜂鸣器等智能模块。通过ATC89C51单片机对这些模块电路的高效控制驱动,实现了对单一功能的电风扇的扩展。整体设计框架方面分为了硬件电路和软件程序两大部分。本课题通过模块设计方法将多功能LED显示电风扇控制器的整体部分化繁为简,逐一进行设计,最终实现所有功能指标。课题最终对这款系统的设计结果进行了长时间的功能检测,检测过程中出现的所有问题都进行了优化和改进,实现了非常高的稳定性。关键词:C51单片机,LCD,DS18B20温度传感器,电动机AbstractThis subject invented an intelligent system product using ATC89C51 single chip computer as the core controller.The multi-functional electric fan is realized, and the current temperature detected can be displayed through a high-definition liquid crystal screen.Users can also set the starting temperature of the electric fan by pressing keys, which will make the fan turn.The core framework of this multi-functional LED display fan controller is ATC89C51 single chip microprocessor as the main control part, and the intelligent modules such as LCD1602 LCD screen, DS18B20 temperature sensor and active buzzer are also configured outside the chip of this high-performance microprocessor. These modules are efficiently controlled and driven by ATC89C51 single chip microprocessor to realize the single function of electricity. Fan expansion, The overall design framework is divided into the two parts: hardware circuit and software program. The whole part of the multi-functional LED display fan controller is simplified by module design method and the design can be carried out one by one, and finally all the functional indicators can be achieved. Finally, I spent a lot of time on testing in the design result of this system , and all the problems in the process of testing have been optimized and improved to achieve very high stability.Key word:C51 single chip microcomputer,DS18B20 Temperature sensorLCD,Motor,目录一、 引言5(一) 本课题的研究背景5二、 多功能LED显示电风扇控制器的设计5三、 多功能LED显示电风扇控制器硬件电路设计6(一) AT89C51最小系统电路设计6(二) 报警模块硬件电路设计8(三) 温度模块的硬件电路设计91. 温度传感器92. DS18B20数字温度传感器的工作流程93. DS18B20数字温度传感器的技术性能94. DS18B20数字温度传感器的运用范围105. DS18B20数字温度传感器的接法106. DS18B20数字温度传感器的特点107. DS18B20温度传感器的主要特性为11(四) 照明模块的硬件电路设计12(五) 显示模块的硬件电路设计12(六) 电动机控制的硬件电路设计141. 直流电动机工作原理142. 直流电动机基本构造14(七) 多功能LED显示电风扇控制器总硬件电路设计15四、 多功能LED显示电风扇控制器软件程序设计16(一) 多功能LED显示电风扇控制器软件总程序设计16(二) 时间模块的软件程序设计17(三) 温度模块的软件程序设计17(四) 电动机控制的软件程序设计18五、 仿真19六、 总结21七、 致谢22八、 附件231. 原理图232. PCB图243. 元件清单254. 总程序26一、 引言(一) 本课题的研究背景 电风扇在最初的时候还不是用电来使它转动的,而是用一种类似于钟表结构的发条装置来使固定在天花板上的机械风扇转动的,就是因为是发条结构,所以需要人用梯子去上发条,特别的麻烦。所以,人们结合了电动机,把扇叶装在电动机上再接上电源,这样扇叶高速的转动,这就是电风扇的起源。现如今电风扇可以说是家家户户都有的存在,因为它方便,快捷,有效的解决夏天的炎热。但是随着国民经济的增长和科技的发展,人们对于电风扇的要求越来越高,不仅仅希望电风扇能够带来凉爽,还希望可以有更多的功能。在使用电风扇时,大多数人是希望知道此时的温度是多少,现在的时间是多少,或者它可不可以看时间,可不可以当闹钟,可不可以根据温度自己启动呢?为了能使更多的人使用到多功能的电风扇,本文结合了C51单片机将会在电风扇中插入报警模块,温度模块,照明模块,电动机运转,来使得电风扇具有多种功能。并且将详细的介绍其中各个模块的工作原理及其对应的程序。 二、 多功能LED显示电风扇控制器的设计市场上的的电风扇大多数就只有调节功能,你可以调节它的开与关,它的低速,中速和高速转动,这是通过按键来控制的,特别的简单实用,本文的产品将保留这个有点,将在它的基础上增加一些功能。如何来增加功能?单片机是一个功能十分丰富的只读存储器单片机,所以将采用AT89C51单片机来实现这些功能。图1 多功能LED显示电风扇控制器设计图本文的主要任务就是设计硬件电路和软件程序,并且要将它们结合起来能够实现功能,主要的设计思路是:时间模块控制时间并且将时间输送到显示模块;温度模块测量温度再将测量的温度输送到显示模块;照明模块将会有一个开关与之串联从而起到控制亮暗的作用;控制模块主要的功能是控制电风扇的三档调节和电风扇能够随着温度的变化而开启,这个功能将主要使用软件来实现;显示模块的主要功能是将得到的时间,温度及档位显示在屏幕上,电源模块就是为本产品提供电源。三、 多功能LED显示电风扇控制器硬件电路设计根据图1将分成五个部分:AT89C51最小系统,报警模块,温度模块,照明模块,电动机运转。(一) AT89C51最小系统电路设计1. AT89C51的简介 是一个功能十分丰富的只读存储器单片机,可以反复的擦除1k多次,保存时间为10年。它是一种很廉价的储存器,会极大地降低本产品的成本,它的管脚有40个,20脚和40脚用来接地和电源,在本产品中P0口用来控制的是显示模块的,P2口用来控制温度模块,P3口是用来控制时间模块和控制模块的。 振荡器特性:脚和脚各自代表着反向放大对应的输入以及输出。其反向放大器可以是片内振荡器。在使用外部时钟源驱动器件时,设定为不接通。有余输入至内部时钟信号过程中需要经过二分频触发器,因此对其脉宽无其余标准,不过需要确保其位于脉冲高低电平要求的范围内。所具有的主要优点有:兼容4Kb可编程的存储器写/擦的循环数据保留的时间:10年全静态工作:三级程序存储器锁定位内部32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 图2 AT89C51的外形及引脚排列图2就是AT89C51单片机的实体图,可以看到它的管脚很多,大小也不是很大,至于它的封装就如图2所示是双列直插式的封装。图3 最小系统电路图3为AT89C51的最小系统电路,它是链接在AT89C51的XTAL1,XTAL2和EA三个接口的,它是由电容,电阻,接地线等组成。电容C3,C4和X1构成晶振电。X1是晶振,两个电容C3和C4为负载电容。其作用是方便减小频率和启震的温漂。复位电路其主要功能是把特殊功能寄存器的数据刷新成为默认的数据。AT89C51单片机运算过程中因为干扰等外界的原因造成寄存器中数据错乱,不能使其功能正常的继续执行程序或者产生的结果为错时都是需要复位,从而使得程序重新开始运行。(二) 报警模块硬件电路设计时间模块硬件电路主要是由:电阻,三极管,+5V的电源,蜂鸣器,接地线组成。图4 报警电路图4为时间模块硬件电路,它与AT89C51的P3.1脚相连,其主要的功能是当当前时间为设置的闹钟时间,将发出报警信号,这部分电路将接收时间信号,然后由蜂鸣器做出反应(鸣叫)。(三) 温度模块的硬件电路设计温度模块硬件电路主要是由温度传感器,电源线,接地线,电阻组成。1. 温度传感器温度传感器是一种能够识别周围温度并将其转化为电信号的一种常用传感器。它也是一些测量仪表当中的重要元器件,类型众多。按测量温度的方法可以分为接触式和非接触式两大种。按照传感器材料及电子元器件特点可以分为热电阻和热电偶两大种。本产品用的是温度传感器中的DS18B20数字温度传感器。是市面上一种主流的数字温度传感器。能够输出数字信号,同时具有着占地面积小,抗干扰性能突出,对硬件需求较低等优点。DS18B20接线十分方便,封装后就能够直接进行运用。2. DS18B20数字温度传感器的工作流程l 低温系数情况下晶振振荡的频率往往不会被温度所干扰,会传输相应的脉冲信号至1计数器;l 高温系数情况下晶振会伴随温度的改变随之变化,传输的信号主要由2计数器接收;l 1计数器以及温度寄存器提前设定于-55相应的基数值;l 1计数器对低温系数情况下的信号实施减法计数。3. DS18B20数字温度传感器的技术性能l 特殊的单线接口模式,数字温度传感器和微处理器衔接的情况下,只需使用一根线就能够完成双方通讯工作。l DS18B20数字温度传感器测温的范围在:55+125之间,其测温误差1。l 数字温度传感器能够进行连接组网,也就是不同的传感器可以并联于唯一的三线上,不过上限数量为8个,最终完成多节点测量。若是数字温度传感器超过8个,就会使得电阻增加,进而电压变低,让信号传递受到不利影响。l 工作电源位于区间内。l 在应用时无需采用区域的外围元件l 测量结果会通过9到12位数字量的方式完成传输l 保护管直径为6l 能够使用于到,到等不同介质的工业管道和较为狭窄的空间设施测温领域中l 标准安装螺纹 , , 中任选l PVC电缆出线或德式球型接线盒出线,从而完成和其余设施的连接。4. DS18B20数字温度传感器的运用范围DS18B20数字温度传感器的运用范围很广,如冷冻库,储罐,纺机,空调等狭窄区间内的工业设备测温。汽车空调、冷柜和工业领域测温和控制也同样可以有效应用。5. DS18B20数字温度传感器的接法面对平地一面,左边为负同时右边为正,不可以进行反接。若是接反会立即生热,进而直接损坏电路!若是还会使得其传感器显示出错。如果使用51单片机,中间那个引脚必须接上4.7K到10K上拉电阻,不然由于高电平不能正常输入/输出:通电后立即显示85或者用几个月后温度会在85与正常值上乱跳。6. DS18B20数字温度传感器的特点u 有可编程的分辨率为9到12位,温度转换为12位的数字格式为最大值750ms,可定义的不易失性的温度报警设置,应用范围:恒温控制、消费电子产品温度计、工业系统、或任何热敏感系统u 采用一线通信接口。u 如果指令使DS18B20完成温度测量,数据将会存储在DS18B20的存储器中。图5 DS18B20温度传感器的概念图及封装7. DS18B20温度传感器的主要特性为v 电压范围更宽:,可通过数据线来进行供电,供电方式更为多样化。v 具有单线接口,温度传感器只需要一条接线口即可实现与单片机的双向通讯。v 具有多点组网功能,多个可实现并联,继而实现多点组网测温。v 在使用时不需要连接其他外围器件或设备即可实现温度测量,所有电路均集中于三极管电路之中。v 测温范围:,在之间时测量精度为0.5v 可编程分辨率:位,温度测量精度分别为和,测量精度较高。v 处于9位分辨率时可在93.75ms之内将测量的温度信息转换为数字信息予以显示;处于12位分辨率时可将内把温度转换成为数字;当在12位分辨率时,最多可以在750ms之内将测量的温度信息转换为数字信息予以显示,速度更快。v 所测量的温度信息直接转换为数字信号,通过总线传递到单片机的中央处理器之中,除此之外还可实现CRC校验码的传送,具有良好的纠错能力。v 当电源反接时,芯片不会因为短路烧毁,具有自我保护功能。图6 温度模块的硬件电路图6为温度模块的硬件电路,它是与AT89C51的P2.4脚相连,其主要功能是测量周围温度并传输到单片机中。(四) 照明模块的硬件电路设计照明模块的硬件电路主要是由:电源线,开关,电阻,LED灯,接地线组成。图7 照明模块的硬件电路图7为照明模块的硬件电路,它与51单片机的P20脚与P40脚并联,其主要的作用就是照明。(五) 显示模块的硬件电路设计显示模块的硬件电路主要是由:LCD显示器,排阻,电源线,接地线组成。本产品用到的是LCD1602显示器。LCD1602与单片机P0口连接,同时外接上拉电阻,通过上下两行来显示蔬菜大棚温度的设定阈值以及实测值,两者可同时限制,单片机P2.3、P2.4、P2.5分别与液晶显示模块的复位、读写和使能端口相连,数据显示参考主程序其他时序。LCD1602液晶显示器中的每一个字符都是由5*7的点阵组成。该显示方式具有控制简单等优势,同其他液晶控制原理相似。显示器工作原理:通过电压对相应显示区域予以控制,进而实现图形的显示。显示器的缺点:不能很好显示出图形。LCD1602显示器的优点:体积小、功耗低、显示内容丰富。图8 LCD1602的实物图LCD1602显示器特性:l 电压范围l 可完成对比度的动态调节l 具有复位电路l 提供各种控制命令l 80字节来显示数据存储器l 192个5X7点阵型的字符发生器l 8个自定义5X7字符发生器图9 LCD1602示意图通过图9我们可以知道LCD1602显示器有16个管脚:1和2脚分别用来接地和电源的;在系统运行过程中,程序完成初始化设置,之后在键盘中输入密码,系统中对密码进行核对,从而判断是否开锁或报警,选择是否修改密码,若是,要输入两次,密码通过后就可以设定新密码,若出现错误就会报警,同时新密码也要输入两次,确认后,修改完成,否则就直接提示错误并返回。之后启动程序,完成保护,再次在键盘中输入密码,系统实施判断,若是和以往相同,那么就采取同样的流程,反之则采取另一种流程。图10 显示模块的硬件电路图10为显示模块的硬件电路,它与AT89C51的P0(集合)口相连,其主要的功能是接收温度信号,时间信号在LCD显示器上显示。(六) 电动机控制的硬件电路设计电动机运转的硬件电路主要是由:电阻,三极管,电源线,接地线,直流电动机组成。直流电动机1. 直流电动机工作原理在磁极N、S之间设有一个可自由转动的磁铁,磁铁表面固定有一个缠绕状的线圈。当电流经过线圈时,线圈将受电磁力作用,将做旋转运动。根据左手定则我们可知,当流过线圈中的电流改变方向的时候,届时线圈方向也会改变,所以通过改变线圈的电路方向从而实现改变电机转动的方向。2. 直流电动机基本构造分为两部分:定子与转子。定子包括:主磁极,换向极,机座和电刷装置等。转子包括:电枢铁芯,换向器,电枢绕组,轴和风扇等。图11 电动机运转的硬件电路图11为电动机运转的硬件电路,它与AT89C51的P3.0脚相连,其主要功能是接收变速信号,改变自身的转速,它可以有三档的调节。(七) 多功能LED显示电风扇控制器总硬件电路设计图12 多功能LED显示电风扇控制器总硬件电路图12为多功能LED显示电风扇控制器总硬件电路,最小系统电路起到晶振复位的作用,P2口接的是温度模块用来检测当前的温度,然后在P0口显示当前的温度,时间,按下P3口中的开关可以调节电动机的转速,最后是照明模块它与AT89C51的电源与地线并联,起到照明的作用。四、 多功能LED显示电风扇控制器软件程序设计(一) 多功能LED显示电风扇控制器软件总程序设计图13多功能LED显示电风扇控制器软件总程序的流程图上电初始化后就可以设置自动启动温度(通过软件设置),然后检测当前温度是否超过设置温度超过则电风扇启动,LCD1602显示当前的温度,设置闹钟时间检测当前的温度是否为设置的时间是则报警,LCD1602显示当前的时间。(二) 时间模块的软件程序设计时间模块的软件程序其作用:检测时间,流程图如下图14 时间模块的流程图输入电压由软件程序检测当前的时间并将检测的时间输入到LCD显示器上,并由LCD显示器显示当前时间;设置闹钟时间,将检测到的时间与设置的闹钟时间相对比:是则蜂鸣器鸣叫,否则不鸣叫。在时间模块中主要用到的是软硬件结合,硬件用到的是LCD显示器,蜂鸣器等,软件则是通过程序来实现的。(三) 温度模块的软件程序设计温度模块的主要功能:进行温度测量,流程图如下:图15 温度模块的流程图输入电压由温度传感器检测周围温度并将温度输入到LCD显示器上,并由LCD显示器显示当前温度;设置温度(当温度达到何值时开启与关闭电风扇),将检测到的温度与设置的温度相对比:达到温度开启。(四) 电动机控制的软件程序设计电动机运转的软件程序其作用:调节电风扇的档位,如下:图16 电动机运转的流程图输入电压由按钮来调节档位,将调节的档位信号输入到电动机,电动机对应档位转动。五、 仿真为了能够更好的了解本产品的使用状况,本文采用了Proteus软件进行仿真。图17包含了显示模块,温度模块,电动机运转电路,报警电路,最小系统电路,照明电路等。图17 运行前图18 运行后通过图18,当电路运行时LCD将显示当前的温度和时间,温度则通过温度传感器得到的,按下P3.7的按钮则可以调节电动机的转速,按下开关SW1,则D1发光,当接收到报警信号时,BUZ1报警,实现了测温,自动启动,检测时间,闹钟,调节转速,照明的功能。六、 总结这次的毕业设计我和指导老师翟红讨论了很久,关于能给电风扇加些什么样的功能,以及这个毕业设计如何去写,还有此次毕业设计过程中出现的一些问题,如电路排布,各类元器件的应用,如何去编写的程序,编写完成的程序如何去修改错误等等,部分的核心我也是在指导老师翟红的帮助下完成的。通过对多功能电风扇的研究,把本产品分成了五部分,其中有:AT89C51,时间模块,温度模块,照明模块,控制模块,从中了解了各个模块的作用其对应的硬件与软件程序,这让我受益匪浅。目前各个部分的的仿真都已经基本的实现,我也对硬件与软件作了检查以及相应的测试,总体来说功能还是都能够实现的,包括照明,闹钟,根据温度来使得电风扇的开启与关闭,档位的调节,测量的温度等等,可以说此次的设计顺利的达到了预期的初衷。 本产品还是一个初步的产品,现在它还不能用遥控器来操作更不用说使用手机来控制,只能说初步的设计还是比较成功的,但是还需要去完善,比如:对照明部分的完善,能不能调节光线的亮暗,添加一些紫外光防止蚊虫,在闹钟部分添加更多的声音等等。 因为想尽可能的给电风扇多加功能,使我遇到了很多的问题,包括电路的构造和程序的编写这些是最困难的一部分,好在最后还是解决了。七、 致谢三年大学生涯即将落幕,但是对我而言却是踏入社会的开端,尽管有着诸多的不舍我还是要勇敢的踏入新的征程。在此我要感谢帮助过我的所有人,我的同学,我的舍友,我的家人以及教导过我的老师们,是他们的解惑才能此毕业设计的诞生,我真的很感谢他们。最后我要感谢我的指导老师翟红,翟老师在我的毕业设计中给了我很大的帮助,她也是十分的认真负责,我有什么问题她都会尽自己最大的能力来帮助我,我遇到了很多的问题都是翟老师细心的指导我的,我十分的感谢她能在她空闲之余来帮助我完成我的毕业设计,她使我的论文更加的完整严谨。虽然我并非是她最优秀的一个学生,但是她可以说是我最敬爱的老师。感谢,非常感谢你们的帮助!八、 附件1. 原理图2. PCB图3. 元件清单4. 总程序#include reg51.h#include LCD1602.h#include 18B20.h#define TempUp 500/温度大于50读,风扇就转动,此时按键可以控制转速#define Setshi 12/设定闹钟小时#define Setfen 01/设定闹钟分钟uchar DisplayData1 = Temp: 000.0 ;uchar DisplayData2 = Timer:12:00:00;int temp;uchar shi=12,fen=00,miao=00;uint jishu1 = 0,jishu2=0;sbit Key1 = P37;sbit Mode = P30;sbit Buzz = P31;bit Key_Up = 0;bit AlarmFlag = 0;bit SetFlag = 0;uchar Speed = 1,jishu = 0;void Key_Scan()if(Key1=0&Key_Up=0)Speed +;if(Speed3)Speed = 1;Key_Up = 1;else if(Key1=1&Key_Up=1)Key_Up = 0;void Timer_Init()TMOD=0x01; /定时器方式1 TH0=(65535-5000)/256;TL0=(65535-5000)%256; /定时器装入初值 EA=1; /开总中断 ET0=1; /定时器0开中断TR0=1; void main()Mode = 0;Buzz = 0;init();DisplayData111=0xdf;DisplayData112=0x43;LCD_Write_String(0,0,DisplayData1);LCD_Write_String(0,1,DisplayData2);Timer_Init();while(1)temp=ReadTemperature();if(tempTempUp)AlarmFlag = 1;else AlarmFlag = 0;if(Setshi=shi&Setfen=fen)SetFlag = 1;else SetFlag = 0;DisplayData16=temp/1000+0x30;DisplayData17=temp/100%10+0x30;/显示十位DisplayData18=temp%100/10+0x30;/显示个位DisplayData110=temp%10+0x30; /小数LCD_Write_String(0,0,DisplayData1);Key_Scan();DisplayData26 = shi%100/10+0x30;DisplayData27 = shi%10+0x30;DisplayData29 = fen%100/10+0x30;DisplayData210 = fen%10+0x30;DisplayData212 = miao%100/10+0x30;DisplayData213 = miao%10+0x30;LCD_Write_String(0,1,DisplayData2);void int3()interrupt 1 /产生PWM TH0=(65535-5000)/256;TL0=(65535-5000)%256; /定时器装入初值 if(AlarmFlag=1)jishu+;if(jishu3) 速度 = 1; 键 _ 向上 = 1; 其他 if(Key1=1&Key_Up=1) 键 _ Up = 0; void 定时器 _ Init () Tmotc120x01; 一种方式 1 TH0=(65535-5000)/256;TL0=(65535-5000)256; 关于它的输入 开总经理 ET0EX1; 0中之道 TR00.1; void 主 () 模式 = 0;Buzz = 0;init ();DisplayData111=0xdf;DisplayData112=0x43;LCD_Write_String(0,0,DisplayData1);LCD_Write_String(0,1,DisplayData2);定时器 _ Init ();while(1) 温度 = 读数温度 ();if(temp temp) 警报标志 = 1; 其他 警报标志 = 0; if (Setshi = = shi & &Setfen=fen) SetFlag = 1; 其他 Set标志 = 0; DisplayData16=temp/1000+0x30;显示 Data1 7 = temt1/100 10 + 0x30;/显示十伯埃雷达塔 a1 8 = 温度 100 + 0x30;/显示一个 DisplayData110=temp10+0x30;小 LCD_Write_String(0,0,DisplayData1);密钥 _ 扫描 ();DisplayData26 = shi100/10+0x30;DisplayData27 = shi10+0x30;DisplayData29 = fen100/10+0x30;DisplayData210 = fen10+0x30;DisplayData212 = miao100/10+0x30;DisplayData213 = miao10+0x30;LCD_Write_String(0,1,DisplayData2); void int3()interrupt 1/plopm TH0=(65535-5000)/256;TL0=(65535-5000)256; if(AlarmFlag=1) jishu +;if(jishu100)jishu2=0;Buzz = Buzz;else Buzz = 0;jishu1+;if(jishu1200)jishu1=0;第 32 页 共 32 页
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕业论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!