1、摘 要本研究针对教室灯光的控制方法,尤其是教室灯光的智能控制方面的发展现状,分析了教室灯光智能控制的原理和实现方法,提出了基于单片机的教室灯光智能控制系统的设计思路,并在此基础上设计了智能控制系统的硬件装置和相应软件。该系统以AT89S52单片机作为控制装置的智能部件,采用热释电红外人体传感器检测人体的存在,采用光敏三极管构成的电路检测环境光的强度;根据教室合理开灯的条件,系统通过对人体的存在信号和环境光信号的识别和智能判断,完成对教室照明回路的智能控制,避免了教室用电的大量浪费。系统还具有报警功能;同时还采用了软/硬件的“看门狗”技术等抗干扰措施。单片机软件采用汇编语言编制,采用模块化结构设
2、计、条理清晰、通用性好,便于改进和扩充。该系统具有体积小,控制方便,可靠性高,专用性强,性价比合理等优点,可以满足各类大、中专院校教室灯光控制的要求,很大程度的达到节能目的。关键词:灯光控制 热释电 智能控制AbstractCurrently light intelligent control systems are not efficiently used in the classroom. In order to improve the system, based on the theory of the light control and current methods of how t
3、o keep control, put forward methods of developing intelligent classroom light control system on the basis of AT89S52. This classroom light intelligent control system is developed, which machine of AT89S52 is a major part, and the environment of development is better than before. This system can sati
4、sfy the following functions, such as controlling the circuit of illumination, testing and processing daylight signal, testing and processing the signal of human body that illuminates the back track exists, reporting to the warning devices, etc. In order to satisfy these functions, the system adopted
5、 the homologous methods respectively, and to the gearing of the system, analyzing how to install, test and run the system.The microcontroller software was developed based on assemble language. The system had many advantages such as small, easy controlled, high credibility, strong appropriation and p
6、rice proportion was ideal, etc. The experiment proved that the system can satisfy the control command of the classrooms light device, so it could largely reduce the consuming of energy resources.Keyword: Lighting Control,Heat to release the electricity,Intelligent Control目录前言11 教室灯光控制器简介及控制方案的分析21.1
7、 教室灯光控制器简介 21.2 系统控制方案的分析 22 系统硬件设计32.1 单片机系统电路设计 32.1.1 单片机的选型.32.1.2 晶振回路设计.52.1.3 复位电路设计.52.2 系统时钟电路设计 82.3 系统供电电路设计 .112.4 环境光采集电路设计 .122.5 人体存在传感器电路设计 .132.5.1 人体存在传感器工作原理142.5.2 人体存在传感器的特性与电路设计152.6 继电器驱动接口电路设计 .172.7 报警电路设计 .182.8 数码管显示驱动电路设计 .193 系统软件设计.203.1 系统监控主程序设计203.2 数据采集模块程序设计223.3 时
8、钟模块程序设计233.3.1 数据输入输出时序分析 243.3.2 时钟芯片 DS1302 内部寄存器的使用 .243.3.3 时钟芯片自检及初始化程序设计 263.3.4 时钟芯片读写程序设计 273.4 显示驱动模块程序设计294 系统抗干扰措施.314.1 系统硬件抗干扰措施 .314.1.1 人体存在传感器的抗干扰措施314.1.2 系统看门狗抗干扰措施324.2 系统软件抗干扰措施 .325 结论.34致谢.35参考文献.36附录.37前言随着社会经济和科学技术的发展,人们的生活水平也不断提高,导致用电负荷的加剧,又由于世界性的能源危机,能源缺乏已成为世界所面临的严峻问题,而此问题对
9、我国来说尤为严重。随着各类大、中专院校的扩招,教室的扩建,教室照明的需求也越来越多,而教室照明的管理不到位,往往造成电能的巨大浪费,这样,提高教室用电效率就成为首要考虑的问题。目前对灯光的智能控制,国内外己经开始采用。但对教室灯光的控制,尤其是我国教室灯光的智能控制尤为缺乏和不完善,依然是传统式的人工管理。目前国内各类院校中,由于同学们的自觉节能意识薄弱,在光线足够强时也开灯,课上完离开教室后灯还亮着的现象普遍存在;而且,节能规划极为欠缺,教室的灯光控制由管理人员手工代替,教室极多,管理人员忙不过来。各类大、中专院校不断扩招,教室不断扩建,教室的用电负荷不断加大,教室用电管理不善,造成学校电能
10、浪费,经济损失,这种的浪费与当今的节约能源理念相违背。再者,现代自动化程度不断提高,计算机技术的普及,灯光的管理也在朝着自动化、智能化方向发展,相对于从前的人工管理模式,这对节约电能也起到了一定作用。所有这些使得教室灯光控制也应该朝着智能化的方向发展。于是,开发简便、实用的教室灯光自动控制系统便具有重要的现实意义。基于以上种种原因,提高教室用电效率就成为学校节能的重要且主要的措施之一。本文就节能技术的重要手段之一也就是教室灯关自动控制系统的设计进行探讨,研究的教室灯光控制系统能用于现有教室照明系统的改造,实现对照明系统的人性化智能管理,提高用电效率,实现教室灯光的自动控制。11 教室灯光控制器
11、简介及控制方案的分析1.1 教室灯光控制器简介教室灯光控制器可实现有效的教室灯光智能控制。其输入参数主要是人体存在信号和环境光信号等的外界因素,环境光的强度达到一定值时不开灯,环境光强度在一定阀值以下且有人存在时开灯,本文通过理论研究用这种方式来对教室灯进行智能控制可以实现上述目标。教室灯光控制器一般安装在教室内避开电灯直射的位置,且人体传感器安置时应使人体活动方向与人体传感器中两个热释电元连线方向垂直,这样可使人体存在信号采集更加灵敏、可靠,同时还要尽可能避免外界风直接吹向人体传感器。1.2 系统控制方案的分析所设计的控制器以自然光强度和人体存在作为控制器的主要输入参数。可以实现自动与手动控
12、制相兼容。在自然环境光较强光线足够时,无论人是否存在,都不开灯;在自然环境光较弱时,有人存在且超过一定时间,控制器自动打开电灯,直到人离开后再延时一定时间后关灯。同时,还要按作息时间来控制,夜晚超过12点,若还有人存在,则关闭自动控制器的运行,改用传统的机械开关来手动控制,以解决因特殊情况下,自动控制器的不人性化运行。本文所设计的教室灯光控制器主要是由硬件和软件两大部分组成。硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器的各项功能,以达到教室照明自动智能控制。2 系统硬件设计本设计的硬件部分的系统
13、控制单元是以单片机系统电路为核心,它包括单片机,晶振回路,复位电路等。而外围电路主要包括:系统供电电路、系统时钟电路、环境光采集电路、人体存在传感器电路、继电器驱动接口电路,报警电路、数码管驱动显示电路等。2.1 单片机系统电路设计2.1.1 单片机的选型本系统的主控模块主要采用 ATMEL 公司的 AT89S52 作为主控芯片。AT89S52 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片内含有 8K bytes 的可以反复擦写的只读程序存储器(PEROM)和 256 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术
14、生产,兼容标准 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 个中断源3(8) 自带看门狗本设计选用 ATMEL89 系列的 AT89S52 单片机作为本系统的 CP
15、U。由 AT89S52 单片机为核心的单片机最小系统包括晶振电路和复位电路。AT89S52 I/O 端口与系统其他外围器件接口的分配情况表如表 2-1所示。表 2-1 AT89S52 I/O 端口与系统其他外围器件接口的分配情况表89S52 引脚 外围器件引脚 说明ULN2803NPN-9012 基极X5045SIX5045SCKX5045CSX5045SO数码管段码驱动接口数码管位控驱动接口X5045 串行输入端X5045 串行时钟端X5045 片选端X5045 串行输入端系统工作灯显示端口DS1302CLKDS1302IODS1302RSTDS1302 时钟线DS1302 数据线DS130
16、2 复位线P0.0-P0.7P2.0-P2.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0-P3.1P3.2P3.3P3.4P3.5-P3.6数据采集输入端光敏三极管输入信号端人体存在传感器输出信号端超时报警信号输入端灯光驱动输入端2.1.2 晶振回路设计晶振回路的主要任务是为AT89S52单片机正常工作需要的内部时钟电路提供一个稳定的工作频率。根据AT89S52单片机时钟周期的要求,回路需要选用频率为12MHz的晶振。晶振回路由电容和陶瓷谐振器晶振组成。AT89S52内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL0和XTAL1
17、,在XTAL0和XTAL1端口接上时钟电源即可构成内部时钟电路。在XTAL0和XTAL1两端跨接晶振,与内部的反相器构成稳定的自激振荡器。其发出的时钟脉冲直接送入单片机内定时控制部件。电容C5和C6对频率有微调作用。电容C5和C6应尽可能的安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定可靠的工作。2.1.3 复位电路设计复位电路的功能就是对 CPU 进行实时检测,当 CPU 进入死循环之后,能及时发现并使整个系统复位。虽然在程序设计中,可以使用软件陷阱的方法来减少这种情况的发生,但是不能完全解决这个问题,因此还应该在硬件设计中使用看门狗复位电路,这样在单片机发生死机的情况下,看门狗将产生
18、一个复位信号给单片机,使单片机复位重新执行程序。现在的 MCU 被集成了越来越多的功能,有的集成了看门狗,如IMP813L。还有的芯片更是把 EEPROM 也集成进去,如 X5045 芯片。由于系统需要看门狗和 EEPROM,所以本硬件设计中使用了美国 Xicor 公司生产的芯片 X5045。X5045 具有三种常用的功能:看门狗定时器、复位控制和 EEPROM 集成在单个 8 个引脚封装的 CMOS 器件内,将电源监控和看门狗功能与高速三线非易失性存储器组合庄一起,从而在很大程度上降低了系统成本5并减少了对电路板空间的要求,X5045 的引脚排列如图 2-1。 图 2-1 X5045 的引脚
19、排列看门狗定时器的预置时间是通过 X5045 的状态寄存器的相应位来设定的。如表 2-2 状态寄存器所示,X5045 状态寄存器共有 6 位有含义。其中 WD1 , WDO 和看门狗电路有关,其余位和 EEPROM 的工作设置有关。表 2-2 状态寄存器D7 D6 D5 D4 D3 D2 D1 D0X X WD1 WD0 BL1 BL0 WEL WIPWD1=0,WD0=0,预置时间为 1.4S。WD1=0,WD0=1,预置时间为 0.6S。WD1=1,WD0=0,预置时间为 0.2S。WD1=1,WD0=1,禁止看门狗工作。看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正
20、常工作时最大循环周期的时间略长即可。本系统中 X5045 的硬件连接图如图 2-2 所示。图 2-2 X5045 的硬件连接图系统数据存储及故障保护部分由 X5045 组成,X5045 是一种串行通讯的 512 字节 EEPROM,同时兼有看门狗和电源监控功能,X5045 有三种可编程看门狗周期,上电和 VCC 低于检测门限时,输出复位信号,X5045 输出复位高电平有效,为了复位更加可靠,其复位输出端外接一个 10K 的上拉电阻,并与 AT89S52 的复位端相连。看门狗能在电源上电、掉电期间产生一个复位信号。该芯片还带有一个 1.4 秒的看门狗定时器可监控单片机的工作。如果在 1.4 秒内
21、未检测到其工作,出现故障,内部定时器将使看门狗 WDI 处于低电平状态,为系统提供保护,避免死机、程序跑飞或进入死循环等意外的发生。X5045 代表了新一代串行 EEPROM 的发展趋势,它的运用极大的节省了系统空间和资源,同时简化了电路设计,缩短产品开发周期。除了单片机,晶振回路,复位电路外,系统工作灯电路和数据采集电路共同组成了单片机系统电路,如图 2-3 所示。7图2-3 单片机系统电路2.2 系统时钟电路设计根据教室灯光使用特性,该系统还应受到时间的控制,控制系统的时间应符学校的作息时间。比如晚间休息、假期等时间段应该关掉教室灯光控制系统,以节约能源,因此本研究还加入硬件时钟电路以保证
22、系统的智能化运行。传统的时钟芯片,如 MC、MC68H68T、LM8365 等,这些芯片的引脚太多,体积大,占用的口线多。而现在流行的串行时钟芯片很多,如DS1302、DS1305、DS1307、PCF8485 等,这些电路的接口简单、价格低廉、使用方便,被广泛的使用。考虑到本系统停电时只需对时钟电路提供电源、且不需要占用太多单片机资源,本系统采用具有充电能力的低功耗 18 的用于临时性存放数据的 RAM 寄存器的实时时钟芯片DS1302。DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周、日、时、分、秒进行计时,具有闰年补偿功
23、能,工作电压为 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 外接系统供电模块的输出稳
24、定电压+5V,为 DS13O2 的主电源。DS1302 由 Vcc1 和 Vcc2 两者中较大者供电。系统正常运行时,Vcc1 大于 Vcc2,因此由 Vcc1 给DS13O2 供电,在主电源关闭的情况下,则由 Vcc2 给 DS13O2 供电,保持时钟的连续运行。Xl 和 X2 是振荡源,外接 32.768kHz 晶振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送,与单片机的复位信号相连。时钟输入端 SCLK 接单片机 Pl.5 引脚,进行时钟控制。数据输入/输出端 I/0 接单片机附 1.6 引脚,进行数据传输。9图 2-5 DS13O2 与单片机接口电路连
25、接原理图RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。如果在传送过程中 RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 Vcc2.5V 之前,RST 必须保持低电平。只有在 SCLK 为低电平时,才能将 RST 置为高电平。I/O 为串行数据输入输出端(双向),后面有详细说明。SCLK 始终是输入端。硬件时钟芯片 D
26、S1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位 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 与以
27、RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0H-FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的 RAM寄存器,在此方式下可一次性读、写所有的 RAM 的 31 个字节。要特别说明的是备用电源,可以用电池或者超级电容器(0.1F 以上)。虽然 DS1302 在主电源掉电后的耗电很小,但是,如果要长时一间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的 3.6V 充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100F 就可以保证 l 小时的正常走时。DS13
28、02 在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。2.3 系统供电电路设计要取得+5V电压,若选用12V的变压器,整流滤波后输出往往大于12V,会使稳压器功耗大,自身温度较高。故不选用输出电压为12V的变压器,而选用输出电压为9V的变压器。系统接通22OV交流电源后,将220V交流电变压到9V,经过二极管全波整流、电解电容C1、C2滤波,再经一只正输出稳压器LM78O5,为了缓冲负载突变,改善瞬态响应,输出端还采用了电容C3、C4,最后得到+5V的直流工作电源,用于给控制系统中单片机系统及其它外围电路的VCC端供电。其供电原理图如图2-6。11图 2-6 系统供电原理
29、图在硬件时钟模块中,为了在断电后硬件时钟能够正常运行,故采用主从双电源供电方式。硬件时钟一般在系统的+5V主电源情况下工作,而只有系统+5V主电源消失的情况下,为确保硬件时钟的正常运行,设计一个3.6V的可充电锂电池作为备用电源。具体电路及其原理已在前面的系统时钟电路部分详细说明。2.4 环境光采集电路设计教室中的环境光和人体存在与否是系统的主要输入参数,因此教室中的环境光和人体存在成为系统数据采集的主要对象。常见的环境光采集器件光电传感器有光敏二极管和光敏三极管,根据需求,选用灵敏度较高的光敏三极管。光电传感器是一种能够将光转换成电量的传感器。采用的光敏三极管除了具有光敏二极管能将光信号转换
30、成电信号的功能外,还有对电信号放大的功能。在无光照时三极管的穿透电流很小,为暗电流Iceo=(1+)Icbo。有光照时,产生的Ib增大,成为光电流Ie=(1+)Ib。光电流的大小与光照强度成正比,于是在负载电阻上就能得到随光照强度变化而变化的电信号。因此光敏三极管灵敏度高,而且体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点。环境光采集电路原理图如图2-7所示。当自然光强大于一定程度时,光敏三极管D6呈现低阻状态1K,三极管Q12的基极电压升高,Q12管饱和导通,集电极输出低电平。当自然光强小于一定程度时,光敏三极管D6呈现高阻状态1OOK,使三极管Q12截止,集电极输出
31、高电平。其中可变电阻R26可调节,调节R26阻值的大小,使Q12三极管受环境光影响在适当的亮度下导通。图 2-7 环境光采集电路原理图132.5 人体存在传感器电路设计自然界中存在的各种物体,如人体、木材、石头、火焰、冰等都会发出不同波长的红外线,利用红外传感器可对其进行检测。根据工作原理,红外传感器分为热型和量子型两类,热型红外传感器也称热释电红外传感器或被动红外传感器。与量子型相比,响应的红外线波长范围较宽,价格便宜,并可在常温下工作。量子型与热型的特点相反,而且要求冷却条件。本系统采用的是热释电红外传感器,人体存在传感器主要采用了红外传感器的原理,它是目前在防盗报警、火灾检测、自动门、自
32、动水龙头、自动电梯、自动照明等场合,及非接触温度测量等领域应用最广泛的传感器。其原因为:被测对象自身发射红外线,可不必另设光源;大气对 2-2.61Lm、3-51Lm、8-14lLm 三个被称为“大气窗口”的特定光通量的红外线吸收甚少,可非常容易被检测;中、远红外线不受可见光影响,可不分昼夜进行检测。2.5.1 人体存在传感器工作原理人体都有恒定的体温,一般在 37 度,所以会发出特定波长 10M左右的红外线,被动式红外探头就靠探测人体发射的 10M 左右的红外线而进行工作的。人体发射的 10M 左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源采用热释电元件,这种元件在接收到人
33、体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生由人体存在的信号。(1)这种探头是以探测人体辐射为目标的,所以热释电元件对波长为 10M 左右的红外辐射非常敏感。(2)为了仅仅对人体的红外辐射敏感,在它的辐射照面覆盖有特殊的菲泥尔滤光片,使环境的干扰受到明显的抑制作用。(3)人体存在的探测,其传感器包含两个互相串联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。(4)一旦有人进入探测区域内,人体红外辐射通过部分镜面聚焦,并被人体存在传感器的热释电元接收,但是两片热释电
34、元接收到的热量不同,热释电也不同,不能抵消,经信号处理而输出有人体存在的信号。(5)菲泥尔滤光片根据性能要求不同,具有不同的焦距(感应距离),从而产生不同的监控视场,视场越多,控制越严密。人体传感器透镜的信号采集敏感区示意图如图 2-8 所示。图 2-8 人体传感器透镜的信号采集敏感区示意图有人进入时,移动人体发出的红外线被红外传感器接收,则人体存在被感应,并输出高电平。若人体进入最不敏感移动方向时,则人体传感器所体现的信号就会不理想,有时还会产生误动作,所以要特别注意人体传感器的安装方向。152.5.2 人体存在传感器的特性与电路设计人体传感器 HP-208 是的基于红外线技术的智能产品,它
35、的主要特性如下:(l)感应为全自动方式,人进入感应范围时输出高电平(高 3.3V),人离开感应范围则自动延时关闭高电平,输出低电平(低 0.3V),其高低电平利于采集;(2)采用可重复触发方式。即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时 8 秒-15 秒后将高电平变为低电平;(3)人体传感器工作电压宽为 DC3V-DC24V;(4)人体传感器制作成锥面形状,感应范围大,小于 140 度锥角,感应距离为 7 米以内;(5)其静态电流小于 50 微安,功耗低;(6)工作温度介于-150 和+700 之间,适应性强;(7)灵敏度高,可靠
36、性强。人体传感器的 1 号引脚为电源信号端,3 号引脚为地信号端,2 号引脚为采集信号输出端。在电路设计中,为了使人体传感器的工作更加可靠,介于人体传感器的信号引脚 2 与地信号引脚 3 之间加一个68O0pF 的电容,另外人体存在传感器的信号引脚 2 与单片机的 P3.3 引脚相连,P3.3 引脚再接一个 100K 的上拉电阻,增加人体存在传感器输出信号的可靠性,其电路原理图如图 2-9 所示。图 2-9 人体传感器电路原理图2.6 继电器驱动接口电路设计继电器驱动接口电路如图 2-10 所示,这里继电器由相应的 PNP 型号的 9012 三极管来驱动,开机时,单片机初始化后的 P3.5/P
37、3.6 为高电平,三极管截止,所以开机后继电器始终处于释放状态,如果P3.5/P3.6 为低电平,三极管的基极就会被拉低而产生足够的基极电流,使三极管导通,继电器就会得电吸合,从而驱动负载,点亮相应电灯。继电器的输出端并联 100 的电阻和 6800pF 电容,目的是避免继电器吸合与释放期间产生火花。每个继电器都有一对常开常闭的触点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单。17图 2-10 继电器驱动电路图2.7 报警电路设计在教室中,若采用手动方式控制时,一方面由于学生及管理人员的疏忽,教室里没
38、有人而灯还亮着,导致教室灯工作超时,能源浪费,于是本系统采用超时报警电路,以声音的方式来提醒管理人员是否关闭电源。另一方面由于学生学习紧张,在夜里忘了时间点,学习期间开灯时间过长,致使教室灯工作超时,于是本系统报警电路就会发出声音,提醒学生应该休息了。这样,还可以更好地保护公共设施。本系统采用超时报警的电路如图 2-11 的 P3.4 端口外加一个 10K 的上拉电阻,再经过限流电阻 100 欧与三极管 C945 的基极相连。当 P3.4 端口为低电平,即基极为低电平时,三极管导通,驱动蜂鸣器发出声音,以示教室灯工作超时。若 P3.4 端口为高电平,即基极为高电平时,三极管截止,蜂鸣器不工作,
39、教室灯工作正常。本系统采用超时报警电路方便了管理人员对教室的管理,能够更好地、及时地管理教室。图 2-11 超时报警的电路2.8 数码管显示驱动电路设计系统运行过程中的数据显示是人机交互对话的一个重要通道。通过系统数据的显示,我们才可以更好的了解系统运行的状态,从而便于对整个系统进行必要的操作。本系统中采用共阳极的数码管,其中采用ULN2803 作为驱动数码管的段选的芯片,采用简单又便宜的 9012 三极管来驱动数码管的位选,节约成本,程序编写简单。考虑到数码管驱动信号要求的驱动电流较大,采用功率驱动器件ULN2803。此芯片是八组 NPN 型达林顿功放三极管集成芯片,典型的输入电压是 5V,
40、集电极输出功率可达 50V600mA。因此采用 ULN2803 作19为共阳数码管的段信号驱动器,而共阳数码管的位信号驱动则采用 8 个晶体管 9012 来实现。又由于 ULN2803 为低电平驱动,所以数据送到单片机端口之前,应在程序中先将数据取反,然后将数据送到与 ULN2803输入端口相连接单片机的 PO 端口即可,简化软件程序。图 2-12 为显示驱动模块。图 2-12 显示驱动模块3 系统软件设计在单片机硬件系统的基础上,再配上相应的软件,才能构成一个完整的系统。用户软件的开发与系统硬件有着密切的关系。在系统的硬件及输入输出方法确定后,程序软件就可以完全独立的进行设计。在程序设计过程
41、中,采用合理的程序设计结构是一项关键技术。在本系统的设计过程中,总体设计采用自上至下的设计思想将主程序设计好,而在各个部分展开成从属程序或子程序时,是将各个小模块分别进行设计和编程,同时在编程的过程中又用到了结构程序设计的思想。本控制系统软件模块主要包括:系统监控主程序模块、数据采集模块、时钟模块、显示驱动模块。3.1 系统监控主程序设计监控程序按模块分为监控主程序和命令处理子程序。监控主程序的基本任务是调用子程序,一个主程序可以调用多个子程序,对于 51 系列单片机,系统资源有限,主程序通常是一个无限循环的过程,即是一个反复调用子程序的过程。子程序主要分为中断子程序和功能子程序,它们之间可以
42、互相嵌套和调用,即中断子程序可以调用功能子程序。在应用软件的设计中,尽可能各个功能模块写成子程序的形式,并通过主程序调用。而命令处理子程序完成各种命令所规定的具体操作,它按各种命令再分为不同的子程序模块,它一般总是把其余部分连接起来构成一个无限循环,系统所有功能都在这一循环中周而复始的有选择的执行。其监控主程序流程图如图 3-1 所示。 21系统初始化看门狗激活设定定时器,允许定时中断上电Reset人体传感器处理任务 环境光处理任务 定时时钟管理 显示刷新任务图 3-1 监控主程序流程图系统自检与初始化是保证整个控制系统能够正常运行的重要条件,系统加电复位后,直接进入自检初始化程序,完成系统的
43、自检及初始化。初始化过程主要是对一些控制寄存器(如中断控制)、数据区和外部芯片(如时钟芯片 DS1302 等)进行初始参数设置和定义。本系统中的自检初始化主要指各接口芯片的检测、芯片内部设定参数的初始化及系统内部寄存器的初始化。各接口芯片的检测主要检测各芯片是否己处于准备工作的就绪状态,有无硬件故障等,如检测各位 LED 是否正常显示系统设置开机时的界面,检测硬件时钟 DS1302 是处于更换芯片后初次使用为起振状态,还是处于备用电源供电振荡保持状态,即检测系统中控制时间表的有效性,检测人体传感器输出信号是否正常体现人体存在的信息,检测环境光是如何影响光采集电路输出的信号等。若时钟芯片处于启动
44、状态,系统控制时间表无效,则需要对其进行初始化并启动实时时钟。系统内部寄存器初始化主要是指在数据缓冲区内,各用户定义的数据变量的初始化赋值及部分特殊功能寄存器 SFR 的复位初始化,单片机复位后,程序计数器 PC 指向程序存储器的入口地址 0000 单元,程序状态字寄存器 PSW 清零,片内存储器选择 1 区工作寄存器,用户标志位 F0 为 0 状态,堆栈指针 SP 指向 07H,其它定时器、中断允许寄存器 IE、累加器 ACC 等皆为 00H。3.2 数据采集模块程序设计本控制系统中的数据采集对象为环境光信号及人体存在信号,在程序设计中对这两个数据的采集放置在多任务模块中实施定时采集。本系统
45、考虑到环境光足够亮时,无论有否人体存在都不应开灯;而环境光不够亮时,有人体存在才开灯,无人体存在不开灯。本系统逻辑定义为环境光亮时为二进制的“0”(符合光采集电路输出信号状态),暗时为“1” ,人体存在为“1” ,人体不存在为“0” ,开灯为“1” ,关灯为“0” ,那么环境光与人体存在可以有以下的逻辑关系表表示,如表3-1 所示。23表 3-1 环境光与人体存在逻辑关系表环境光参数 人体存在参数 教室灯状态0 1 00 0 01 1 11 0 0上表数据表明可将环境光参数与人体存在参数相与门操作,又由于继电器是低平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯
46、的状态,其软件程序为:DoSensLight:MOV C,port33ANL C,port37CPL CMOV port35,CMOV port36,CJNC SensOutHaveperson:MOV SensDelayBuf,#5SensOut: RET3.3 时钟模块程序设计在系统启动自检初始化时,首先会对时钟芯片 DS1302 的运行状态进行判断,当检测到 DS1302 处于启动状态时才对其进行初始化启动时钟。实时时钟芯片 DS1302 的初始化及其读写程序设计的关键是要遵循其时序要求。3.3.1 数据输入输出时序分析在对 DS1302 进行的各种操作之前,必须先对其初始化,即需要把复
47、位输入 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 所示。