资源描述
某理工学院毕业设计基于单片机的教室灯光控制系统的设计 学 生:学 号:专 业:生物医学工程班 级:指导教师:某理工学院自动化与电子信息学院二O一三年六月34 / 39基于单片机的教室灯光控制系统的设计摘要:本文详细研究了大学教室的使用特点和照明需求及存在的问题,提出了一种基于单片机的教室灯光控制系统。该系统以AT89S51单片机作为控制模块的核心部件,采用热释红外人体传感器检测人体的存在,采用光敏三极管构成的电路检测环境光的强度;根据教室合理开灯的条件,通过对人体存在信号和环境光信号的识别与判断,完成对教室灯光的智能控制,避免了教室用电的大量浪费。系统还具有报警功能;同时还采用了软/硬件的“看门狗”等抗干扰措施。该系统可以满足各类院校对教室灯光控制的要求,很大程度的达到节能目的。 关键词:单片机;智能控制;热释红外传感器;X5045Design of Lighting Control System Based on MCUAbstract:This paper copiously studied using features, lighting requirements and the existing problems of the university classroom, at last a kind of lighting control system based on mcu of classroom was put forward. The system used AT89S51 microcontroller as a core ponent of the control module.It introduced pyroelectric infrared sensor to detect the existence of human body, andused circuit which constituted of photosensitive triode to detect the strength of environment lighting. The navar according to the resonable conditions of turning on classroom light and the identification of signal about environmental lighting and existing of human body, achieved the intelligent control of classroom lighting . At last, it avoid the waste of electricity. It also had alarming function, at the same time anti-interference measures such as the software / hardware watchdog was adopt. The system can meet institution requirements for classroom lighting control, largely achieved the purpose of energy saving.Key words: Microcontroller;Intelligent control;Pyroelectric infrared sensor;X5045 目录摘要ABSTRACT第1章引言11.1 课题研究的目的与意义11.2 采用智能照明控制系统的优势11.3 智能照明控制系统的研究现状21.4 本章小节3第2章教室灯光控制器简介与方案分析42.1 大学教室照明控制现状42.2 教室灯光控制器简介42.3 系统控制方案分析42.4 本章小节5第3章系统控制模块的硬件设计63.1系统控制模块的硬件构成63.2系统控制的主要硬件电路73.2.1系统主控电路73.2.2系统供电电路83.2.3系统复位电路93.2.4数据采集电路103.2.5系统时钟电路133.2.6继电器驱动电路153.2.7超时报警电路153.2.8按键控制电路163.3 本章小节17第4章控制模块软件设计184.1系统监控主程序模块184.1.1系统自检初始化184.1.2定时中断处理设计194.2数据采集模块204.2.1人体存在传感器的优缺点204.2.2数据采集软件的实现204.2.3人体存在传感器的抗干扰措施214.2.4人体存在传感器的安装要求214.3时钟模块224.3.1数据输入输出224.3.2时钟自检初始化234.3.3时钟程序设计254.4 系统工作总流程264.5本章小节26第5章系统调试运行及问题分析285.1单片机系统调试方法及步骤285.2主要问题分析30第6章 结束语31致谢32参考文献33附录34第1章 引 言1.1 课题研究的目的与意义能源问题和环境问题一直是人类社会面对的重大问题,特别是到了二十一世纪,对降低能耗和保护环境的要求更成了国家长期发展的重中之重,我国也提出了“节能减排”的号召。而在众多的能源问题中,电能的短缺是束缚经济发展和人民生活的重要能源问题之一。 据报道,用于照明的能源消耗占整个办公大楼能源消耗的20601,这部分能耗的多少很大程度上取决于照明的控制效果。在现代建筑的楼宇自动化系统中,照明控制也是其中一个重要分支。现代建筑对照明的要求很高,除了应该满足为建筑内人们在工作、学习、生活时对视觉环境的要求以外,还应该利用照明设备的不同类型及光线的变换为人们提供一个舒适、有美感的办公、学习和生活环境,此外,还应该提高能源的利用率,实现节能的目的2。而传统的照明系统由于其管理落后、能源浪费、舒适性差、布线复杂以及灯具寿命短3的缺点,己不能满足人们的这种需求,所以研究新型照明控制系统,对减少这部分能源消耗、减少环境污染,同时更好的满足人们对照明质量的要求,都有极其重要的意义。新型的照明控制系统主要指综合了照明、自动化控制、计算机技术、电力电子技术和网络技术等的智能照明控制系统。最根本的是通过充分利用自然光来减少人工照明带来的能源消耗45。1.2 采用智能照明控制系统的优势 传统的照明控制系统主要是由照明配电箱通过手动开关实现控制照明灯具通断的目的,或在照明回路中串入接触器,实现远距离控制6,在灯具的开关控制上采用手动开关,所以很大程度上依赖于人的主动性。而智能照明控制系统根据某一区域的功能、每天不同的时间、室外光亮度或该区域的用途来自动控制照明。它能充分利用自然光,实现照明管理智能化。具体来说其优越性主要表现在以下几个方面: (1)提高照明控制的智能化程度,使整个照明系统出现全自动状态,可以根据不同场合在不同时段中不同的情景需求,预先设定合适的照明效果,更加智能化和人性化。(2)减低电能消耗,有良好的节电效果,充分利用自然光作为光源,以人工光为补充,并结合室内的人员情况,只有在必需时才开启照明灯具,节能效果十分显著,一般可以达到30左右7。(3)改善室内工作环境,提高室内人员的工作效率。 (4)提高建筑物的照明系统管理水平,将传统的人为开关控制转换为智能化的管理,将大大减少大楼的运行、维护和管理的费用。总之,研究新型照明控制器及系统,对于节约照明用电,减少环境污染,满足人民群众日益增长的对照明质量、照明环境和减少环境污染的需要,建立优质高效、经济舒适、安全可靠、有益环境的照明系统有着极其重要的意义。1.3 智能照明控制系统的研究现状 目前国内几种常见的照明控制系统有以下几种: l、Dynalite智能照明控制系统 该系统主要由调光模块、开关模块、控制面板、液晶显示触摸屏、智能传感器、编程插口、时钟管理器、手持式编程器和PC监控机等部件组成。采用DyNet网络连接,DyNet是一个分布式智能化网络,使用RS-485通讯协议8。 系统的工作原理是:控制模块由微处理器控制,所有控制部件均互连在DyNet网络上,网络上每一个装置内的存贮器均存有操作所需的全部指令。用户利用控制面板按键选择一个预置场景是一种最简单的控制方式。每个调光器可以预置96个场景。利用时钟控制器也是一种常见的照明控制方式。另一常用设备是通用传感器,其由动静控测远红外跟踪、光度检测光电管和用于遥控的接收器组成。 2、C-Bus智能照明控制系统C-Bus系统是1994年由澳大利亚奇胜电气公司开发的,现已广泛用于很多国家和地区。C-Bus系统是一个二线制的总线型式的智能控制系统,主要用于对照明系统的控制。也可用于消防等系统中的联动控制,系统所有的单元器件(除电源外)均内置微处理器和存储单元,由一对信号线(双绞线)连接成网络。每个单元均设置唯一的单元地址并用软件设定其功能,通过输出单元控制各回路负载。输入单元通过群组地址和输出组件建立对应联系。当有输入时,输入单元将其转变为C-Bus信号在C-Bus系统总线上广播,所有的输出单元接收并做出判断,控制相应回路输出。控制方式包括场景控制、定时控制、红外线传感器控制、就地控制、集中开关控制和集中调光控制、群组组合控制、系统联动及广域控制。 3、ABB i-bus EIB智能安装系统 EIB智能系统由总线、总线电源、智能传感器(光线传感器、模糊开关、时间控制器、移动传感器)、智能开关驱动器和其他智能元件(逻辑模块总线耦合器)构成9。它是典型的现场总线系统,每个元件就是一个节点,这些节点连接在一根2芯双绞线介质的总线上,不分主从隶属关系实现相互之间的通讯从而实现控制和被控制。1.4 本章小节我国对教室灯光的智能控制尤为缺乏和不完善,依然是传统式的人工管理。各类大、中专院校不断扩招,教室也不断扩建,教室的用电负荷就不断加大,教室用电管理不善,造成学校电能浪费,这种的浪费与当今的节约能源理念相违背。再者,现代自动化程度不断提高,计算机技术的普及,灯光的管理也在朝着自动化、智能化方向发展。于是,开发简便、实用的教室灯光自动控制系统便具有重要的现实意义。第2章 教室灯光控制器简介与方案分析2.1 大学教室照明控制现状分析大学教室的用途,白天以上课为主,照明光源以自然光为主,人工照明为辅,用以补偿在阴天或有遮挡时教室里照度不足的区域;中午及晚上以学生自习为主,少数教室也用来上课,不管是上课或是自习,为了保护视力和提高学习效率,学生们均需要有良好的照明环境,但这些对照明环境的要求也造成一个直接后果,出现资源的浪费问题。所以,需要在保证教室照明要求的前提下,研究照明节能问题。要实现照明节能主要有两种方法:一种是选用高效照明光源或灯具,如节能灯。在保证照明质量的前提下,降低照明用电量的根本措施就在于提高照明设备的效率,即提高光源与灯具的效率;另一种是在现有照明灯具的基础上研究智能照明控制策略,即在充分研究照明对象的需求上,通过优化照明系统的运行来达到节能的效果10。在照明灯具方面,大学教室多采用荧光灯,采用直接照明的方式,比较满足现有的需求,所以本课题着重论述后面一种方法,改进照明控制策略和运行方式。2.2 教室灯光控制器简介教室灯光控制器可实现有效的教室灯光智能控制。其输入参数主要是人体存在信号和环境光信号等的外界因素,环境光的强度达到一定值时不开灯,环境光强度在一定阀值以下且有人存在时开灯,理论和实验证明用这种方式来对教室灯进行智能控制可以实现上述目标。教室灯光控制器一般安装在教室内避开电灯直射的位置,且人体传感器安置时应使人体活动方向与人体传感器中两个热释电元连线方向垂直,这样可使人体存在信号采集更加灵敏、可靠,同时还要尽可能避免外界风直接吹向人体传感器。2.3 系统控制方案分析该控制器以自然光强度和人体存在作为控制器的主要输入参数,能够实现自动与手动控制相兼容。首先,系统默认为自动控制,当按键模块感应到有键按下时,系统改为强制控制。然后,在自动控制模式下:当自然环境光较强光线足够时,无论人是否存在,都不开灯;在自然环境光较弱时,有人存在且超过一定时间,控制器自动打开电灯,直到人离开后再延时一定时间后关灯。同时,还可设置作息时间来控制,夜晚超过10点,若还有人存在,则关闭自动控制器的运行,改用开关来手动控制,以解决因特殊情况下,自动控制器的不人性化运行。该教室灯光控制器主要是由硬件和软件两大部分组成。硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器所要实现的各项功能,达到设计目的。2.4 本章小节整个系统的设计要求主要有手动和自动控制的选择,时间的控制及信息的采集。本章对信息的采集进行了简单的分析,信息来源主要有教室里自然光的强度和人的存在与否,并且采集信息的电路及其他各电路需要抗干扰能力强,防止误动作;安装、操作简单,维护方便;总体成本低这些特点。第3章系统控制模块的硬件设计考虑到本系统所安装的环境影响因素比较多,且教室控制设备中的人体存在传感器、光敏三极管等经常会因环境情形变化而不稳定,所以在设计过程中,电子元器件的选用、线路布置和设备的安放要充分考虑到抗干扰问题。3.1系统控制模块的硬件构成系统控制单元是以AT89S51单片机主控模块为核心,其它外围电路主要包括:环境光采集电路、时钟模块、人体存在传感器模块、看门狗模块、按键电路、EEPROM存储模块、超时报警模块、继电器驱动模块,其结构框图如图3-1所示。EEPROM 存储器模块AT89S51单片机最小系统环境光采集电 路看门狗模块人体存在传感器按键电路时钟模块图3-1被控灯具继电器驱动模块超时报警模块图3-1 系统控制单元结构图环境光模块采用光敏三极管来检测环境光的强度,有光照时,电阻减小,随着光照强度的减弱,电阻逐渐增大,把光信号转化成电信号,实现对光强度的检测。人体存在传感器模块采用HP-208是基于红外线技术的智能产品,实现对人体存在的检测。硬件时钟模块采用具有充电能力的低功耗,具有临时性存放数据的RAM寄存器的实时时钟芯片DS1302。该电路的接口简单、价格低廉、使用方便,被广泛的使用。系统数据存储及故障保护部分由X5045组成,X5045是一种串行通讯的512字节EEPROM,同时兼有看门狗和电源监控功能键盘模块。3.2 系统控制的主要硬件电路3.2.1 系统主控电路本课题是基于单片机的系统设计,所以针对单片机做了AT89S51与AT89C51的比较与选择如下: 1.程序存储器写入方式:二者的写入程序的方式不同,AT89C51只支持并行写入,同时需要VPP烧写高压。AT89S51则支持ISP在线可编程写入技术、串行写入、速度更快、稳定性更好,烧写电压也仅仅需要45V即可。 2.电源X围:AT89S51电源X围宽达45.5V,而AT89C51系列在低于4.8V和高于5.3V的时候则无法正常工作。 3.工作频率:目前AT89S51的性能远高于AT89C51,AT89S51支持最高高达33MHz的工作频率,而AT89C51工作频率X围最高只支持到24MHz。 4.市场价格:由于AT89C51已经全面停产,所以在市场价格方面,库存的AT89C51的批发价格要比AT89S51贵将近一倍. 5.兼容型:89S5*向下兼容89C5*,就是说用AT89S51可以替代AT89C51使用,同样的程序,运行结果相同。 6.加密功能:AT89S51为全新的加密算法,这使得对于AT89S51的解密变为不可能,程序的某性大大加强,这样就可以有效的保护知识产权不被侵犯。 7.抗干扰性:内部集成看门狗计时器,不再需要像AT89C51那样外接看门狗计时器单元电路。8.烧写寿命更长:AT89S51标称的1000次,实际最少是1000次10000次,这样更有利初学者反复烧写,减低学习成本。综合上面的几点区别比较,了解到AT89S51是一种低功耗,8位CMOS工艺处理器,具有8K在线可编程Flash存储器的单片机。其优势在于片内的Flash可多次编程,为在线编程提供了方便;片内有128字节的RAM,4KB的EEPROM,由于合理的安排使用片内RAM空间,所以没有片外扩展的RAM,使电路结构变得简洁。因此,个人认为本课题基于单片机的教室灯光控制系统的设计更适合选用AT89S51单片机作为本系统模块的主控芯片,该芯片的主要特征见如表3-1所示:表3-1AT89S51主要特征AT89S51引脚外围器件引脚说明P1. 0X5045SIX5045串行输入端P1. 1X5045SCKX5045串行时钟端P1. 2X5045CSX5045片选端P1. 3X5045S0X5045串行输出端P1. 4工作状态指示灯P1. 5DS1302CLKDS1302时钟线P1.6DS1302I/ODS1302数据线P1. 7DS1302RSTDS1302复位线P3. 0- P3. 1数据采集输入端P3. 3人体存在传感器输出信号端P3. 4超时报警信号输入端P3. 7光敏三极管输入信号端(1) 40(Vcc)20(GND)脚间的电压应有5V 。(2) 18、19脚分别与20脚间有1.72.5V电压 。(3) 9(RST)脚与GND间电压基本为0 。(4) 31(EA)脚与20(GND)脚间电压为5V 。3.2.2 系统供电电路系统采用+5V电压供电。本设计采用输出电压为9V的变压器。系统接通220V交流电源后,将220V交流电变压到9V,经过二极管全波整流、电解电容C1,C2滤波,再经正输出稳压器LM7805,为了缓冲负载突变,改善瞬态响应,输出端还采用了电容C3,C4,最后得到+5V的直流电压,用于给控制系统中单片机系统及其它外围电路的Vcc端供电。系统供电原理如图3-2所示。图3-2 供电原理图3.2.3 系统复位电路系统复位电路的作用是使系统得到充分复位,实现稳定可靠的工作。在单片机工作过程中,不可避免的会由于外界的干扰而产生程序跑飞、死机甚至造成整机瘫痪等情况。为了能够及时恢复单片机的工作,只能采用重新复位的方法,因此还应该在硬件设计中使用看门狗电路,这样在单片机发生死机的情况下,看门狗将产生一个复位信号给单片机,使单片机复位,重新执行程序。由于此次系统设计同时需要看门狗和EEPROM,所以本设计中使用芯片X5045。X5045具有三种常用的功能:看门狗定时器、复位控制和EEPROM11。这三种功能是集成在单个8引脚封装的CMOS器件内,将电源监控和看门狗功能以及高速三线非易失性存储器组合在一起,从而在很大程度上降低了系统成本并减少了对电路板空间的要求,X5045的引脚排列如图3-3。图3-3 X5045的引脚图 看门狗定时器的预置时间是通过X5045的状态寄存器的相应位来设定的。如表3-2状态寄存器所示,X5045状态寄存器共有6位。其中WD1、WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。表3-2 状态寄存器7654321000WD1WD0BL1BL0WELWIPWD1=0,WD0=0,预置时间为1.4S,WD1=0,WD0=1,预置时间为0.6S,WD1=1,WD0=0,预置时间为0.2S,WD1=1,WD0=1,禁止看门狗工作。看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。X5045硬件部分连接如图3-4。图3-4 系统看门狗电路系统看门狗电路由系统数据存储及故障保护部分组成,X5045是一种串行通信512字节的EEPROM,同时兼有看门狗和电源监控功能,X5045有三种可编程看门狗周期,上电和Vcc低于检测门限时,输出复位信号,X5045输出复位高电平有效,为了复位更加可靠,其复位输出端外接一个10K的上拉电阻,并与AT89S51的复位端相连。看门狗能在电源上电、掉电期间产生一个复位信号。该芯片还带有一个1.4s的看门狗定时器可用来监控单片机的工作。如果在1.4s内未检测到其工作,出现故障,内部定时器将使看门狗WD1处于低电平状态,为系统提供保护,避免死机、程序跑飞或进入死循环等意外的发生。3.2.4 数据采集电路针对本课题数据的采集,首先分析此次研究设计的背景是在校园教学楼的教室里,主要采集的参数有教室的环境光强度和人体存在与否。常见的环境光强度采集器件主要有光敏二极管和光敏三极管,考虑抗干扰的需要,选用灵敏度较高的光敏三极管。此外,人体存在传感器要求灵敏度高,可靠性强。本系统采用逻辑电平输出的HP-208型号的人体传感器。一、环境光采集电路光电传感器是一种能够将光转换成电量的传感器。采用的光敏三极管除了具有光敏二极管能将光信号转变成电信号的功能外,还有对电信号放大的功能。再无光照时三极管的穿透电流很小,为暗电流。有光照时,穿透电流增大,成为光电流。光电流的大小与光照强度成正比,于是在负载电阻上就能得到随光照强度变化而变化的电信号。因此光敏三极管灵敏度高,而且体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点。环境光采集电路原理图如图3-5所示。当教室内自然光光照强度高于一定程度时(即设定参数),则光敏三极管D6呈现低阻状态即小于1 K,三极管Q8的基极电压将增大,使三极管Q8饱和导通,就会使三极管Q8集电极输出低电平,不参与工作。当办公场所室内自然光光照强度小于一定程度时(即设定参数),则光敏三极管D6呈现高阻状态大于100 K,使三极管Q8截止,Q8的集电极输出高电平,参与电路工作。其中可变电阻R9是作为调节室内环境光光照强弱灵敏度参数的器件,其阻值的大小,将会是三极管Q8在不同的室内环境光照强度参数下导通,而R10、C9组成的电路是防止外界干扰而设计的,具有防干扰的作用。 图3-5环境光采集电路图二、人体存在传感器的工作原理自然界中存在的各种物体,如人体、木材、石头、火焰、冰等都会发出不同波长的红外线,利用红外线传感器可对其进行检测。根据工作原理,红外传感器分为热型和量子型两类,热型红外传感器也称热释电红外传感器或被动红外传感器。与量子型相比,热型的红外线波长X围较宽,价格便宜,并在常温下工作。量子型与热型的相反,而且要求冷却条件。本系统采用的是热释电红外传感器,人体存在传感器主要采用了红外传感器的原理,它是目前在防盗报警、火灾检测、自动门、自动水龙头、自动电梯、自动照明等场合,及非接触温度测量等领域应用最广泛的传感器。其原因为:被测对象自身发射红外线,可不必另设光源;大气对2-2.61Lm、3-51Lm、8-141Lm三个被称为“大气窗口”的特定光通量的红外线吸收较少,非常容易被检测;中、远红外线不受可见光影响,可不分昼夜进行检测。人体存在传感器的热释电红外探头的工作原理及特性如下:人体都有恒定的体温,一般在37,所以会发出特定波长10M左右的红外线,被动式红外探头就靠探测人体发射的10M左右的红外线而进行工作的。人体发射的10M左右的红外线通过菲尼尔滤波片增强后聚集到红外感应源上。红外感应源采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生有人体存在的信号12。1)这种探头是以探测人体辐射为目标的,所以热释电元件对波长为10M左右的红外辐射非常敏感。2)为了仅仅对人体的红外辐射敏感,在它的辐射照面覆盖有特殊的菲尼尔滤光片,使环境的干扰受到明显的抑制作用。3)人体存在的探测,其传感器包含两个互相串联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。4)一旦有人进入探测区域内,人体红外辐射通过部分镜面聚焦,并被人体存在传感器的热释电元接收,但是两片热释电元接收到的热量不同,不能抵消,经信号处理而输出有人体存在的信号。5)菲尼尔滤光片根据性能要求不同,具有不同的焦距(感应距离),从而产生不同的监控现场,视场越多,控制越严密。有人进入时,移动人体发出的红外线被红外传感器接收,则人体存在被感应,并输出高电平。若人体进入最不敏感移动方向时,人体传感器所体现的信号就不会理想,有时还会产生误动作,所以要特别注意人体传感器的安装方向。三、人体存在信号采集电路人体传感器HP-208基于红外线的智能产品,它的主要特性如下:(1)感应为全自动方式,人进入感应X围时输出高电平(高3.3V),人离开感应X围则自动延时关闭高电平,输出低电平(低0.3V),其高低电平利于采集; (2)采用可重复触发方式。即感应输出高电平后,在延时时间段内,如果有人体在其感应X围活动,其输出将一直保持高电平,直到人离开后才延时15s后将高电平变为低电平; (3) 人体传感器工作电压宽为DC3V-DC24V; (4) 人体传感器制作成锥面形状,感应X围大于小于140锥角,感应距离为7m以内; (5) 其静态电流小于50A,功耗低; (6) 工作温度介于-15和+70之间,适应性强; (7)灵敏度高,可靠性强。 人体传感器的1号引脚为电源信号端,3号引脚为地信号端,2号引脚为采集信号输出端。在电路设计中,为了使人体传感器的工作更加可靠,介于人体传感器的信号引脚2与地信号引脚3之间加一个6800pF的电容,另外人体存在传感器的信号引脚2与单片机的P3.3引脚相连,P3.3引脚再接一个100K的上拉电阻,增加人体存在传感器输出信号的可靠性,其电路原理图如图3-6。图3-6人体传感器电路图3.2.5 系统时钟电路根据教室灯光使用特性,该系统还应受到时间的控制,因此本研究还加入硬件时钟电路以保证系统的智能化运行。传统的时钟芯片,如MC146818、MC68H68T、LM8365等,这些芯片的引脚太多,体积大,占用的口线多。而现在流行的串行时钟芯片很多,如DS1302、DS1305、DS1307、PCF8485等,这些电路的接口简单、价格低廉、使用方便,被广泛的使用。考虑到本系统停电时需为时钟电路提供电源、且不占用太多单片机资源,本系统采用美国DALLAS公司推出的具有充电能力的低功耗18的用于临时性存放数据的RAM寄存器的实时时钟芯片DS1302。此芯片采用的是串行通信方式,可为掉电保护电源提供充电功能,也可以将此功能关闭。该芯片对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V13。DS1302只需三根线即可与单片机进行通信,体积小,使用简单,时钟精度较高14,满足系统的要求。可为掉电保护电源提供可编程的充电功能的时钟芯片DS1302的引脚图如图3-7所示。图3-7 DS1302的引脚图DS1302与单片机接口电路连接原理图如图3-8,其中Vcc2外接3.6V可充电的锂电池,为DS1302的备用电源。Vcc1外接系统供电模块的输出稳定电压+5V,为DS1302的主电源。DS1302由Vcc1和Vcc2两者中较大者供电。当Vcc1大于Vcc2+0.2V,由Vcc1给DS1302供电,系统正常运行;在主电源关闭的情况下,Vcc1小于Vcc2,由Vcc2给DS1302供电,保持时钟的连续运行。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送,与单片机的复位信号相连。时钟输入端SCLK接单片机P1.5引脚,进行时钟控制。数据输入/输出端I/O接单片机P1.6引脚,进行数据传输。图3-8 DS1302与单片机接口电路连接图3.2.6 继电器驱动电路继电器驱动接口电路如图3-9所示,这里继电器由相应的PNP型号的9012三极管来驱动。开机时,单片机初始化后的P3.5/P3.6 为高电平,三极管截止,所以开机后继电器始终处于释放状态。如果P3.5/P3.6 为低电平,三极管的基极就会被拉低而产生足够的基极电流,使三极管导通,继电器就会得电吸合,从而驱动负载,点亮相应电灯。继电器的输出端并联100的电阻和6800pF电容,目的是避免继电器吸合与释放期间产生火花。继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单。图3-9继电器驱动电路3.2.7 蜂鸣报警电路在教室中,若采用手动方式控制时,一方面由于学生及管理人员的疏忽,教室里没有人而灯还亮着,导致教室灯工作超时,能源浪费。于是本系统采用蜂鸣报警电路,以声音的方式来教室无人并关闭电源;另一方面由于学生学习紧X,在夜里忘了时间点,学习期间开灯时间过长,致使教室灯工作超时,于是本系统蜂鸣报警电路就会发出声音,在晚上10点时提醒学生应该休息或必须改用手动强制控制灯了。这样,还可以更好的保护公共设施。本系统采用超时报警的电路如图3-10所示,单片机的P3.4端口外加一个10K的上拉电阻,在经过限流电阻100与三极管C945的基极相连。当P3.4端口为低电平,即基极为低电平时,三极管导通,驱动蜂鸣器发出声音,以示教室灯工作超时。若P3.4端口为高电平,即基极为高电平时,三极管截止,蜂鸣器不工作,教室灯工作正常。本系统采用超时报警电路方便了管理人员对教室的管理,能够更好地、及时地管理教室。图3-10 蜂鸣报警电路3.2.8 按键控制电路按键控制电路如图3-11所示。按键的输入信号分别接到P2.0,P2.1,P2.2,P2.3,用二极管和与门电路将按键信号引到外中断0的引脚P3.2。按键控制电路采用单片机P2口的低4个口作按键的输入信号端,信号取自电阻的分压。当按键未按下时,P2.0P2.3端口的电压接近电源电压,为高电平,当某一按键按下时,对应端口被按纽开关短接到地,为低电平。单片机检测4个端口电平的变化,从而确定是哪个键被按下。键盘工作方式采用中断扫描方式,4个二极管和10K电阻组成与门电路,当任一键按下时,与门输出P3.2引脚的电平都会由高变低。P3.2第二功能是外部中断0的输入引脚,我们利用其电平的变化产生中断,在中断服务程序中读入P2口低4位信号,确定哪个键按下,执行相应的按键功能,0.1pF电容和10K电阻组成滤波电路,消除按键的抖动。 图3-11 按键控制电路3.3 本章小节针对本研究设计的任务要求,本章首先对主控芯片单片机进行了比较选取,最终选取了在大学期间学习的较为熟悉且功能强大的AT89S51单片机,然后分别对外围电路各大模块(按键控制、时钟控制、环境光采集、人体存在传感器等等)进行了具体的研究分析,阐述了它们的工作原理,完成了教室灯光控制系统的硬件部分设计。第4章 控制模块软件设计在单片机硬件系统的基础上,再配上相应的软件,才能构成一个完整的系统。用户软件的开发与系统硬件有着密切的关系。在系统的硬件及输入输出的方法确定后,程序软件就可以完全独立的进行设计、开发。4.1系统监控主程序模块监控程序按模块分为监控主程序和命令处理子程序15。监控主程序的基本任务是调用子程序,一个主程序可以调用多个子程序,对于51系列单片机,系统资源有限,主程序通常是一个无限循环的过程,即是一个反复调用子程序的过程。子程序主要分为中断子程序和功能子程序,它们之间可以互相嵌套和调用,即中断子程序可以调用功能子程序。在应用软件的设计中,尽可能各个功能模块写成子程序的形式,并通过主程序调用。而命令处理子程序完成各种命令所规定的具体操作,它按各种命令再分为不同的子程序模块,它的编程方法与功能要求及系统应用密切相关。监控主程序是整个控制系统的核心部分,其它外围模块一般都需经过监控模块实现其在控制系统中的作用。监控主程序接受和分析来自键盘的命令,进而把控制转到相应的处理子程序的入口,起引导作用。本系统监控主程序模块主要包括对系统外围器件输入、输出参数的初始化自检,看门狗的激活,多任务操作模块的调用(系统中的信号采集处理、时钟管理、按键接收处理),实时中断处理等。除初始化和自检外,监控主程序一般总是把其余部分连接起来构成一个无限循环,系统所有功能都在这一循环中周而复始的有选择的执行16。4.1.1 系统自检初始化系统自检初始化是保证整个控制系统能够正常运行的重要条件,系统加电复位后,直接进入自检初始化程序,完成系统的自检及初始化。本系统中的自检初始化主要指各接口芯片的检测、芯片内部设定参数的初始化及系统内部寄存器的初始化。各接口芯片的检测主要检测各芯片是否已处于准备工作的就绪状态,有无硬件故障等,如检测硬件时钟DS1302是处于更换芯片后初次使用未起振状态,还是处于备用电源供电振荡保持状态,即检测系统中控制时间表的有效性,检测热释红外传感器输出信号是否正常体现人体存在的信息,检测光采集电路输出的信号等。若时钟芯片处于启动状态,则需要对其进行初始化并启动实时时钟。系统内部寄存器初始化主要是指在数据缓冲区内,各用户定义的数据变量的初始化赋值及部分特殊功能寄存器SFR的复位初始化,单片机复位后,程序计数器PC指向程序存储器的入口地址0000单元,程序状态字寄存器PSW清零,片内存储器选择区工作寄存器,用户标志位F0为0状态,堆栈指针SP指向07H,其它定时器、中断允许寄存器IE,累加器ACC等皆为00H。4.1.2 定时中断处理设计定时中断是利用单片机内部的定时器定时,时间到或计数值已满引起的中断,内部定时器的计数器可以对内部时钟或从外部引线T0和T1输入的外部脉冲进行计数。计数器的溢出信号作为中断请求信号,去置位定时器溢出标志位,向单片机的CPU申请中断17。定时中断为周期性中断,每隔一定的时间会中断一次。本系统中设定的定时中断主要用来构造多任务操作系统,在系统响应中断后,无需对断点实施现场保护,可直接进行多任务时间的划分工作,使相应的操作任务进入就绪状态,即该中断可以启动有关的任务操作。该定时中断处理程序框图如图4-1所示:开始定时中断到?Y多任务时间启动划分N下一步图4-1定时中断处理程序框图本系统还采用了外部中断,此外部中断主要用来判断是否有外来信号输入,若有,就采集下来并加以处理;若无,则返回到主循环。4.2 数据采集模块本控制系统中的数据采集对象为环境光信号及人体存在信号,在程序设计中对这两个数据的采集放置在多任务模块中实施定时采集。4.2.1 人体存在传感器的优缺点人体存在传感器具有本身不发出任何类型的辐射,器件功耗很小,隐蔽性好,价格低廉的优点。而缺点是容易受各种热源、光源干扰。由于红外穿透力差,因此人体的红外辐射容易被遮挡,不易被探头接收;易受射频辐射的干扰;当环境温度和人体温度接近时,探测和灵敏度就会明显下降,甚至造成短时失灵。如果人体存在却在一定时间内没有活动,人体传感器则认为没有人体存在。为避免这种现象的出现,本系统软件程序中设计为有人体存在状态后间隔1min或更长的时间来对人体存在参数信号的采集。4.2.2 数据采集软件的实现本系统的控制对象为大学教室,教室中一般只有一边有窗户,室内不同区域由于距离窗户的远近不同会影响其接收的光照多少。要合理控制教室内的照度,必须科学探测室内自然光的照度。而自然光的变化有明显的非线性,是与天气的变化和建筑物的不同位置有密切关系的。所以,必须合理布置自然光采集电路模块的位置,才可以更好的反映实际情况。教室中,电能的浪费很大一部分原因是由于室内长明灯的出现,即在室内自然光照充足的情况下,照明灯具仍然开启的情况。考虑到环境光足够亮时,无论是否有人体存在都不开灯;而环境光不够亮时,有人体存在才开灯,无人体存在则不开灯。本系统逻辑定义为:环境光亮时为逻辑0(符合光采集电路输出信号状态),暗时为1,人体存在为1,人体不存在为0,开灯为1,关灯为0,那么环境光与人体存在可以用以下的逻辑关系表来表示,如表4-1所示:表4-1 环境光与人体存在逻辑关系环境光参数人体存在参数教室灯状态000100010111表4-1数据表明可将环境光参数与人体存在参数进行与操作,又由于继电器是低电平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯的状态,其软件程序为:Function: BodySensor and light to light port356DoSensLight: Mov c,port33 ;Signal of SensorAnl c,port37Cpl c ;have person and no lightmov port35,c ;on relay 1mov port36,c ;on relay 2Jnc SensOut ;no person to outHaveperson: Mov SensDelayBuf,#5 ;delay 5 minuteSensOut: Ret4.2.3 人体存在传感器的抗干扰措施人体存在传感器易受外界影响,于是要在使用时特别注意抗干扰性能。1.防小动物干扰:探测器安装在推荐的使用高度,对探测X围内地面上的小动物,一般不产生信号。2.抗电磁干扰:探测器的抗电磁波干扰性能符合GB10408要求,一般手机电磁干扰不会引起误报。3.抗灯光干扰:探测器在正常灵敏度的X围内,受3m外H4卤素灯透过玻璃照射,不产生信号。4.2.4 人体存在传感器的安装要求人体存在传感器只能安装在室内,其误报率与安装的位置和方式有极大的关系,正确的安装应该满足下列条件:1.人体存在传感器应离地面2.0-2.2m。2.人体存在传感器远离空调、冰箱、火炉等空气温度变化敏感的地方。3.人体存在传感器探测X围内不得隔屏、家具、大型盆景或其它隔离物。4.人体存在传感器不要直对窗口,否则窗外的热气流扰动和人员走动会引起误报,有条件的最好把窗帘拉上。人体存在传感器也不要安装在有强气流活动的地方。实际使用中,人体存在传感器前面必须安装菲尼尔透镜。菲尼尔透镜是一种由塑料制成的特殊设计的光学透镜,它用来配合热释电红外传感器达到提高接收灵敏度以提高检测距离及X围的目的。可增加到10M以上,甚至可达20M以上。人体存在传感器对人体的敏感程度还和人的运动方向有很大关系。人体存在传感器对于径向移动反应最不敏感,而对于横切方向(即与半径垂直的方向)移动最为敏感。在现场选择合适的安装位置是避免红外探头的误报、求得最佳检测灵敏度极为重要的一环。4.3 时钟模块在系统启动自检初始化时,首先会对时钟芯片DS1302的运行状态进行判断,当检测到DS1302处于启动状态时才对其进行初始化,启动时钟。实时时钟芯片DS1302的初始化及其读写程序设计的关键是要遵循其时序要求。4.3.1 数据输入输出在对DS1302进行各种操作之前,必须先对其初始化,即需要把复位输入RST端置为高电平,如果RST输入为低电平,那么所有的数据传送终止,且I/O引脚变为高阻抗状态。在数据读/写完之后,RST端应置为低电平,以防止外部干扰对DS1302内部时钟的影响。同时,为了防止复位输入端受到外部干扰,要求上电时,在主电源引脚Vcc2大于等于2.5V之前,RST必须为逻辑0。无论是读操作还是写操作,都必须在开头的8个时钟周期把提供地址和命令信息的8位数据装入到DS1302的移位寄存器。地址/命令字节用于指明40个寄存器中的哪个进行何种操作。数据在SCLK的上升沿串行输入,在开始的8个时钟周期把命令字装入移位寄存器之后,若跟随的是写命令字节,则在下8个SCLK周期的上升沿输入数据字节,若跟随的是读命令字节,则在下8个SCLK周期的下降沿输入数据字节。程序流程如图4-2所示:启动复位端变高启动一次数据传输工作写命令字节一位SCLK脉冲N够8次吗Y写数据字节一位SCLK脉冲N够8次吗Y复位端变低结束图4-2数据输入输出流程图4.3.2 时钟自检初始化在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。考虑刚买来的时钟芯片处于一切未知状态,于是必须对DS1302进行自检初始化。DS1302的自检初始化程序设计流程图如图4-3所示:开始读取DS1302秒钟时间Y秒钟大于60HN延时1秒再次读取秒钟数据YN设置DS1302初始时间再次读取的秒钟数据是否相同返回主程序DS1302正常工作图4-3 DS1302的自检初始化程序设计流程图DS1302的自检初始化程序如下所示:Function:Start check DS1302DSCheck: Mov R6,#DS1302Sec+1 ;Second TimeACall DSRd1ByteMov DSCheckData,aCjne a,#60H,$+3DSCheckNext:Jnc DSSetTime :a=60H to Set DS1302s TimeAcall DSDelay ;DS1302 delay 1 secondMov R6, #DS1302Sec+l;a59H Read DS1302s Second againACall DSRdlByteCjne a,DSCheckData,DSOK;Two DSSec of Reading is differentAJMP DSSetTimeDSOK: Ret检查DS1302芯片是否是正常工作,本系统中通过先读取秒钟寄存器的数据,将数据存储起来,且将此数据与60H相比较,若大于60H,说明时钟数据不正常,转去设置时钟时间;若小于或等于60H,延时一秒钟后,再次读取秒钟寄存器的数据,与第一次读取的数据相比较,若两次数据相同,说明时钟数据不正常,转去设置时钟时间;若正常,则退出到主程序。初始化DS1302的充电状态及其初始时间的设置。4.3.3 时钟程序设计变量初始化对DS1302进行读写的程序流程图如图4-4所示:写DS1302地址RST一端送高电平结束将读出的数据暂存数据读完了将该地址数据输出写入DS1302读地址RST一端送高电平去除写保护将DS1302写保护开始数据写完了向该地址写入数据图4-4 DS1302进行读写的程序流程图在对DS1302进行读写操作时,读出的数据为BCD码,同样在写操作时,写入的数据必须为BCD码,这就需要在数据写入之前、读出之后进行必要的数据进制之间的转换。本系统中,因设定的时间参数一般为二进制或十六进制数,为了便于同DS1302的时钟数据进行比较,故在程序中需进行二进制与BCD码之间的转换,其相互间的转换程序如下:二进制转换为BCD码Function: DisTimeBCD:DisTimeBCD: Mov A, R0Anl A, #OFHMov Rl,AInc RlMov A, R0Swap AAnl A, #0FHMov R1,AInc RlInc R0Ret4.4 系统工作总流程本系统教室灯光控制的工作模式分为自动控制和强制控制。首先,系统默认为自动控制模式。当系统进入初始化后,自诊断键盘是否按下,若有键按下,系统进入强制控制模式,然后通过键盘扫描程序,确认控制灯具的亮与熄;若无键按下,则为自动控制模式,通过自然光采集电路从P3.7口的高低电平判断自然光强度,若光强,则熄灯具;若光弱,则继续读取人体存在传感器P3.3,如果有人存在则亮灯。最后,在亮灯时,若检测教室已经无人,则蜂鸣报警10秒后熄灯具。灯具的亮与熄由继电器驱动P3.5/P3.6口的高低电平来控制。另外,系统也受到时间的控制,分析了学生教室的用电情况,系统在到了晚上10点时,蜂鸣报警提示学生系统进入手动强制模式,则由学生自动控制。系统的总流程框图如图4-5所示:4.5 本章小节本章结合此次教室灯光控制系统设计的硬件部分分析研究了其软件部分,主要包括:系统监控主程序模块、数据采集模块、时钟模块。在程序设计过程中,采用合理的程序设计结构是一项关键技术。在本系统的设计过程中,总体设计采用自上而下的设计思想将主程序设计好,而在各个部分展开成从属程序或子程序时,是将各个小模
展开阅读全文