基于AT89S52单片机的智能温控电风扇

2013-09-03 08:04林建华
湖北开放大学学报 2013年2期
关键词:电风扇数码管温控

林建华

(闽南理工学院,福建 石狮 362700)

在国内,大部分农村地区普遍使用电风扇作为夏天降温防暑设备。夏秋季节白天温度高,电风扇应置于高速档,大风量才使人感到凉爽;到了夜里,气温降低,当人们入睡后,应该逐步减小风速,以免使人受凉感冒。虽然电风扇都有手动调节档位的功能,但必须要人手动切换档速,睡着了就没办法了。利用 AT89S52单片机设计智能温控电风扇控制系统,能解决深夜当人们熟睡时因温度下降而导致着凉,或是从睡梦中醒来去控制电风扇风速的问题。本控制系统实时显示检测温度值,并根据用户设定的上、下限温度值自动在相应温度下作出高速档、低速档、停止的动作,从而实现智能控制电风扇的风速目的,形成一个经济的、节能的智能温控系统。

1.设计方案

系统设计的总框图如图1所示。

单片机通过检测DS18B20采集的温度作相应处理并送数码管显示当前温度值,同时当前显示温度值与用户设定的上、下限温度值进行比较,根据比较的结果控制高速档、低速档、停止档相对应的继电器的通断,从而控制电风扇的电动机接线方式,实现对风扇风速的控制。硬件电路设计包括单片机主控电路、数码管显示电路、温度采集、蜂鸣器、继电器控制电路、+5V供电电源等。主程序编程用来实现对温度的检测、数码显示、蜂鸣器、继电器控制等处理功能。

图1 系统结构框图

2.硬件电路设计及其分析

2.1 单片机主控电路

AT89S52单片机作为本系统的控制核心,用于控制温度采集、数码管显示、蜂鸣器、继电器控制及用户上下限温度值设置键。在本系统设计电路中,温度采集定义 DS18B20的DQ端口为P3.3;数码管显示电路定义P0口连接七段数码管,P2口作为数码管的位选信号;P1.0为手动档电源开关,P1.1为自动档电源开关,P1.2为高速档,P1.3为低速档,P1.4 为显示值减1,P1.5为显示值加1, P1.6 为设置键;P3.0为蜂鸣器报警等。

2.1.1 温度采集

温度采集电路主要采用温度传感器DS18B20作为感测温度的核心元件,它可把采集的温度信号转换成数字量,送单片机处理后,输出送数码管显示当前温度值。DS18B20的DQ端口接P3.3口,如图2所示。

图2 温度采集

2.1.2 数码管显示电路

数码管显示电路利用8个共阳数码管、PNP三极管、电阻构成。单片机的P0口作为段码输入,P2口作为位选,并用8550三极管做驱动。P0口做I/O口时要加上拉电阻,所以给P0各端口加一个10KΩ的电阻。为了防止烧坏数码管,给数码管各段各加一个220Ω的限流电阻。显示时数据通过P0口送给数码管显示,通过P2口对数码管进行位选,数码管被逐位扫描显示其当前温度值。如图3所示,

图3 数码管显示电路

2.1.3 用户上下限温度值设置

用户上下限温度值设定由单片机的P1.4、P1.5、P1.6口外接的3个点动按钮S1、S2、S3来完成,如图3所示。S3为设置键,S2为显示温度值加1,S1为显示温度值减1。当按下设置键S3,进入上限温度值设置项,此时按下S2键,温度值加1,长按S2不放可实现快速加1,按下S1键,上限温度值减1,长按S1不放可实现快速减1。再一次按设置键S3,进入下限温度值设置项,此时按S2、S1键,可对下限值加 1或减 1。上限温度值和下限温度值的设置范围为-9℃~99℃,可以满足一般使用要求。再按一次设置键S3,可切换到手动控制状态,此时数码管显示的是当前温度值,这时电风扇切换到手动控制模式。再次按下设置键 S3,又切换到温控自动控制,或按接P1.7脚的S4按键,也可以从手动控制切换到温控模式。

2.1.4 继电器控制电路

继电器控制电路由单片机的 P1.0~P1.3控制,如图 4所示。上电默认为智能温控模式,电风扇一通电,P1.1输出低电平,Q11导通,继电器K2吸合,K1释放。单片机自动检测温度传感器采集的温度信号转换成数字量,送数码管显示,并与用户设置的上、下限温度值进行比较,当前显示温度值高于用户设定的上限温度值时,P1.2输出低电平,Q12导通,继电器K3吸合,电源接通电风扇电机的高速档;当前显示温度值介于用户所设的上、下限温度值时,P1.3输出低电平,Q13导通,继电器K4吸合,电源接通电机的低速档;当前显示温度值低于下限温度值时,关闭风扇。

当要切换到手动控制时,按S3设置键3次,从智能温控模式切换到手动控制,P1.0输出低电平,Q10导通,继电器K1吸合,K2释放。此时可以通过调节定时器及调速档开关控制电风扇的风速。按下S4时,又可切换到智能温控模式。

图4 继电器控制电路

2.2 供电电源电路

单片机+5V供电电源采用LM7805集成稳压器,220V电源经变压器降压、整流、滤波后送入LM7805稳压,输出端接一个470uF和0.1uF电容滤除纹波,得到+5V稳压电源。电路如图5所示。

图5 供电电源电路

3.系统程序设计

单片机首先对DS18B20进行复位和检测,当检测到传感器存在时,发出温度转换命令和读取温度命令,将从DS18B20读取的二进制温度值转换为七段码在数码管上显示出来。显示功能由温度显示子程序实现,数码管逐位扫描显示当前温度值。用户可根据需要自行设置风速档的切换上、下限温度值,硬件设计上可通过3个按键,由按键检测函数程序提供软件支持。用户设定的上、下限温度值均保存到DS18B20的EEROM内,在单片机掉电后仍然保存设定值,再次上电时从DS18B20的EEROM中读取上次设定的上、下限温度值。用户要实现根据当前温度实时的控制电风扇的风速,需要在程序中不断的判断当前温度值是否超过或低于设定的上、下限温度值范围,此部分功能由温度比较程序来完成。在执行程序不断将当前温度和设定动作温度进行比较判断,控制高速档、低速档相应继电器的吸合与释放,从而实时控制电风扇的风速。

4.系统的安装与调试

根据已定义的单片机各端口及设计的硬件电路,编写程序,并利用单片机Proteus ISIS和Keil软件对智能温控电风扇控制进行调试、仿真测试,直至实现其控制要求。

然后按已设计的硬件电路图对各单元电路进行安装与焊接,并确保电路安装正确无误。用烧写器将KEIL软件对应源程序编译生成的.HEX文件写入 AT89S52单片机芯片中。组装整个系统,将单片机插入到目标板中,进行整机的调试。

风扇接上电源,如数码管显示当前温度值22.5℃-L,表明电风扇处于低速档运行。按设置键S3及S2、S1键可重新设置上、下限温度值,如果将上限温度值设为25.0℃,将下限温度值设为23.0℃。确定后,因当前温度值低于下限温度值,电风扇停止,数码管显示 22.1℃-P。然后用手捏着DS18B20,显示温度逐步上升,当达到下限温度值23℃时,继电器K4吸合,电风扇接通低速档,数码管显示23.X℃-L。温度继续的上升,当高于25℃时,继电器K3吸合,电风扇切换到高速档,数码管显示25.X℃-H。当手移开DS18B20,温度下降,低于 25.0℃时,又切换到低速档。当低于23.0℃时,关闭电风扇。

按设置键S3三次,可切换到手动控制模式。此时数码管显示当前温度值。此时可通过手动调节定时器和调速开关控制电风扇的风速。再按S4时,又切换到智能温控模式。

经实验测试表明,该系统实现了预期的控制功能。

5.结束语

该系统利用 AT89S52单片机实现的智能温控电风扇控制系统,性能可靠,控制准确,成本低,解决了人们手动操作的麻烦,具有重要的应用价值。如将电路和程序稍作修改,还可以实现其他一些控制功能,如大棚温度控制、电动机温度检测、加热炉、热处理炉和锅炉温度检测等,系统移植性强,控制方便。

[1]刘绿山,刘建群,李仕勇,等.基于AT89S52单片机的温控系统[J].微计算机信息,2007,(17).

[2]吴金戍,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2002.

[3]荣俊昌.新型电风扇原理与维修[M].北京:高等教育出版社,2004.

[4]明德刚.DS18B20在单片机温控系统中的应用[J].贵州大学学报(自然科学版),2006,(1).

[5]马云峰.单片机与数字温度传感器DS18B20的接口设计[J].计算机测量与控制,2007,(4).

[6]孟武胜,李亮.基于AT89C52单片机的步进电机控制系统设计[J].微电机,2007,(3).

猜你喜欢
电风扇数码管温控
不要用笔去玩电风扇
微课教学设计之“数码管动态显示”
温控/光控片上纳米裂结
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
飞转的电风扇
电风扇
基于MSP430和Android温控距控智能电风扇设计
骨料自动温控技术