一、引言
随着电子技术的不断发展, 家庭中的许多电器设备如彩电、冰箱、空调等都已贴上了智能化的标签, 为提高人们的生活质量做出了贡献。但遗憾的是, 居室的眼睛---窗户, 却迟迟未跟上时代的步伐。即使是在众多的智能化生活小区, 我们都可以发现, 几乎所有的窗户的管理仍然处在原始管理方式, 与电子技术毫不沾边, 更不用说智能化了。如果使窗户具有一定的智能, 如下雨则自动关、室内有害气体超标则自动开、有盗贼入内则自动报警等, 就会给人们的居家生活带来诸多方便, 从而进一步提高人们的生活质量。
沿着这样的思路, 我们设计了以AT89C51单片机为中央控制器的智能窗控制系统。
该控制系统能通过其数据检测传感电路不断循环检测室内温度、湿度、有害气体(如媒气) 浓度等环境参数,然后与由控制键盘预置的参数临界值相比较, 从而作出开/关窗、转动/停止换气扇、降/升温(湿) 等判断, 再结合窗状态检测电路所检测到的窗状态, 发出一系列的控制命令, 完成下雨则自动关窗、室内有害气体超标则自动开窗(同时转动换气扇) 、恒温(湿) 等自动控制功能。人们还可通过控制键盘, 直接控制窗户的开/关、换气窗的转/停、温(湿) 的升/降、选择所显示参数的种类等。
二、系统组成和部分电路设计
本控制系统主要由AT89C51单片机组成的中央控制器, 数据检测传感电路,A/D 转换器, 窗驱动控制接口电路、窗驱动电路等组成。其系统框图如图一所示。
图1 系统框图
中央控制器
中央控制器以美国ATMEL 公司的AT89C51单片机为核心。
1. AT89C51 单片机系统具有设计简单、性能可靠、功耗低等优点。它为用户预留下足够的软、硬件资源, 可供用户进行再开发应用。该系统除内部已有的4K Flash 存储器外, 还可以扩展选址64KROM区和64KRAM区, 供用户使用。用户在系统开发时, 可以将自己的数据块和程序段、数据表, 以若干控制子程序、数据块形式存放于AT89C51 单片机的扩展ROM或RAM区中, 以便系统工作时重复使用和反复调用。由于本应用系统主要用于温度、湿度、有害气体识别、防盗安全的定点和多点测试, 片内4K Flash 存储器已能满足系统设计要求。
2. AT89C51 单片机机有三级程序存储器加密。利用该功能可防止别人非法复制程序, 从而保护知识产权。
3. AT89C51 单片机还为用户预置了P0、P1、P2、P3 四个并行I/O 口, 为该系统的数据采集和控制提供了足够的端口资源。
4. AT89C51 单片机还为用户提供一组全双工串行数据传输端口, 可用于单片机系统间的远程数据信息交换。
本系统采用P0 数据采集、控制端口, 完成控制信息的采集和控制功能。
P110~P113 作为窗状态检测端口, 完成对窗状态(即窗是否移到边框) 的检测。
数据检测传感电路
数据检测传感电路由四个部分组成: 1) 温度传感电路; 2) 湿度传感电路; 3) 有害气体传感电路; 4) 红外防盗传感电路。
为了讨论问题方便, 我们以温度传感电路为例进行分析。通常, 在自然情况下, 窗户的开关与生活环境和人体的舒适度有关, 温度的测试是该系统设计的关键。为了较好地测出温度参数, 我们选用集成温度传感器AD590(可测-55~+150 ℃) , 其温度检测完全可以满足要求。基本电路如图二所示。
图2 基本电路
A/D 转换器
为了便于与AT89C51 单片机相连接, 同时又有利于系统设计,A/D 转换器选用了ADC0809.其分辨率为8 位,不必进行零点和满度调整。单一电源( + 5V) 供电, 模拟量输入范围0 -5V.转换速度取决于芯片的时钟频率。
时钟频率范围为10 -500KHZ.ADC0809 有八路模拟量输入, 在本系统中只用4 路输入, 即可完成温度等4 种被测模拟量的A/D 转换。利用单片机对FOH口的数据写启动A/D 转换器, A/D 转换结束ADC0809 的EOC 向AT89C51 发出中断请求信号, CPU 再响应中断请求信号, 通过对FOH 口的读操作, 读取转换结果并送到被测量的相应存储区。
在重新选择被测量(修改各相关指针) , 并再次启动A/D 转换后中断返回。A/D 转换器电路如图三所示。
图3 A/D 转换器电路
窗驱动电路
我们可以根据驱动信号与所控对象的关系, 将窗驱动电路分解为: 移窗驱动电路; 换窗驱动电睡; 窗锁驱动电路; 温度调节驱动电路; 湿度调节驱动电路; 换气扇驱动电路; 报警驱动电路等, 分别用它们去控制1 个对象。
窗状态检测电路
可考虑采用4 个开关型磁敏器件。外窗、内窗所对应的左、右墙框各1 个。在外窗、内窗的左、右边上与磁敏器件相对应的地方各贴上一小片磁铁。当小磁铁随窗户的移动而移近相对应的磁敏器件时, 该磁敏器件的输出信号从高电平变为低电平, 表示窗户已移到相应边上。
键盘输入及显示电路
可采用Intel 公司生产的8279 通用可编程键盘显示器接口芯片。利用8279 , 可实现对键盘显示器的自动扫描,并识别键盘上闭合键的键号, 大大节省单片机对键盘显示器的操作时间, 从而减轻单片机的负担。该键盘输入及显示电路具有显示稳定, 程序简单, 不会出现误动作等优点。
对于控制键盘, 可考虑采用微动开关制作并安装在窗户的固定边框上。通过控制键盘, 用户不但可设置各环境参数的临界值, 还可随意选择所显参数的种类, 并直接控制窗户的开/关、换气扇的转/停、温(湿) 的升/降等。
三、软件设计
该控制系统的软件主要由一个主程序和两个中断服务程序等所组成。
主程序
主程序的主要作用是在系统复位后对系统进行初始化, 如设置8279、ADC0809 等的工作方式和初始状态, 设置各中断的优先级别并开中断, 以及首次启动A/D 转换等, 然后向8279 循环送显示字符。
读键值中断服务程序
读键值中断服务程序的主要作用是在AT89C51 响应
中断(有键按下则产生该中断) 后, 读出键值, 并根据键值从P0 口依序发出相应的控制命令字, 完成相应的控制功能。该中断应设为高优先级。
循环检测及A/D 转换中断服务程序
该中断服务程序的主要作用是在AT89C51 响应
中断(A/D 转换结束时EOC 引脚输出高电平, 从而产生该中断) 后, 将A/D 转换结果送相应存储区, 然后判断该转换结果是否在上、下限值之间, 并根据判断结果依序发出相应的控制命令字, 完成相应的控制、报警功能。然后重新选择被转换量, 再次启动A/D 转换后返回主程序。
该中断应设为低优先级。并设为电平触发方式。
程序流程图如下:
图4 程序流程图