室内环境实时监测系统的设计与制作摘要:随着人民生活的改善和提高,对于室内空气要求越来越高,本设计利用单片机STC89C52控制相关的传感器来检测室内的环境,实时检测室内的温度,湿度,以及有毒等气体检测,根据各个传感器的工作原理,设计相关的电路,通过单片机来采集相关的各个传感器的变化,并在液晶屏上显示各种状态,而且通过手动按键进行相关的操作,来进行设置相关的变量,超过设置界限时,进行声光报警,提示家人进行相关的操作处理。关键词:温湿度、烟雾、监测、52单片机第一章绪论随着现代社会的节奏越来越快,同人们的生活的改善也越来越高,对于室内的家具摆设,空气检测等要求越来越高。比如人们会需要一个适宜的温度,不是太热,不是太冷。同时,人们对室内空气的要求更显重要,比如男人抽烟会使得室内烟雾弥漫,使用液化气也按难免会有泄露,这些气体都是对人体有害的。因此,把握室内的环温度、湿度、空气质量的度,来进行妥善调节,从而避免由于这些环境因素的超标对人体健康造成的伤害就显的尤为重要。所以为了人们的身体健康,同时有个一个更好的环境,并且为了能够达到提前未卜先知的功能,利用所学的知识设计了本作品:一个微型的室内环境监测器。简单的实时监测室内的温度,湿度,以及烟雾的超标等,本设计利用STC89C52单片机作为监测器的控制中心即CPU,用户它来控制相关的传感器。如温湿度传感器、烟雾传感器、液晶显示器等。以此来检测室内的环境。达到实时检测室内的温度,湿度,以及有毒气体的目的。使用者可以对监测系统进行相关的设置,限定温度、湿度、烟雾等环境因素的临界值。一旦某项指标超过所限定的临界值,这个系统可以自动的提醒家人进行相关的调节动作。例如,当温度高了,通过相关提示打开风扇、空调等。当湿度低了,通过相关提示喷洒水雾增加湿度。当有毒气体增多了,提示家人开窗通风并迅速关闭气体来源等。这样,系统在家人还没有发现危险到来之前就能够进行相关的提示操作,避免一定的危险事故的发生,从而达到监测报警实现未卜先知的目的。第二章总体系统设计2.1设计原理本设计的思路是根据单片机的工作原理,利用各个传感器的特性,设计相关的电路,用单片机来采集相关的各个变量,结合时钟芯片在液晶屏上实时的显示各种状态,并且通过按键进行相关的设置,超过设置界限时,进行声光报警。2.2设计方案方案1:采用STC89C52单片机作为控制核心,直接利用温湿度传感器采集温度和湿度,利用烟雾传感器来监测烟雾的危害程序,经过处理后直接传给单片机,单片机综合分析以后,送到LCD12864上显示,并且单片机结合时钟实时的显示状态,通过独立键盘来设置和调整时间,真题电路设计简单,具体模块框图如下:方案2:我们采用ARM7处理器作为系统的控制核心,利用温度传感器和湿度传感器来分别采集温度和湿度,经过高精度AD转换器,编程数字信号后传送给ARM处理并用TFT彩屏显示出来,并添加专门各种气体检测传感器来检测室内气体的密度等,同时我们加上高精度时钟芯片DS12C887来实时显示时间,便于实时检测,对于控制我们用矩阵键盘来输入信号,方便处理,不用不断单片机控制系统液晶显示电路温湿度传感器独立键盘报警控制模块电源模块烟雾检测电路实时时钟电路的按键盘。同时通过485串口把数据传给计算机来分析。具体框图如下:方案比较:方案1电路设计比较简单,对温度湿度要求不是很高的情况下,基本满足要求,而且可以实时显示,设置简单,软件调试比较简单,用在家庭中不但节约成本,而且操作方便,而方案2中我们选用ARM处理器,利用各种测量范围宽的温湿度传感器和高精度的气体传感器来检测室内的状态,这套方案对于要求比较高的场合比较用,特别是在工业场合上来检测室内的状态,并送到计算机进行分析,用在家庭中成本昂贵,综合比较方案1电路简单,测试范围满足要求,而方案2测试范围大,调试复杂,虽然精度高等优点,但是方案1更具有性价比和推广性,最后我们经过综合比较我们选用方案1。ARM处理器温湿度传感器AD转换模块时钟芯片矩阵键盘液晶显示电路报警控制电路电源模块485通信接口各种气体传感器第三章元件选型与电路设计3.1单片机最小系统3.1.1STC89C52型单片机简介STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其总控制电路如图3-1:图3-13.1.2STC89C52引脚功能介绍①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。④可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7根据原理我们制作了如下电路,单片机接线如下:STC89C52主要功能如表1所示。表1:STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能3.1.3系统的引脚接线根据其系统工作原理设计出如图3-2所示的引脚接线:图3-2根据52单片机的特点,我们采用12M晶振给单片机提供时钟信号,两个各加一个30pf的电容来稳定型号,由于52单片机是采用低电平复位,我们又在其旁边加了一个按键,便于手动复位,电路连接如图3-3:图3-33.2时钟电路3.2.1DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。3.2.2DS1302引脚功能介绍DS1302的引脚功能图如图3-4所示:图3-4DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向)。SCLK为时钟输入端。3.2.3DS1302工作原理操作时序DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如表2所示:表2:日历、时钟寄存器与控制字对照表寄存器名称765432101RAM/CKA4A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器1000010日寄存器1000011月寄存器1000100星期寄存器1000101年寄存器1000110写保护寄存器1000111慢充电寄存器1001000时钟突发寄存器1011111最后一位RD/W,为“0”时表示写操作进行,为“1”时表示读操作。DS1302内部寄存器列表如表3所示:表3:DS14302内部主要寄存器分布表寄存器名称命令字取值范围各位内容写读76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240AHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEARDS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COH~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如表1所示,最高位BIT7固定为1,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操作。物理上,DS1302的通讯接口由3个口线组成,即*RST,SCLK,I/O。其中*RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。具体的读写时序参考图3-5:但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的,而且一般数据写入有效是在上升沿,读出有效是在下降沿(DS1302正是如此的,但是在芯片手册里没有明确说明),如果不是特别确定,则把程序设计成这样:平时SCLK保持低电平,在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在SCLK保持为低电平的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。图3-5根据其电路特点我们设计电路图如图3-6:图3-63.3显示电路3.3.1LCD12864简介带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点