罗 敏,刘 嵩,彭刚彬
(1.湖北民族学院理学院,湖北 恩施 445000;2.湖北民族学院信息工程学院,湖北恩施 445000)
随着科技的发展和人们生活水平的提高,人们对于室内环境的安全性和舒适性提出了更高的要求,需要实时的监测室内的温度、湿度、空气质量等环境参数.由于单片机具有功耗低、价格低廉、设计简单等优点,本文以STC89C516单片机为核心处理器,结合温湿度传感器和烟雾传感器等,设计了一个室内环境监测系统.
本文系统选用的单片机是STC公司生产的89C516单片机.STC 89C516是采用8051内核的在线可编程器件,工作频率范围在0到35 MHz之间.芯片片内集成了传统的8位处理器ISP Flash存储器,拥有40个引脚,其中有32个I/O口可供用户使用,它具有5个中断源,还可扩展外部程序存储器[1].
系统的总体结构如图1所示.系统以单片机为核心,包括温湿度测量模块、烟雾测量模块、时钟模块、电源模块、显示模块以及控制与报警模块.其中,时钟模块为系统提供实时时间,显示模块显示系统测量的环境状态,控制与报警模块提供环境状态的警戒阈值和声光报警功能.
图1 系统的总体结构Fig.1 General block diagram of the system
时钟电路为整个系统提供实时时间,本系统选用的时钟芯片是DALLAS公司的DS 1302.DS1302芯片内部拥有数据存储器,具有主电源、后备电源的双电源引脚,即使突然断电,时钟的当前数据信息也不会丢失[2].DS1302时钟电路设计如图2所示,DS 1302的VCC1接后备电压为3V的纽扣电池,VCC2接5V主电源,GND接电源负极.DS1302芯片的引脚X1和X2之间接入一个晶振,晶振大小为32.768 kHz.RST为片选端,接单片机的P2.2口.I/O为串行数据输入输出端,接单片机的P2.1口,SCLK为时钟输入端,接单片机的P2.0口.
系统选择的温湿度传感器是DHT 11,DHT 11温湿度传感器是一种数字型传感器,DHT 11内部自带由校准系统,与DS18B20温度传感器比,具有可以同时测量环境的温度和湿度的优势[3-4],接线方式也较为简单,其硬件电路如图3所示.在设计中,DATA端口接STC 89C516的P1.0口,为了稳定输出信号,DATA端口接一个4.7 K上拉电阻.当处理器向DHT 11发送启动信号后,温湿度传感器被唤醒,随后DHT 11转到正常运行模式;当启动信号结束后,DHT 11向处理器STC 89C516发送响应信号,然后采集的40位的温湿度数据,用户可根据这40位数据得到当前的温湿度信息.DHT 11接收到处理器发送的启动信号后就启动一次数据采集,没有接收启动信号,DHT 11就会转到低功耗模式.
系统采用的是MQ-2烟雾传感器,主要监测对象有:CO、CH4、H2、CCL3F、C2H5OH 等[5].烟雾测量模块硬件电路如图 4 所示,PCF 8591是一种具有I2C总线接口的逐次比较型A/D及D/A转换芯片,AO端为烟雾传感器的模拟电压输出口,其接入模数转换器PCF8591的AIN0口.时钟口SCL和数据口SDA分别接P3.1与P3.0,实现与STC89C516的信号传输.
图2 时钟电路Fig.2 The clocking circuit of the system
图3 温湿度测量电路Fig.3 The measuring circuits of temperature and humidity
图4 烟雾测量电路Fig.4 The measuring circuits of smoke
系统的软件流程如图5所示,系统上电后,系统首先对LCD、定时器、端口进行初始化,然后进入程序循环阶段.在循环阶段,通过定时器延时实现线程的管理.在本系统中,由于所检测的环境状态变化比较缓慢,设置延时时间为120 s,而按键、时钟请求实时性要求较高,设置延时时间为1 s.
DS1302实时时钟有三个端口 RST、I/O、SCLK,其中,RST为片选端,只有当RST为“1”时,才能允许对DS1302进行读写操作.DS1302时钟寄存器的最高位决定小时制式.逻辑1为1 2小时制,逻辑0为2 4小时制,系统默认为2 4小时制.控制寄存器仅最后WP位有效,WP为低电平时,解除写保护;WP为高电平时,开启写保护[6].当通过按键调节时间时,必须首先通过软件打开写保护,时钟读取函数的部分程序如下:
图5 软件流程图Fig.5 Software flow diagram of the system
在时钟读取函数中,add为时间变量地址,*add为相应地址所对应的数值.当程序运行add++时,*add就对应下一个地址的数值,因此通过Re_Ds 1302()函数读出数据,再经过7次循环就可以分别读出年、月、日、周、时、分、秒等数据.
DHT11的数据传输的数据顺序为8位湿度整数数据、8位湿度小数数据 、8位温度整数数据、8位温度小数数据、8位校验数据[7].P1.0口输出低电平后,至少需延时18毫秒,才能保证DHT11温湿度传感器能检测到单片机发送的起始信号.部分读写程序如下:
本系统实现了一种以STC89C516单片机为核心处理器的环境监测系统,可以监控温度、湿度及烟雾等室内环境参数,通过选择不同的传感器也可以监控其它参数指标.实验结果表明,系统运行稳定,能准确的测量环境信息,而且成本低廉,可扩展性强,有一定的应用价值.
[1]耿涛,赵光,陶志勇.基于STC89C516单片机的数字光功率计设计[J].电子元器件应用,2008,10(11):8-10.
[2]李伟跃.基于时钟芯片DS1302的万年历的设计[J].科技创新导报,2012(9):20-21.
[3]杨庆.蔬菜大棚多点温度测控系统的设计与实现[J].湖北民族学院学报:自然科学版,2008,26(2):187-189.
[4]颜丽娜,王顺忠,张铁民.基于DHT11温湿度测控系统的设计[J].海南师范大学学报:自然科学版,2013,26(4):397-399.
[5]刘竹琴,白泽生.一种高精度可燃气体检测报警器设计[J].传感器与微系统,2013,32(7):71-73.
[6]李长有,王文华.基于DHT11温湿度测控系统设计[J].机床与液压,2013,41(13):95-97.
[7]姚德法,张洪林.串行时钟芯片DS1302的原理与使用[J].信息技术与信息化,2006(1):92-94.