基于单片机的教室灯光自动控制系统.doc_第1页
基于单片机的教室灯光自动控制系统.doc_第2页
基于单片机的教室灯光自动控制系统.doc_第3页
基于单片机的教室灯光自动控制系统.doc_第4页
基于单片机的教室灯光自动控制系统.doc_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业设计题目基于单片机的教室灯光控制器姓名刘锡秀 学号 029409300805院系工程技术学院电子工程系专业电子工程指导教师 职称 讲师 2011 年 11 月 1 日青岛黄海学院教务处制目录摘要3关键词3Abstract4Key words4前言51 教室灯光控制器简介及控制方案的分析61.1 教室灯光控制器简介61.2 系统控制方案的分析62 系统硬件设计62.1 单片机系统电路设计62.1.1 单片机的选型62.1.2 晶振回路设计72.1.3 复位电路设计72.2 系统时钟电路设计92.3 系统供电电路设计102.4 环境光采集电路设计112.5 人体存在传感器电路设计122.5.1 人体存在传感器工作原理122.5.2 人体存在传感器的特性与电路设计132.6 继电器驱动接口电路设计142.7 报警电路设计142.8 数码管显示驱动电路设计153 系统软件设计173.1系统监控主程序设计173.2数据采集模块程序设计183.3时钟模块程序设计193.3.1数据输入输出时序分析193.3.2时钟芯片DS1302内部寄存器的使用193.3.3时钟芯片自检及初始化程序设计203.3.4时钟芯片读写程序设计203.4显示驱动模块程序设计224 系统抗干扰措施224.1 系统硬件抗干扰措施224.1.1 人体存在传感器的抗干扰措施224.1.2 系统看门狗抗干扰措施234.2 系统软件抗干扰措施235系统调试运行及问题分析235.1单片机系统调试方法及步骤235.2出现的主要问题及分析解决246 结论25结束语26致谢 27参考文献28附录29基于单片机的教室灯光控制系统姓名 刘锡秀 指导老师 赵建平摘要:本研究针对教室灯光的控制方法,分析了教室灯光智能控制的原理和实现方法,提出了基于单片机的教室灯光智能控制系统的设计思路,并在此基础上开发了智能控制系统的硬件装置和相应软件。该系统以AT89S52单片机作为控制装置的智能部件,采用热释红外人体传感器检测人体的存在,采用光敏三极管构成的电路检测环境光的强度;系统通过对人体的存在信号和环境光信号的识别和智能判断,完成对教室照明回路的智能控制,避免了教室用电的大量浪费。系统还具有多种报警功能;同时还采用了软/硬件的“看门狗”技术等抗干扰措施。单片机软件采用汇编语言编制,采用模块化结构设计、通用性好,便于改进和扩充。 该系统具有体积小,控制方便,可靠性高,性价比合理等优点,可以满足各类大、中专院校教室灯光控制的要求,很大程度的达到节能目的。关键词:人体;红外线;传感器;自动控制;热释电Based on single-chip microcomputer control classroom light automatic controller Studengt majoring in Electronic Engineering liu xixiu Tutor Zhao jianpingAbstract: Currently light intelligent control systems are not efficiently used in the classroom. In order to improve the system, based on control and current methods of how to keep control.This classroom light intelligent control system the theory of the light put forward methods ofon the basis of AT89S52 is developed, which machine of AT89S52 is a maj. This system can satisfy the following functions, such as controlling the circuit of illumination. At the same time, the anti.jamming technologies, such as watchdog, are necessary when developing hardware and software.This system had many advantages. For example, the physical volume was small,the system was conveniently controlled, the credibility was high, the appropriation was strong. The experiment proved that the system can satisfy the control command of the classroom s light device, so it could largely reduce the consuming of energy resources. Key words: Lighting Control,Heat to release the electricity,Intelligent Control 前言随着社会经济和科学技术的发展,人们的生活水平也不断提高,导致用电负荷的加剧,又由于世界性的能源危机,能源缺乏已成为世界所面临的严峻问题,而此问题对我国来说尤为严重。随着各类大、中专院校的扩招,教室的扩建,教室照明的需求也越来越多,而教室照明的管理不到位,往往造成电能的巨大浪费,这样,提高教室用电效率就成为首要考虑的问题。目前对灯光的智能控制,国内外己经开始采用。但对教室灯光的控制,尤其是我国教室灯光的智能控制尤为缺乏和不完善,依然是传统式的人工管理。目前国内各类院校中,由于同学们的自觉节能意识薄弱,在光线足够强时也开灯,课上完离开教室后灯还亮着的现象普遍存在;而且,节能规划极为欠缺,教室的灯光控制由管理人员手工代替,教室极多,管理人员忙不过来。各类大、中专院校不断扩招,教室不断扩建,教室的用电负荷不断加大,教室用电管理不善,造成学校电能浪费,经济损失,这种的浪费与当今的节约能源理念相违背。再者,现代自动化程度不断提高,计算机技术的普及,灯光的管理也在朝着自动化、智能化方向发展,相对于从前的人工管理模式,这对节约电能也起到了一定作用。所有这些使得教室灯光控制也应该朝着智能化的方向发展。于是,开发简便、实用的教室灯光自动控制系统便具有重要的现实意义。基于以上种种原因,提高教室用电效率就成为学校节能的重要且主要的措施之一。本文就节能技术的重要手段之一也就是教室灯关自动控制系统的设计进行探讨,研究的教室灯光控制系统能用于现有教室照明系统的改造,实现对照明系统的人性化智能管理,提高用电效率,实现教室灯光的自动控制。1 教室灯光控制器简介及控制方案的分析1.1 教室灯光控制器简介教室灯光控制器可实现有效的教室灯光智能控制。其输入参数主要是人体存在信号和环境光信号等的外界因素,环境光的强度达到一定值时不开灯,环境光强度在一定阀值以下且有人存在时开灯,本文通过理论研究用这种方式来对教室灯进行智能控制可以实现上述目标。教室灯光控制器一般安装在教室内避开电灯直射的位置,且人体传感器安置时应使人体活动方向与人体传感器中两个热释电元连线方向垂直,这样可使人体存在信号采集更加灵敏、可靠,同时还要尽可能避免外界风直接吹向人体传感器。1.2 系统控制方案的分析所设计的控制器以自然光强度和人体存在作为控制器的主要输入参数。可以实现自动与手动控制相兼容。在自然环境光较强光线足够时,无论人是否存在,都不开灯;在自然环境光较弱时,有人存在且超过一定时间,控制器自动打开电灯,直到人离开后再延时一定时间后关灯。同时,还要按作息时间来控制,夜晚超过12点,若还有人存在,则关闭自动控制器的运行,改用传统的机械开关来手动控制,以解决因特殊情况下,自动控制器的不人性化运行.2 系统硬件设计本设计的硬件部分的系统控制单元是以单片机系统电路为核心,它包括单片机,晶振回路,复位电路等。而外围电路主要包括:系统供电电路、系统时钟电路、环境光采集电路、人体存在传感器电路、继电器驱动接口电路,报警电路、数码管驱动显示电路等。2.1 单片机系统电路设计2.1.1 单片机的选型本系统的主控模块主要采用ATMEL公司的AT89S52作为主控芯片。AT89S52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含有8K bytes的可以反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89S52单片机可以提供许多高性价比的应用场合。可灵活应用于各种控制领域。主要性能参数有:(1) 与MCS-51系列单片机兼容(2) 8K Bytes, Flash存储器,在线编程,可写1000次(3) 4. 0-5. 5V的工作电压(4) 自带2568bit RAM(5) 32个可编程I/0管脚(6) 3个16-Bit定时器/计数器(7) 8个中断源(8) 自带看门狗本设计选用ATMEL89系列的AT89S52单片机作为本系统的CPU。由AT89S52单片机为核心的单片机最小系统包括晶振电路和复位电路。AT89S52 I/O端口与系统其他外围器件接口的分配情况表如表2-1所示。表2-1 AT89S52 I/O端口与系统其他外围器件接口的分配情况表 89S52引脚外围器件引脚说明P0.0-P0.7ULN2803数码管段码驱动接口P2.0-P2.7NPN-9012基极数码管位控驱动接口P1.0X5045SIX5045串行输入端P1.1X5045SCKX5045串行时钟端P1.2X5045CSX5045片选端P1.3X5045S0X5045串行输入端P1.4系统工作灯显示端口P1.5DS1302CLKDS1302时钟线P1.6DS1302I0DS1302数据线P1.7DS1302RSTDS1302复位线P3.0-P3.1数据采集输入端P3.2光敏三极管输入信号端P3.3人体存在传感器输出信号端P3.4超时报警信号输入端P3.5-P3.6灯光驱动输入端2.1.2 晶振回路设计晶振回路的主要任务是为AT89S52单片机正常工作需要的内部时钟电路提供一个稳定的工作频率。根据AT89S52单片机时钟周期的要求,回路需要选用频率为12MHz的晶振。晶振回路由电容和陶瓷谐振器晶振组成。AT89S52内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL0和XTAL1,在XTAL0和XTAL1端口接上时钟电源即可构成内部时钟电路。在XTAL0和XTAL1两端跨接晶振,与内部的反相器构成稳定的自激振荡器。其发出的时钟脉冲直接送入单片机内定时控制部件。电容C5和C6对频率有微调作用。电容C5和C6应尽可能的安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定可靠的工作。2.1.3 复位电路设计复位电路的功能就是对CPU进行实时检测,当CPU进入死循环之后,能及时发现并使整个系统复位。虽然在程序设计中,可以使用软件陷阱的方法来减少这种情况的发生,但是不能完全解决这个问题,因此还应该在硬件设计中使用看门狗复位电路,这样在单片机发生死机的情况下,看门狗将产生一个复位信号给单片机,使单片机复位重新执行程序。现在的MCU被集成了越来越多的功能,有的集成了看门狗,如IMP813L。还有的芯片更是把EEPROM也集成进去,如X5045芯片。由于系统需要看门狗和EEPROM,所以本硬件设计中使用了美国Xicor公司生产的芯片X5045。X5045具有三种常用的功能:看门狗定时器、复位控制和EEPROM集成在单个8个引脚封装的CMOS器件内,将电源监控和看门狗功能与高速三线非易失性存储器组合在一起,从而在很大程度上降低了系统成本并减少了对电路板空间的要求,X5045的引脚排列如图2-1。 图 2-1 X5045的引脚排列看门狗定时器的预置时间是通过X5045的状态寄存器的相应位来设定的。如表2-2状态寄存器所示,X5045状态寄存器共有6位有含义。其中WD1 , WDO和看门狗电路有关,其余位和EEPROM的工作设置有关。表2-2 状态寄存器D7D6D5D4D3D2D1D0XXWD1WD0BL1BL0WELWIPWD1=0,WD0=0,预置时间为1.4S。WD1=0,WD0=1,预置时间为0.6S。WD1=1,WD0=0,预置时间为0.2S。WD1=1,WD0=1,禁止看门狗工作。看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。本系统中X5045的硬件连接图如图2-2所示。图2-2 X5045的硬件连接图 系统数据存储及故障保护部分由X5045组成,X5045是一种串行通讯的512字节EEPROM,同时兼有看门狗和电源监控功能,X5045有三种可编程看门狗周期,上电和VCC低于检测门限时,输出复位信号,X5045输出复位高电平有效,为了复位更加可靠,其复位输出端外接一个10K的上拉电阻,并与AT89S52的复位端相连。看门狗能在电源上电、掉电期间产生一个复位信号。该芯片还带有一个1.4秒的看门狗定时器可监控单片机的工作。如果在1.4秒内未检测到其工作,出现故障,内部定时器将使看门狗WDI处于低电平状态,为系统提供保护,避免死机、程序跑飞或进入死循环等意外的发生。X5045代表了新一代串行EEPROM的发展趋势,它的运用极大的节省了系统空间和资源,同时简化了电路设计,缩短产品开发周期。除了单片机,晶振回路,复位电路外,系统工作灯电路和数据采集电路共同组成了单片机系统电路,如图2-3所示。图2-3 单片机系统电路2.2 系统时钟电路设计根据教室灯光使用特性,该系统还应受到时间的控制,控制系统的时间应符学校的作息时间。比如晚间休息、假期等时间段应该关掉教室灯光控制系统,以节约能源,因此本研究还加入硬件时钟电路以保证系统的智能化运行。传统的时钟芯片,如MC146818、MC68H68T、LM8365等,这些芯片的引脚太多,体积大,占用的口线多。而现在流行的串行时钟芯片很多,如DS1302、DS1305、DS1307、PCF8485等,这些电路的接口简单、价格低廉、使用方便,被广泛的使用。考虑到本系统停电时只需对时钟电路提供电源、且不需要占用太多单片机资源,本系统采用具有充电能力的低功耗18 的用于临时性存放数据的RAM寄存器的实时时钟芯片DS1302。DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V-5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。DS1302的引脚排列如图2-4所示。图2-4 DS1302的引脚排列DS13O2与单片机接口电路连接原理图如图2-5,其中Vcc2外接3.6V可充电的锂电池,为DS1302的备用电源。Vcc1外接系统供电模块的输出稳定电压+5V,为DS13O2的主电源。DS1302由Vcc1和Vcc2两者中较大者供电。系统正常运行时,Vcc1大于Vcc2,因此由Vcc1给DS13O2供电,在主电源关闭的情况下,则由Vcc2给DS13O2供电,保持时钟的连续运行。Xl和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送,与单片机的复位信号相连。时钟输入端SCLK接单片机Pl.5引脚,进行时钟控制。数据输入/输出端I/0接单片机附1.6引脚,进行数据传输。图2-5 DS13O2与单片机接口电路连接原理图RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。硬件时钟芯片DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定助M数据;D5-D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。DS1302与以RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H-FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。要特别说明的是备用电源,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时一间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100F就可以保证l小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。2.3 系统供电电路设计要取得+5V电压,若选用12V的变压器,整流滤波后输出往往大于12V,会使稳压器功耗大,自身温度较高。故不选用输出电压为12V的变压器,而选用输出电压为9V的变压器。系统接通22OV交流电源后,将220V交流电变压到9V,经过二极管全波整流、电解电容C1、C2滤波,再经一只正输出稳压器LM78O5,为了缓冲负载突变,改善瞬态响应,输出端还采用了电容C3、C4,最后得到+5V的直流工作电源,用于给控制系统中单片机系统及其它外围电路的VCC端供电。其供电原理图如图2-6。图2-6 系统供电原理图在硬件时钟模块中,为了在断电后硬件时钟能够正常运行,故采用主从双电源供电方式。硬件时钟一般在系统的+5V主电源情况下工作,而只有系统+5V主电源消失的情况下,为确保硬件时钟的正常运行,设计一个3.6V的可充电锂电池作为备用电源。具体电路及其原理已在前面的系统时钟电路部分详细说明。2.4 环境光采集电路设计教室中的环境光和人体存在与否是系统的主要输入参数,因此教室中的环境光和人体存在成为系统数据采集的主要对象。常见的环境光采集器件光电传感器有光敏二极管和光敏三极管,根据需求,选用灵敏度较高的光敏三极管。光电传感器是一种能够将光转换成电量的传感器。采用的光敏三极管除了具有光敏二极管能将光信号转换成电信号的功能外,还有对电信号放大的功能。在无光照时三极管的穿透电流很小,为暗电流Iceo=(1+)Icbo。有光照时,产生的Ib增大,成为光电流Ie=(1+)Ib。光电流的大小与光照强度成正比,于是在负载电阻上就能得到随光照强度变化而变化的电信号。因此光敏三极管灵敏度高,而且体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点。环境光采集电路原理图如图2-7所示。当自然光强大于一定程度时,光敏三极管D6呈现低阻状态1K,三极管Q12的基极电压升高,Q12管饱和导通,集电极输出低电平。当自然光强小于一定程度时,光敏三极管D6呈现高阻状态1OOK,使三极管Q12截止,集电极输出高电平。其中可变电阻R26可调节,调节R26阻值的大小,使Q12三极管受环境光影响在适当的亮度下导通。图2-7 环境光采集电路原理图2.5 人体存在传感器电路设计自然界中存在的各种物体,如人体、木材、石头、火焰、冰等都会发出不同波长的红外线,利用红外传感器可对其进行检测。根据工作原理,红外传感器分为热型和量子型两类,热型红外传感器也称热释电红外传感器或被动红外传感器。与量子型相比,响应的红外线波长范围较宽,价格便宜,并可在常温下工作。量子型与热型的特点相反,而且要求冷却条件。本系统采用的是热释电红外传感器,人体存在传感器主要采用了红外传感器的原理,它是目前在防盗报警、火灾检测、自动门、自动水龙头、自动电梯、自动照明等场合,及非接触温度测量等领域应用最广泛的传感器。其原因为:被测对象自身发射红外线,可不必另设光源;大气对2-2.61Lm、3-51Lm、8-14lLm三个被称为“大气窗口”的特定光通量的红外线吸收甚少,可非常容易被检测;中、远红外线不受可见光影响,可不分昼夜进行检测。2.5.1 人体存在传感器工作原理人体都有恒定的体温,一般在37度,所以会发出特定波长10M左右的红外线,被动式红外探头就靠探测人体发射的10M左右的红外线而进行工作的。人体发射的10M左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生由人体存在的信号。(1)这种探头是以探测人体辐射为目标的,所以热释电元件对波长为10M左右的红外辐射非常敏感。(2)为了仅仅对人体的红外辐射敏感,在它的辐射照面覆盖有特殊的菲泥尔滤光片,使环境的干扰受到明显的抑制作用。(3)人体存在的探测,其传感器包含两个互相串联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。(4)一旦有人进入探测区域内,人体红外辐射通过部分镜面聚焦,并被人体存在传感器的热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,经信号处理而输出有人体存在的信号。(5)菲泥尔滤光片根据性能要求不同,具有不同的焦距(感应距离),从而产生不同的监控视场,视场越多,控制越严密。人体传感器透镜的信号采集敏感区示意图如图2-8所示。图2-8人体传感器透镜的信号采集敏感区示意图有人进入时,移动人体发出的红外线被红外传感器接收,则人体存在被感应,并输出高电平。若人体进入最不敏感移动方向时,则人体传感器所体现的信号就会不理想,有时还会产生误动作,所以要特别注意人体传感器的安装方向。2.5.2 人体存在传感器的特性与电路设计人体传感器HP-208是的基于红外线技术的智能产品,它的主要特性如下:(l)感应为全自动方式,人进入感应范围时输出高电平(高3.3V),人离开感应范围则自动延时关闭高电平,输出低电平(低0.3V),其高低电平利于采集;(2)采用可重复触发方式。即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时8秒-15秒后将高电平变为低电平;(3)人体传感器工作电压宽为DC3V-DC24V;(4)人体传感器制作成锥面形状,感应范围大,小于140度锥角,感应距离为7米以内;(5)其静态电流小于50微安,功耗低;(6)工作温度介于-150和+700之间,适应性强;(7)灵敏度高,可靠性强。人体传感器的1号引脚为电源信号端,3号引脚为地信号端,2号引脚为采集信号输出端。在电路设计中,为了使人体传感器的工作更加可靠,介于人体传感器的信号引脚2与地信号引脚3之间加一个68O0pF的电容,另外人体存在传感器的信号引脚2与单片机的P3.3引脚相连,P3.3引脚再接一个100K的上拉电阻,增加人体存在传感器输出信号的可靠性,其电路原理图如图2-9所示。图2-9 人体传感器电路原理图2.6 继电器驱动接口电路设计继电器驱动接口电路如图2-10所示,这里继电器由相应的PNP型号的9012三极管来驱动,开机时,单片机初始化后的P3.5/P3.6为高电平,三极管截止,所以开机后继电器始终处于释放状态,如果P3.5/P3.6为低电平,三极管的基极就会被拉低而产生足够的基极电流,使三极管导通,继电器就会得电吸合,从而驱动负载,点亮相应电灯。继电器的输出端并联100的电阻和6800pF电容,目的是避免继电器吸合与释放期间产生火花。每个继电器都有一对常开常闭的触点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单。图2-10继电器驱动电路图2.7 报警电路设计在教室中,若采用手动方式控制时,一方面由于学生及管理人员的疏忽,教室里没有人而灯还亮着,导致教室灯工作超时,能源浪费,于是本系统采用超时报警电路,以声音的方式来提醒管理人员是否关闭电源。另一方面由于学生学习紧张,在夜里忘了时间点,学习期间开灯时间过长,致使教室灯工作超时,于是本系统报警电路就会发出声音,提醒学生应该休息了。这样,还可以更好地保护公共设施。本系统采用超时报警的电路如图2-11的P3.4端口外加一个10K的上拉电阻,再经过限流电阻100欧与三极管C945的基极相连。当P3.4端口为低电平,即基极为低电平时,三极管导通,驱动蜂鸣器发出声音,以示教室灯工作超时。若P3.4端口为高电平,即基极为高电平时,三极管截止,蜂鸣器不工作,教室灯工作正常。本系统采用超时报警电路方便了管理人员对教室的管理,能够更好地、及时地管理教室。图2-11 超时报警的电路2.8 数码管显示驱动电路设计系统运行过程中的数据显示是人机交互对话的一个重要通道。通过系统数据的显示,我们才可以更好的了解系统运行的状态,从而便于对整个系统进行必要的操作。本系统中采用共阳极的数码管,其中采用ULN2803作为驱动数码管的段选的芯片,采用简单又便宜的9012三极管来驱动数码管的位选,节约成本,程序编写简单。考虑到数码管驱动信号要求的驱动电流较大,采用功率驱动器件ULN2803。此芯片是八组NPN型达林顿功放三极管集成芯片,典型的输入电压是5V,集电极输出功率可达50V600mA。因此采用ULN2803作为共阳数码管的段信号驱动器,而共阳数码管的位信号驱动则采用8个晶体管9012来实现。又由于ULN2803为低电平驱动,所以数据送到单片机端口之前,应在程序中先将数据取反,然后将数据送到与ULN2803输入端口相连接单片机的PO端口即可,简化软件程序。图2-12为显示驱动模块。图2-12 显示驱动模块3 系统软件设计 在单片机硬件系统的基础上,再配上相应的软件,才能构成一个完整的系统。用户软件的开发与系统硬件有着密切的关系。在系统的硬件及输入输出方法确定后,程序软件就可以完全独立的进行设计。在程序设计过程中,采用合理的程序设计结构是一项关键技术。在本系统的设计过程中,总体设计采用自上至下的设计思想将主程序设计好,而在各个部分展开成从属程序或子程序时,是将各个小模块分别进行设计和编程,同时在编程的过程中又用到了结构程序设计的思想。本控制系统软件模块主要包括:系统监控主程序模块、数据采集模块、时钟模块、显示驱动模块。3.1系统监控主程序设计监控程序按模块分为监控主程序和命令处理子程序。监控主程序的基本任务是调用子程序,一个主程序可以调用多个子程序,对于51系列单片机,系统资源有限,主程序通常是一个无限循环的过程,即是一个反复调用子程序的过程。子程序主要分为中断子程序和功能子程序,它们之间可以互相嵌套和调用,即中断子程序可以调用功能子程序。在应用软件的设计中,尽可能各个功能模块写成子程序的形式,并通过主程序调用。而命令处理子程序完成各种命令所规定的具体操作,它按各种命令再分为不同的子程序模块,它一般总是把其余部分连接起来构成一个无限循环,系统所有功能都在这一循环中周而复始的有选择的执行。其监控主程序流程图如图3-1所示。 系统初始化看门狗激活设定定时器,允许定时中断上电Reset人体传感器处理任务环境光处理任务定时时钟管理显示刷新任务3-1 监控主程序流程图图 系统自检与初始化是保证整个控制系统能够正常运行的重要条件,系统加电复位后,直接进入自检初始化程序,完成系统的自检及初始化。初始化过程主要是对一些控制寄存器(如中断控制)、数据区和外部芯片(如时钟芯片DS1302等)进行初始参数设置和定义。本系统中的自检初始化主要指各接口芯片的检测、芯片内部设定参数的初始化及系统内部寄存器的初始化。 各接口芯片的检测主要检测各芯片是否己处于准备工作的就绪状态,有无硬件故障等,如检测各位LED是否正常显示系统设置开机时的界面,检测硬件时钟DS1302是处于更换芯片后初次使用为起振状态,还是处于备用电源供电振荡保持状态,即检测系统中控制时间表的有效性,检测人体传感器输出信号是否正常体现人体存在的信息,检测环境光是如何影响光采集电路输出的信号等。若时钟芯片处于启动状态,系统控制时间表无效,则需要对其进行初始化并启动实时时钟。系统内部寄存器初始化主要是指在数据缓冲区内,各用户定义的数据变量的初始化赋值及部分特殊功能寄存器SFR的复位初始化,单片机复位后,程序计数器PC指向程序存储器的入口地址0000单元,程序状态字寄存器PSW清零,片内存储器选择1区工作寄存器,用户标志位F0为0状态,堆栈指针SP指向07H,其它定时器、中断允许寄存器IE、累加器ACC等皆为00H。3.2数据采集模块程序设计本控制系统中的数据采集对象为环境光信号及人体存在信号,在程序设计中对这两个数据的采集放置在多任务模块中实施定时采集。本系统考虑到环境光足够亮时,无论有否人体存在都不应开灯;而环境光不够亮时,有人体存在才开灯,无人体存在不开灯。本系统逻辑定义为环境光亮时为二进制的“0”(符合光采集电路输出信号状态),暗时为“1”,人体存在为“1”,人体不存在为“0”,开灯为“1”,关灯为“0”,那么环境光与人体存在可以有以下的逻辑关系表表示,如表3-1所示。表3-1 环境光与人体存在逻辑关系表环境光参数人体存在参数教室灯状态010 000111100上表数据表明可将环境光参数与人体存在参数相与门操作,又由于继电器是低平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯的状态,其软件程序为:DoSensLight:MOV C,port33ANL C,port37CPL CMOV port35,CMOV port36,CJNC SensOutHaveperson:MOV SensDelayBuf,#5SensOut: RET3.3时钟模块程序设计 在系统启动自检初始化时,首先会对时钟芯片DS1302的运行状态进行判断,当检测到DS1302处于启动状态时才对其进行初始化启动时钟。实时时钟芯片DS1302的初始化及其读写程序设计的关键是要遵循其时序要求。3.3.1数据输入输出时序分析 在对DS1302进行的各种操作之前,必须先对其初始化,即需要把复位输入RST端置为高电平,如果RST输入为低电平,那么所有的数据传送中止,且I/0引脚变为高阻抗状态。在数据读/写完后,RST端应置成低电平,以防止外部干扰对DS1302内部时钟的影响。同时,为了防止复位输入端受到外部的干扰,要求上电时,在主电源引脚 Vcc22.5V之前,RST必须为逻辑0。无论是读操作还是写操作,都必须在开头的8个时钟周期把提供地址和命令信息的8位数据装入到DS1302的移位寄存器。地址/命令子节用于指明40个寄存器中的哪个进行何种操作。数据在SCLK的上升沿串行输入,在开始的8个时钟周期把命令字装入移位寄存器之后,若跟随的是写命令字节,则在下8个SCLK周期的上升沿输入数据字节,若跟随在读命令字节的8个SCLK周期之后,在下8个SCLK周期的下降沿输出数据字节。 3.3.2时钟芯片DS1302内部寄存器的使用DS1302有控制寄存器和年、月、日、周、时、分、秒等工作寄存器组成。本系统中只用到工作寄存器中的时分秒及控制寄存器,所应用的各寄存器地址(命令)及数据寄存器分配情况如表3-2所示。表3-2 内部寄存器寄存器名命令字取值范围各位内容写操作读操作76543210SEC80H81H00-59CH10SECSECMIN82H83H00-59010MINMINHR84H85H01-12或00-2312/24010HRA/PCONTROL8EH8FHWP0000000CHARGER90H91HTCSTCSTCSTCSDSDSRSRSCLOCKBURSTBEHBFH说明:(1)上表中,时钟寄存器内的数据是以BCD码的形式存在的。其中秒寄存器的位7 定义为时钟暂停位,当此位设置为逻辑1时,时钟振荡器停止,DS1302进入低功耗的备份状态;当把此位置为0时,时钟将启动。(2)小时寄存器的位7定义为12或24小时方式选择位。当为低电平时,选择24小时方式,本系统在设计中采用的就为24小时方式。(3)写保护寄存器的位7是写保护位,在对时钟进行些操作之前,位7应先置为0,当它是高电平时,写保护防止对任何其它寄存器进行写操作。此外,涓流充电寄存器各位的作用及工作原理等在本论文前半部分DS1302的硬件设计中己作过介绍,此处不再详述。3.3.3时钟芯片自检及初始化程序设计考虑刚买来的时钟芯片处于一切未知状态,于是必须对DS1302进行自检初始化。DS1302的自检初始化程序设计流程图如图3-4所示。 NYNNY两次读取的秒钟数据是否相同读取DS1302秒钟时间开始返回主程序DS1302正常工作再次读取秒钟数据延时1秒设置DS1302初始时间秒钟大于60H?图3-4 DS1302的自检初始化程序设计流程图DS1302的自检初始化程序如下所示。DSCheck: MOV R6,#DS1302Sec+1 ACALL DSRd1ByteMOV DSCheckData,A CJNE A,#60H,$+3DSCheckNext: JNC DSSetTimeACALL DSDelayMOV R6,#DS1302Sec+l ACALL DSRdlByte CJNE A,DSCheckData,DSOK AJMP DSSetTimeDSOK: RET 检查DS1302芯片是否正常工作,本系统中通过先读取秒钟寄存器的数据,将数据存储起来,且将此数据与60H相比较,若大于60H,说明时钟数据不正常,转去设置时钟时间;若小于并等于60H,延时一秒钟后,再次读取秒钟寄存器的数据,与第一次读取的秒钟数据相比较,若这两次的数据相同,说明时钟数据不正常,转去设置时钟时间;若正常,则退出到主程序。初始化DS1302的充电状态及其初始时间的设置。3.3.4时钟芯片读写程序设计对DS1302进行读写的程序流程图如图3-5所示。向该地址写入数据变量初始化开始将读出的数据暂存,待显示数据写完了写DS1302地址RST端送高电平RST端送高电平去除写保护写入DS1302读地址将该地址数据读出数据读完了将DS1302写保护结束图3-5 读写程序流程图在对DS1302进行读操作时,读出的数据为BCD码,同样在写操作时,写入的数据一也必须为BCD码,这就需要在数据写入之前、读出之后进行必要的数据进制之间的转换,以便与系统其它数据在比较时相对应。在本系统中,因设定的时间参数一般都为二进制或十六进制数,为了便于同DS1302的时钟数据进行比较,故在程序中需进行二进制与BCD码之间的转换,其相互间的转换程序如下。;二进制转换为BCD码;Function: DisTimeBCDDisTimeBCD: MOV A,R0 ANL A,#0FH MOV Rl,AINC RlMOV A,R0SWAP AANL A,#0FHMOV R1AINC RlINC R0RET;BCD码转换为二进制;Function: DisTimeHexDisTimeHex: MOV A,R0 MOV B,#10 DIV AB MOV R1,B INC R1 MOV R1,A INC R1 INC R0 RET3.4显示驱动模块程序设计显示模块子程序如下。Display: MOV R0,DisBufptrMOV A,R0DisPlay1: MOV DPTR,#DisTabMOVC A,A+DPTR CPL A MOV DisModPort,AMOV A,DisCSPtr MOV DisCSPort,A RL A MOV DisCSPtr,AINC DisBufPtrJB Acc.0,DisQuitInitDisO: MOV DisCSPtr,#11111110BMOV DisBufPtr,#DisBufDisQuit: RET 每次先送一位要显示的数据字节,然后再送该位LED的位地址字节,直到8位显示完全。本系统在运行过程中需要显示察看的数据为时钟,正常工作时8位显示器显示小时、分钟和秒,其中有两位用来显示“-”,用以分隔小时、分钟和秒,这样显示更加清晰。4 系统抗干扰措施单片机的可靠性随着单片机在工业控制领域的广泛应用,越来越受到人们的关注。一个单片机系统的设计是否成功,除了之前所讲的硬件、软件设计以外,还有一项起决定作用的因素,那就是抗干扰措施。为了提高系统的稳定性和精确度,还需要对系统采取相应的抗干扰措施。4.1 系统硬件抗干扰措施4.1.1 人体存在传感器的抗干扰措施考虑到本系统所安装的环境影响因素比较多,且教室控制设备中的人体存在传感器经常会因环境情形变化而不稳定,所以在设计过程中,电子元器件的选用、线路布置和设备的安放要充分考虑到抗干扰问题。 (1) 抗非人体干扰 探测器安装在推荐地使用高度,人体存在传感器只能安装在室内,且应离地面应有2.0-2.2米,这样不会对探测范围内地面上的小动物不产生信号。人体存在传感器探测范围内不得隔屏、家具、大型盆景或其他隔离物,也不要直对窗口,否则窗外的热气流扰动和人员走动会引起误报,有条件的最好把窗帘拉上。 (2) 抗电磁干扰 探测器的抗电磁波干扰性能符合GB 10408.4-2000入侵探测器第4部分主动红外入侵探测器中的要求,一般手机电磁干扰不会引起误报。 (3) 抗灯光干扰探测器正常灵敏度范围内,受3米外H4卤素灯透过玻璃照射,不产生信号。4.1.2 系统看门狗抗干扰措施为了防止系统会出现运行不稳定、死机或停不了机即程序跑飞等现象,系统故添加了看门狗电路。看门狗技术可由硬件实现,也可由软件实现。看门狗电路的功能就是对CPU进行实时检测,当CPU落入死循环之后,能及时发现并使整个系统复位。使用看门狗电路的目的,就是当单片机受干扰程序运行异常时,产生一个复位信号使单片机复位。看门狗电路实质上是一个单稳电路。当程序运行正常时,单片机定时给单稳电路输入触发信号,使单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论