51单片机的家用风扇控制器设计+电路图+源码摘要:本文设计了一种基于单片机的家用风扇控制器,系统主要由显示模块、温度采集模块、键盘控制模块、风扇驱动模块以及控制系统模块构成。
本设计采用DS18B20 和LCD1602实时的检测和显示室内的温度,同时根据当前温度实现对风扇转速的控制,并有相应的指示灯指示选择的档位。
本设计采用C语言进行程序设计,并采用Proteus和单片机实验箱进行仿真和测试,仿真和测试结果说明本设计实现了预定的功能,并且具有节能、控制方便以及人性化等特点。
关键词:AT89C51;自动控制;温度显示;温控风扇Household Electric Fan Controller Design Based onMCUAbstract: In this paper, the design is a home fan controller based on MCU, and the system is mainly composed of display module, temperature acquisition module, the keyboard control module, fan driver module and control system module. This design adopts DS18B20 and LCD1602 to achieve real-time detection and display of indoor temperature, at the same time control the fan speed according to the current temperature, and make the corresponding indicator light indicate the gear selection. This design uses C language to design program, and uses the Proteus and MCU box to test the simulation and experiment, and the simulation and test results show that the design realized the function of reservation, and it has the characteristics of energy saving, easy control and humanized.Key Words: AT89C51; Self-acting control; Temperature display; Temperature control fan目录摘要1引言11.家用风扇控制系统21.1风扇的工作原理21.2本设计的的目的和意义22.系统总体的设计方案32.1本设计系统要实现的功能3 2.2系统的总体结构框图31. 家用风扇控制系统1.1 风扇的工作原理传统电风扇的主要部件是交流电动机,其工作原理很简单,就是通电后的电磁圈在电磁力力矩的作用下转动扇叶。
其能量转化形式主要是电能转化为机械能,由于线圈存在电阻,所以有一局部电能转化为线圈电阻的热能。
有三种方法可以控制扇叶转速:第一,上下电压电路板控制扇叶速度的变化,例如空调室内机;第二,通过改变电阻控制电压变化从而改变扇叶速率,例如局部空调柜;第三,可以用开关电路通过几组线圈改变电动机速率,例如一般吊扇调速器。
1.2 本设计的的目的和意义电风扇有很多优点,例如价格低、体积小、节能、风力温和、易于使用的优点。
伴随着人民生活水平的提高,家用电器的功能日益丰富,并朝着智能化的方向开展,过去的电器的单一功能不能够满足人们的需求,家用电风扇同样需要进行功能上的改良。
本设计就是以单片机为核心,中选择自动控制模式时,根据外界温度的变化实现对电风扇的智能控制,它能够根据外界环境温度值的变化实现自动控制并且使风扇转速根据温度变化而变化,当温度升高时电风扇的电机转速加快从而加速空气流动,使人感到凉爽,当温度降低时风扇电机转速降低,从而可以防止人体因温度降低而感冒,还能够实现节能的功能;中选择手动控制时,人们可以设置三个档位来控制三个不同的电风扇转速,从而实现电风扇控制,改善室内温度。
2. 系统总体的设计方案2.1 本设计系统要实现的功能本系统的总体设计方案:温度传感器检测到的温度信号转化为数字信息传送给单片机AT89C51进行处理,LCD液晶显示器显示当前的外界环境温度值和定时的剩余时间值,根据手动模式时哪个按键按下和自动模式时DS18B20采集到的信息经过经过单片机的信息处理控制风扇机电机的转速;本设计最大的特点就是把手动换挡模式和自动换挡模式结合起来,能够很便利的实现电风扇的控制;手动换挡模式包括三个档位,即一档位,二档位,三档位;自动控制模式亦包括三个档位,当外界环境温度是20~30℃时,自动控制档位是一档位;当外界环境温度是30~40℃时,自动控制调节为二档位;当外界环境温度是40℃以上时自动调节为三档位;以上档位越高电风扇的电机转速越大,根据不同的温度对应不同的转速,从而更加便捷的控制温度。
P1口:P1口是一个内部带有上拉电阻的8位双向I/O口;P1口缓冲器能够接收输出的4TTL门电流。
P1口管脚写入1后,内部就被上拉为高,可用于输入,P1口被外部下拉为低时,就将输出电流,这因为内部上拉的缘故。
P2口:P2 是一个提供内部上拉电阻的8位双向I/O 口,P2 的输出缓冲级可以驱动4 个TTL 逻辑门电路;当对端口P2写1,内部的上拉电阻就把端口拉到高电平,在此时可作输入口,当作输入口使用时,由于内部有上拉电阻,当某个引脚被外部信号拉低时就会输出一个电流。
P3口:P3口是一组带有内部上拉电阻8位双向I/O 口;P3口输出缓冲级可以驱动4 个TTL逻辑门电路;当对P3口写入“1”时,它们就被内部的上拉电阻拉高并作为输入端口;这时,被外部拉低的P3 口将用上拉电阻输出电流;P3口除作为一般I/O口线外,它更重要的作用是它的第二功能;另外P3口还可以接收一些用于Flash闪速存储器编程或程序校验时的控制信号。
RST是复位输入,在振荡器工作时,RST引脚将出现两个机器周期以上的高电平使单片机完成复位。
ALE和PROG:当访问外部程序存储器和数据存储器之一时,地址锁存允许ALE就输出脉冲锁存地址的低8位字节;在一般情况下,ALE 就以时钟振荡频率的1/6 输出固定脉冲信号,进而它可对外输出时钟和用于定时;在对Flash 存储器的编程期间,该引脚用于输入编程脉冲PROG。
PSEN是程序储存允许输出,就是外部程序存储器的读选通信号,在AT89C51 由外部程序存储器取指令〔或数据〕时,在每个机器周期内两次PSEN 有效,即是输出两个脉冲;在此期间,当访问外部数据存储器时,就将跳过两次PSEN信号。
3.2 温度检测芯片的选择本设计采用DS18B20温度传感器,DS18B20内部结构主要由4局部组成:64 位的ROM、非挥发的温度报警触发器TH和TL、配置存放器和温度传感器[2]。
单线数字温度传感器DS18B20具有3 引脚T0~92 小体积的封装形式;温度测量范围-55℃~+125℃;可编程9~12 位的A/D转换精度,测温分辨率能够到达0.0625℃;被测温度值用符号扩展的16 位数字量形式串行输出。
工作电压支持3V~5.5V ,不仅可在远端引入,而且可采用寄生电源方式产生;DS18B20 支持“一线总线”接口,即多个DS18B20能够并联到3 根或2 根线上使用,CPU只要一根端口线就能够与诸多DS18B20 传输数字[3],占用的微处理器端口比拟少,因此可节省大量引线或逻辑电路;另外还有存储用户定义报警温度等功能。
风扇电机驱动电路采用L298〔如图4所示〕作为驱动芯片,L298是由SGS公司生产的的恒压恒流桥式2A驱动芯片,可以驱动一个两相步进电机或者两个直流电机。
各个引脚的简单介绍如下:IN1~IN4 :电机旋转方式控制端。
OUT1~OUT4:接电动机。
VCC和VS:接电源。
图4 驱动芯片L2983.5 系统总体电路设计Proteus是英国Labcenter electronics公司的创造的EDA工具软件;Proteus有4个功能:原理图设计、电路仿真功能、单片机协同仿真功能和PCB设计平台[5];其内部元件库包含大量的元件,并且支持总线结构和智能化的连线功能;支持主流CPU及其通用外设模型的仿真等,给单片机的开发设计带来极大的方便。
本设计采用Proteus进行原理图绘制和仿真。
如图5所示是本设计的Proteus原理图设计,本设计包含几个模块,即显示模块电路、振荡电路、复位电路、指示灯指示电路、按键电路、DS18B20测温电路、电机控制模块电路。
各个模块之间相互配合完成了本设计的根本功能。
显示模块电路的功能实现实时显示室内温度值和倒计时关机剩余时间;DS18B20测温电路检测室内温度后通过单片机控制LCD1602显示当前室内温度;指示灯指示电路指示当前的工作状态;按键电路实现对系统工作状态的控制;电机控制模块电路驱动电动机按不同的转速进行转动。
振荡电路和复位电路以及单片机一起组成单片机的根本电路模块。
图5 系统的原理图设计4. 系统的软件设计4. 1 系统总体软件设计流程图程序设计主要局部包括主程序、DS18B20的初始化函数、DS18B20的温度转换函数、温度的读取函数、键盘的扫描函数、数码管的显示函数、温度处理的函数以及风扇电机转速控制的函数、LCD液晶显示函数、定时关闭电机函数[6]。
DS18B20的初始化函数主要完成对DS18B20的初始化;DS18B20的温度转换函数主要完成对环境温度的实时采集;温度的读取函数主要完成主机对传感器的读取数据和数据换算,键盘扫描的函数主要完成档位设置和类型设置;温度处理函数主要对采集到的温度分析出理,进而控制电机转速的变化;风扇电机的控制函数那么根据检测温度的数值进行对电机转速和启停的即时控制;LCD液晶显示函数显示DS18B20采集到的外界温度值和定时剩余时间;定时关闭电机函数进行定时实现电机的定时关闭。
4.3 系统程序的编译和调试编译:用Keil 软件编译,翻开Keil 软件后,建立所要编译的工程,设置目标工程的相关选项,随后用Build target对源程序进行编译;如果出现警告和错误,就要去修改使程序正确,直至程序编译正确。