周一至周五 | 9:00—22:00

期刊论文网 > 工业技术论文 > 信息与通讯技术论文 > 电子信息工程论文 基于单片机的智能温控风扇

电子信息工程论文 基于单片机的智能温控风扇

2019-01-26 14:00:28来源:组稿人论文网作者:婷婷

  摘 要 :本次设计是基于STC89C51单片机为主控芯片的有关智能温控风扇系统而展开的一次设计,该系统通过温度传感器DS18B20感应周围环境温度的变化而产生不同的数字信号,从而依据信号的变化而自动调节风扇档位,而当前温度与预设上下限温度的温度值可由LCD1602液晶显示器来显示,也可以通过三个与单片机连接的独立按键来增大或减小预设温度,风扇驱动由三极管电路驱动,以USB插口供电。该设计能依据周围环境温度变化通过单片机发出指令自动改变风扇档位大小,从而控制风速大小,实现智能温控的目的,从而解决了传统风扇只能手动调节风速大小的问题。

  关键词:STC89C51;温度传感器;液晶显示;USB供电

  风扇在炎热的夏天受到许多人的喜爱,可以说风扇是家家户户在炎热的夏天必不可少的工具。虽然现在好多人家中都安装了空调,但是风扇却一直没被淘汰掉,一直有其独特的地位,因为比起空调,风扇更加便捷,并且价格也更适应广大人群的标准。随着人们生活条件的不断改善,科技的快速发展,越来越多的多功能人性化产品相继问世,各种各样多功能的产品也逐渐走进人们的视线,市场上也出现更加人性化、智能化的具有定时、遥控等功能的风扇, 比起更早的吊扇,智能化风扇更受人们的青睐。

  在电子工艺日渐发展的今天,尤其是在中国这个拥有庞大人口数字的发展中大国,智能化风扇也该有其前进的步伐,占据一定的市场。并且风扇价格便宜,体积不大,在许多经济发展不发达地区风扇会更加受到欢迎。因此智能化风扇在以后会会有不错的发展前景

  1 整体方案设计

  1.1 系统总体方案设计

  本设计由单片机最小系统,温度采集部分,液晶显示温度部分,风扇驱动部分构成。系统框图1如下:

  风扇驱动

  单片机

  温度传感器

  按键部分

  液晶显示器

  电源

  图1 系统框图

  1.2 系统模块选用

  1.2.1 温度传感器的选用

  温度传感器主要有热敏电阻和DS18B20温度传感器两种方案可供选用:

  方案一:热敏电阻是一种较为灵敏的元器件,对环境温度变化相当敏感,仅仅是1、2摄氏度的变化都会改变热敏电阻的阻值,通过阻值变化幅度大小由控制中心发出指令改变风扇转速,其灵敏度极高。随着热敏电阻阻值变化,会产生模拟信号, 然后将模拟信号转换成数字信号由控制核心作出相应指令。所以可以采用热敏电阻来感应周围环境温度。

  方案二:由数字型温度传感器DS18B20采集四周环境温度,担任温度采集部分的主要器件。

  对于方案一,热敏电阻虽然能够依据温度变化产生不同阻值,但是如果温度变化不太明显,温差太小的话,热敏电阻阻值并不会变化的太明显,从而会影响控制核心对风扇驱动部分输出的指令,并且热敏电阻的阻值变化与温度变化之间属于非线性关系,元件使用时间不长、寿命短,稳定性差。故本方案不适合本系统。

  对于方案二, DS18B20是一种外形轻巧,质地较好的数字型温度传感器,其耐磨耐碰,温度测量范围极大,能适应极低温极高温各种环境需求,在零下55摄氏度和+125摄氏度之间都可以正常工作。DS18B20只有三个引脚可单独作为一个模块使用,不需要外接其他元器件,与单片机之间只需要一根连接线即可实现它们的通信,这样就使得接口电路简单明了,并且可以有效的提高系统的抗干扰能力,所以本系统采用这个方案。

  1.2.2 显示电路的选用

  显示电路有LED共阴极数码显示管和LCD1602液晶显示屏两种方案选用:

  对于方案一,LED共阴极数码管电路简单,使用起来也较为方便,并且制作成本相对较低,功耗也不高,在视线不清晰的情况下也可以看的清楚,同时显示电路的程序编写起来也相对简单,所以在本设计中也可以使用。由于它的显示方式为动态扫描,每个LED灯依次亮起,在此过程中会不断闪烁,如果温度变化过快闪烁频率会更快,不能很好的显示数据,故此方案不采用。

  对于方案二,LCD1602液晶显示屏的屏幕清晰度可以根据其外接电阻的大小来调节,用户可以根据自身需求来调节清晰度,同时它本身屏幕就带背光,无论白天黑夜都可以清楚的看到温度,并且屏幕大不仅能显示实时温度,还能显示预设温度上下限以及风扇当前转速。显示效果相对数码管来说更有优势,所以选择此方案。

  1.2.3驱动方式的选择

  驱动可以采用变压器和三极管驱动两种方式完成:

  对于方案一,利用变压器驱动方式主要是通过调节电路电压来控制风扇电机转速,进而影响风速大小,但是在整个调节过程中会存在一定的损耗,效率极低,还会严重发热,甚至过热导致起火,损坏其他元器件。

  对于方案二,三极管PWM即脉冲宽度调制,是运用微处理器的数字输出来对模拟电路进行控制的一种十分有效的技术。它最大的优点是不需要进行数字信号到模拟信号的转换,在整个数据传输过程中数据都是以数字信号形式传输的。故本系统采用方案二。

  1.2.4 控制核心的选择

  控制核心可以由电压比较电路或者单片机完成。

  对于方案一,电压比较电路比较容易设计,实现的控制功能也比较简单,并且不需要程序控制,但是此种方法局限性较大,只能简单的控制风速大小而不能设置成在某个温度区间内自由调节风扇档位,满足不了不同环境下各种温度变化需求。故在本系统中不使用。

  对于方案二,单片机作为控制核心的优点是可以将提前编写好的程序植入单片机内部,外界温度一旦变化就可以通过程序将温度传感器检测到的温度传输到温度显示模块,而且还能够设立调节温度上下限的独立按键,自由设置温度感应范围,故本系统采用方案二。

  综上所述,本设计选用STC89C51单片机为控制核心,数字型温度传感器DS18B20感应温度变化,通过LCD1602液晶显示屏显示实时温度与风扇档位,并用USB供电。

  2 硬件电路设计

  2.1 STC89C51单片机介绍

  STC89C51是一款可编程的微型处理器,它不仅性能稳定强大,而且所需要的功耗也特别低,同时兼具8位CPU,这使得它能灵活多变,高效的解决常见的的系统难题,所以在很多时候STC89C51与嵌入式控制系统联系的更加紧密。在实时性方面主要由于该芯片内有看门狗定时器和三个16位定时器和计数器体。内置MAX810复位电路和一个6向量2级中断结构则为了让该单片机能按个人的意愿改变数值和优先处理等。另外,该单片机在应对空闲模式的无用的损耗方面和停电突发情况下保护数据方面增添了两种节电模式和掉电保护功能。由于STC89C51单片机制作工艺简单,成本较低,所以在许多性价比高的产品中被广泛运用。另外89C51单片机的最高运作频率可达35Mhz。

  2.1.1 STC89C51主要功能和性能参数

  (1)STC89C51分增强型和普通型两种,其机器周期也有所不同,增强型的机器周期为普通型的一半,数值为6时钟;

  (2)工作频率范围:0~40MHZ,相当于普通8051的0~80MHZ;

  (3)STC89C51RC对应Flash空间:4KB;

  (4)内部存储器(RAM):512B;

  (5)定时器/计时器有三个;

  (6)1个通用的异步通信口;

  (7)中断源:8个;

  (8)32个通用I/O口;

  (9)工作电压在3.8-5.5V之间。

  2.1.2 STC89C51单片机引脚说明

  单片机引脚主要有电源引脚、I/O口引脚、控制引脚和时钟引脚。

  电源:

  电源引脚有两个,分别为VCC(引脚40)端接电源输入端,一般接+5伏电源,在本设计中采用USB插口供电, GND(引脚20)端接地。

  I/O口:共32位可编程端口

  P0口(引脚32-39):用户专用的双向I/O口,每个接口都能独立设为输入或输出,本设计在P0口接一个10K的上拉电阻,提供高电平输出。

  P1口(引脚1-8):用于连接风扇驱动模块,其中P1.0输出高低电平来控制风扇转速。

  P2口(引脚21-28):用来接收控制信号,其中P2.6和P2.7与LCD1602液晶显示屏的EN与RS控制引脚相连。

  P3口(引脚10-17):除了可以用作通用I/O口外,还有第二功能,第二功能如下:

  P3.0 RXD(串行输入口)

  P3.1 TXD(串行输出口)

  P3.2 /INT0(外部中断0)

  P3.3 /INT1(外部中断1)

  P3.4 T0(记时器0外部输入)

  P3.5 T1(记时器1外部输入)

  P3.6 /WR(外部数据存储器写选通)

  P3.7 /RD(外部数据存储器读选通)。

  其中P3.5~P3.7 连接三个独立按键,用于输入温度设定值。

  3.控制:

  RST(引脚9):系统复位端口。PSEN(引脚29):外部存储器读选通信号,此引脚为低电平有效。EA(引脚31):外部访问允许端口,此引脚接低电平时,CPU只访问外部程序存储器,当接高电平(接Vcc)时,CPU执行的是内部存储器的指令。本设计电路中EA端需接高电平。

  4时钟:

  XTAL1与XTAL2两个引脚,功能为产生时钟信号的片内振荡电路的输入端和输出端。

  引脚封装图如图2所示:

  图2 STC89C51单片机引脚封装图

  2.1.3 STC89C51单片机最小系统

  单片机最小系统是指单片机从开始工作到结束工作整个过程保持稳定所需的基础硬件配置。由电源、时钟电路、复位电路组成,由于STC89C51单片机有内部存储器,因此它构成的最小系统不复杂但稳定性极高。

  2.1.4 时钟电路设计

  STC89C51单片机的时钟信号可以在单片机外部连接振荡电路产生时钟信号,也可以由内部自激振荡器产生,其中内部时钟方式即在单片机的内部时钟工作电路的输入端(XTAL1引脚)和反向振荡器的输出端(XTAL2引脚)外接晶振且并联两个等值的电容,这里晶振1的振荡频率是在1.2~12MHz之间,而自激振荡器中的电容在这里则起着稳定整个起振过程中的晶振频率和使振荡器能快速产生时钟信号的作用,从而使得震荡器在单片机内部产生时钟信号。外部时钟方式即在单片机外部单独连接一个振荡电路。由于内部时钟信号产生方式更加快捷,方便,所以本设计采用内部自激产生时钟信号。在本电路设计中晶振值我们设置为11.0592MHz。时钟电路如图3所示。

  图3 51单片机时钟电路图

  2.1.5 复位电路设计

  STC89C51单片机复位电路的作用就是使整个系统回到起始工作状态,因为单片机具有内部存储器,程序也植入在单片机内部,所以若是单片机内部发生程序紊乱,导致系统无法正常工作时,然而在整个系统中添加复位电路就很好的解决了这个问题。所以在实际运用中,复位电路工作时若RST引脚接电源,并且接电源时间一直在2个机器周期时,复位电路就开始工作进行复位操作[6] 。若该引脚接电源超过2个机器周期,一直保持接电源状态时,单片机就会陷入一次次的复位,一直循环下去。单片机复位电路见图4。由下图我们可以看出复位电路是由一个电阻与电容串联组成,并与单片机RST引脚相连接。

  图4 STC89C51复位电路

  2.2 DS18B20温度传感器简介

  DS18B20是一种改进的智能温度传感器,由美国达拉斯半导体公司在DS1820之后发布。传统热敏电阻,只能根据温度变化改变阻值大小从而产生电压和电流的变化,但不能直接读出温度数值,而DS18B20可以根据实际需要直接直观地读出测量温度温度的数值和变化大小,这就比最早的热敏电阻更加实用、方便简单。并且在DS18B20读写信号时只需要与单片机的一个I/O口相连就可以完成数据的交换传输,还可以通过口线给DS18B20供电,而不需要外加电源。同时,在温度采集方面DS18B20更加实用,并且它以体积小、线路简单和性能可靠等特点受到许多电子工程师的青睐。

  2.2.1 DS18B20传感器特点

  (1)接口方式:与单片机连接只需要与其一个输入口相连就行,就能实现两者间的双向通讯。

  (2)可作为一个独立元器件使用。

  (3)该传感器一般在3.0~5.5v小电压范围内工作,可采用USB接口进行供电。

  (4)测量温度范围广,它可以在-55℃~+125℃范围内进行有效、稳定的测量。

  (5)体积小且耐磨性好。

  (6)多个传感器协同作用可以测量多个定点温度。

  (7)具有短路保护作用,电源引脚与接地引脚接反时,不会产生短路造成元器件发热烧毁,但是无法正常感应温度变化。

  2.2.2 DS18B20温度传感器引脚与接口设计

  DS18B20温度传感器有三个不同的功能引脚,分别为接地端(GND),数据传输端(DQ),以及电源端接口(VDD)。其中DQ端连接单片机P16引脚,电路连接图如图5:

  2.3 LCD1602接口电路设计

  2.3.1 引脚功能说明

  在本设计中采用16脚(带背光)接口。

  表1:引脚接口说明表

  符号引脚说明符号引脚说明VSS电源地D2数据VDD电源正极D3数据VL液晶显示偏压D4数据RS数据/命令选择D5数据R/W读/写选择D6数据E使能信号D7数据D0数据BLA背光源正极D1数据BLK背光源负极2.3.2 LCD1602接口电路

  图5 传感器与单片机接口电路图 图6 LCD 1602显示电路图

  在本电路中,LCD1602的电源地(VSS)与背光负极端(16脚)需要接地,电源端(2引脚和15引脚)接电源,液晶显示器亮度调整端(3引脚)接的电阻起到调节液晶显示的亮度作用,当屏幕显示不清晰时适当调小R6阻值,当屏幕显示过浓时适当加大R6阻值,在本设计中阻值已调到适当位置,RS端与R/W端为控制引脚,其中R/W端为读写引脚,其工作电压依据电平的高低进行不同的操作,当工作在高电平时可以进行读操作,而在低电平时则进行写操作。在本设计中由于只用到写,所以R/W端通入的电压为低电平,其引脚接地。D0-D7为数据引脚,可进行双向数据传输,与单片机的P0口相连。

  2.4按键部分电路设计

  在本设计中采用三个独立按键:菜单键,温度设定增大键和温度设定减小键。电路图如图8所示:

  图8按键电路图

  其中三个开关分别于单片机的计时器外部输入端、外部数据存储器写选通端和外部数据存储器读选通端相连。

  2.5 风扇驱动电路设计

  本设计中风扇驱动为简易的三极管驱动,单片机I/O口输出的高低电平控制风扇转速,当单片机数据输出端输出低电平时,NPN三极管 8050处于截止状态,电阻R4上拉到高电平,此时PNP三极管8550也是截止的,风扇处于不转状态;当单片机输出端口输出高电平时,Q1导通,R4被接地,Q2也导通,此时风扇一端接正极,一端接地,驱动电路发挥作用,风扇电机开始工作,驱动风扇转动。驱动电路如图7所示:

  图7 风扇驱动电路图

  2.6 电源设计

  由于本设计中STC89C51单片机正常工作电压为3.8-5.5V之间,LCD1602工作电压在4.5V到5.5V之间,DS18B20温度传感器正常工作的电压在3.0V到5.5V之间,故本设计采用USB插口供电。USB供电电源在5.0V左右。电源电路如图9所示:

  图9 电源电路图

  3 软件设计

  3.1 总体程序设计

  程序设计部分主要由温度读取模块的函数程序、收集到的温度转换模块所需函数程序、以及温度的处理函数程序、传感器的初始化函数程序、键盘扫描函数程序、液晶显示模块函数程序以及风扇电机控制函数程序组成。流程图如图10所示:

  3.2 DS18B20子程序流程图

  在使用DS18B20的时候,首先需要对其进行初始化,然后才能调用其内部存储器,再执行存储器操作命令,最后进行数据操作。其中在温度读取完成以后需要对读取的的温度指令进行CRC检验,检验为用户提供的9字节编程是否完成,其中9字节是指温度传感器的温度感应精度值以0.5℃递增,DS18B20生产厂家为用户提供了多种可编程的地址,能够满足多种测量环境,可以通过程序实现不同的精度测量。整个流程图如图11所示:

  图10 主程序流程图 图11 DS18B20子程序流程图

   EMBED Visio.Drawing.11 3.2.1 DS18B20指令表

  表2:ROM指令表

  指令约定代码功能读ROM33H读DS18B20温度传感器ROM中的编码(即64位地址)。符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。跳过 ROM 0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令。适用于单片机工作告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。表3:RAM指令表

  指令约定代码功能温度变换44H启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0BEH读内部RAM中9字节的内容。写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3 、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3 、4字节。3.3 按键子程序流程图

  按键部分主要有三个独立按键组成,设置键K1,增大键K2,减小键K3。在进行预设温度上下限时,首先按一下设置键,进入温度上限设置,此时通过按温度增大键和温度减小键可以加减温度设定值,第二次按下设置键时,设置温度最小值,接着按温度增大键和温度减小键设定最小温度,最后按下设置键完成温度设置。流程图如图12所示;

  4 系统调试

  4.1 传感器DS18B20温度采集部分调试

  在本设计中DS18B20对温度测量精度为0.5℃,在检测其能否在系统中正常工作时,可以用手指捏住芯片,观察液晶显示屏上实时温度是否改变,若显示屏上实时温度一直升高则说明DS18B20在电路板上能够正常工作。在调试过程中应注意传感器三个引脚位置是否与电路板连接正确,由于传感器引脚是较细的铜丝所以还要注意不要过度拉扯三个引脚,以免造成引脚断开,接触不良而导致无法正常工作。

  4.2 风扇调速电路部分调试

  在本设计中,由两个极性相反的三级管组成复合三级管电路驱动直流电机,通过单片机中植入的程序,温度传感器会根据检测的温度变化反馈给控制核心,由控制核心单片机输出不同的PWM波形,进而产生不同的占空比,通过占空比的不同改变三级管的工作状态进而通过驱动电路控制风扇直流电机。当环境实时温度比设定的下限温度低时,风扇不转动或自动停止转动;当环境的实时温度高于上限值时,风扇的档位增大,风扇加速转动或者自动转入低档位转动。

  在本系统中风扇有0,1,2三个档位。通过温度传感器检测的四周环境温度与液晶显示器上显示的预设温度值的比较,实现自动换挡改变风速大小。

  4.2 系统功能

  4.2.1 系统实现的功能

  本系统根据DS18B20采集到的环境温度与预设温度上下限值比较来控制单片机I/O口输出的PWM波形,从而产生不同的占空比,根据占空比的不同改变风扇电机的转速,并且系统配备了调节不同温度范围的独立按键,可以设置不同的温度测量区间,可调性大。如温度上限设为26摄氏度,下限温度设为25摄氏度,若环境温度低于下限温度,风扇不转;若环境温度高于下限温度未高出上限温度,风扇档位为1档,风扇低速转动;若环境温度高出上限温度,风扇档位为2档,风扇高速转动。

  本设计可以根据液晶显示的环境温度手动调节上下限温度,并能通过液晶显示实时档位。

  4.2.2 系统功能分析

  本系统中以STC89C51单片机作为主控芯片,是系统的核心部分。DS18B20温度传感器检测环境温度变化输入给单片机I/O口,经单片机内置程序处理后输出不同的PWM波形,产生不同占空比,使之自动变换档位,进而改变风扇电机转速。风扇驱动电路由一个NPN三极管和一个PNP三极管组成驱动电路,根据单片机输出高低电平控制两个三极管的工作状态,由三极管特性控制电机转速。LCD1602液晶显示屏能清晰稳定的显示实时温度,预设温度上下限值,以及当前风扇档位。通过独立按键能够设置不同的温度上下限值。

  图12 按键程序流程图

  5结语

  本文设计的系统以单片机为主控模块,运用数字型温度传感器DS18B20感应四周环境温度变化, LCD1602液晶显示屏能够清晰的显示实时温度和设置的预设温度上下限值以及风扇档位,根据显示的实时温度与预设温度最大最小值比较自动改变风扇电机转速,调节风扇档位大小,并且可以通过独立按键设置不同的温度范围,完成了本次论文设计要求。本系统设计极具人性化,可以进行大规模推广,并且可以应用到许多温控系统中,给人们的生活带来便利,并且制作工艺简单,价格廉价,符合大多数人的经济需求。

  在本次论文完成过程中,我不但更加熟悉了常用的电路绘制工具,而且自己独立思考和动手焊接的能力也得到提升,并且对于大学所学的主要专业内容更加的熟悉,理论知识掌握的更加熟练,受益匪浅。

栏目分类