AT89S51单片机的教室灯光智能控制系统设计8981536

更新时间:2024-06-02 08:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(此文档为word格式,下载后您可任意编辑修改!)

摘 要

本课题针对教室灯光的控制,分析了教室灯光智能控制的原理和实现方法,提出了基于单片机设计教室灯光智能控制系统的思路,并在此基础上开发了智能控制系统的硬件模块和相应软件部分。

该系统以AT89S51单片机作为控制模块的核心部件,采用热释红外人体传感器检测人体的存在,采用光敏三极管构成的电路检测环境光的强度;根据教室合理开灯的条件,通过对人体存在信号和环境光信号的识别与判断,完成对教室灯光的智能控制,避免了教室用电的大量浪费。系统还具有报警功能;同时还采用了软/硬件的“看门狗”等抗干扰措施。

本系统程序部分采用C语言编写,采用模块化结构设计、条理清晰、通用性好,便于改进和扩充。该系统具有体积小,控制方便,可靠性高,针对性强,性价比高等优点,可以满足各类院校对教室灯光控制的要求,很大程度的达到节能目的。

关键词:智能控制器 热释红外传感器 单片机

引言

当前,随着经济的飞速发展,能源短缺问题日益突出,成为一个国家经济发展的“瓶颈”。作为工业生产和人民生活不可或缺的电力能源更是如此。尤其现今越来越提倡低碳生活,节约能源已经成为一种全球共识,而作为培养社会精英的高校更应该起到榜样的作用。但是目前在校园内,教室灯火通明,却空无一人的现象屡见不鲜,这不仅造成了严重的资源浪费,也对高校的形象造成了很坏的影响。本文所研究的教室灯光控制系统就可以很好地实现节约能源的作用。

1 系统硬件组成

整个系统由中央控制电路、2×4按键电路、光敏传感电路、继电器驱动电路、时钟电路、液晶显示电路六个模块组成。其中,光敏传感电路模块主要完成对教室当前光线明暗程度的判定,时钟电路主要实现时基功能,两者分别提供光照和定时数据供以单片机为核心的中央控制模块进行逻辑判断,单片机最终将运算结果输出到液晶显示屏,同时对教室灯光进行控制。整个系统的硬件框图如图1所示。

1.1 中央控制模块

系统中,中央控制器主要用于接收两个外部数据,由此判断是否定时时间已到,教室光照是否充足。控制器根据这两个外部数据来进行逻辑运算,从而实现定时开关灯、刷新液晶显示屏,同时可以通过键盘设置时间日期、查看相关信息

根据系统设计要求,控制器选择了宏晶科技公司提供的STCl2C4052AD型单片机。该款是一种高速、高可靠性单片机,工作电压5.5~3.4V,Flash程序存储器4K字节,SRAM为256字节,2个定时器,8路8位A/D转换器,可通过串口实现在线编程、A/D转换、看门狗等功能。

1.2 液晶显示电路

为了实现较好的人机交互界面,在本系统中采用1602液晶显示屏来显示用户的设定作息时间及用户所查询的信息。

点阵字符型液晶显示器是专门用于显示数字、字母、图形符号及少量自定义符号的显示器。这类显示器把LCD控制器/点阵驱动器/字符存贮器全做在一块印刷板上。系统选用日立公司的HD44780液晶显示。HD44780具有简单而功能较强的指令集,可实现字符移动/闪烁等功能。与MCU的传输可采用8位并行传输或4位并行传输2种方式。液晶显示电路如图2所示。

1.3 其他电路

按键电路主要由一个2×4的按键阵列组成,主要用于完成作息时间、当前时间、定时时间段的设定。光敏传感电路实现教室内光照强度数据的采集,其门限值可通过可调电阻调节。指示灯主要实现对系统工作状态,如系统工作于自动控制模式还是强制模式,灭灯或亮灯状态等的指示。

2 系统工作原理

本系统能够采集室内光照强度数据,并结合学校作息时间对教室灯光进行实时控制,达到方便和节约能源的目的。电路存在两种工作模式:自动控制模式和强制模式。

2.1 自动控制模式

系统复位默认工作在自动控制模式,当教室内自然光线弱,光敏传感器把感应到的光强信号送至单片机处理,输出照明命令,则打开教室灯光,但因系统定时关灯时间与学校作息时间一致,因此在非需要开灯的时间段内,教室灯光自动关闭,达到节约用电的效果。

系统考虑到如果教室外自然光很强,但因某种需求需要拉上窗帘,这样室内光照就不太理想,需要开灯,因而设置了两路光敏传感器,一路探测室内光强,一路探测室外光强,这体现了系统设计的灵活性。

2.2 强制模式

系统正常工作的情况下,通过按下强制按钮,就能对灯进行强制开关的控制,通过该按钮也能使电路切换回自动控制状态。设置强制按钮主要考虑到有时需要对灯进行强制控制,例如需要在教室通过投影仪观看电影时,为达到最佳的收看效果,需要关上灯。

3 软件设计

系统采用STC12C4052AD单片机作为控制的核心,负责整个系统的逻辑运算,因此软件设计是系统能否稳定运行以及能否实现设计功能的关键。本系统中STCl2C4052AD单片机主要完成接收外部数据、处理数据、输出控制数据。所以软件的重点是:如何接收外部数据,如何处理以及如何输出控制数据。

因此,在该软件实现中我们采用了模块化的方案,整个软件设计由初始化模块、键盘接收模块、中断处理模块、数据显示模块和定时输出模块五个模块组成,系统程序主流程框图如图3所示。

初始模块主要完成I/O口、定时/计数器、中断以及液晶显示屏的初始化,键盘接收模块主要用于接收初始变量,如当前时间、作息时间等的设定。同时也接受相关数据的查询,如查询设定好的作息时间、光照阈值等,数据显示模块用于显示当前的时间、定时开关时间以及用户要查询的相关数据。

4 调试和总结

在整个系统设计完成之后我们在调查研究的基础上,对什么光线情况下应该开灯及系统在根据学校的作息时间上进行了设定验证、调试,结果显示本系统可以稳定运行且效果理想。

本系统主要应用于教室的灯光控制,但是对于一些公共场合,如会议室、办公室、楼道等场所,只要在本系统的基础上稍加改动,也可以很好地满足其需要,因此本系统的可移植性好,具有比较大的市场潜力和广泛的应用前景.

目 录

摘 要 ................................................................................................................................ I 第一章 教室灯光控制器简介与方案分析 .................................................................................... 1 1.1教室灯光控制器简介 ...................................................................................................... 1 1.2系统控制方案分析 ......................................................................................................... 1 第二章 系统控制模块的硬件设计 ............................................................................................. 3 2.1系统控制模块的硬件构成及简介 ....................................................................................... 3 2.2系统控制的主要硬件电路 ................................................................................................ 3 2.2.1系统主控电路 ......................................................................................................... 3 2.2.2系统供电电路 ......................................................................................................... 4 2.2.3数据采集电路 ......................................................................................................... 5 2.2.4系统时钟电路 ......................................................................................................... 7 2.2.5继电器驱动电路 ...................................................................................................... 8 2.2.6超时报警电路 ......................................................................................................... 8 2.2.7按键控制电路 ......................................................................................................... 9 2.2.8系统看门狗电路 ...................................................................................................... 9 第三章 控制模块软件设计 .................................................................................................... 13 3.1系统监控主程序模块 .................................................................................................... 13 3.1.1系统自检初始化 .................................................................................................... 13 3.1.2定时中断处理设计 ................................................................................................. 14 3.2数据采集模块 ............................................................................................................. 14 3.2.1人体存在传感器的优缺点 ........................................................................................ 14 3.2.2数据采集软件的实现 .............................................................................................. 14 3.3时钟模块 ................................................................................................................... 15 3.3.1数据输入输出 ....................................................................................................... 15 3.3.2时钟程序设计 ....................................................................................................... 16 3.4显示驱动模块 ............................................................................................................. 18 第四章 系统调试运行及问题分析 ........................................................................................... 21 4.1单片机系统调试方法及步骤 ........................................................................................... 21 4.2主要问题分析 ............................................................................................................. 22 第五章 总结与展望 ............................................................................................................. 25 5.1总结 ......................................................................................................................... 25 5.2展望 ......................................................................................................................... 25 致 谢 .............................................................................................................................. 27 参考文献 ........................................................................................................................... 29

第一章 教室灯光控制器简介与方案分析

1.1教室灯光控制器简介

本课题设计的控制器可有效的实现教室灯光的智能控制。其输入参数主要是人体存在信号和环境光强度信号等外界因素。环境光的强度达到一定值时不开灯,环境光强度在一定阀值以下且有人存在时开灯,实验证明这种方案可以实现对教室灯进行智能控制。

教室灯光控制器一般安装在教室内避开电灯直射的位置,且人体传感器安置时应使人体活动方向与人体传感器中两个热释电元连线方向垂直,这样可使人体存在信号采集更加灵敏、可靠,同时还要尽可能避免外界风直接吹向人体传感器。

1.2系统控制方案分析

该控制器以自然光强度和人体存在作为控制器的主要输入参数,能够实现自动与手动控制相兼容。在自然环境光较强光线足够时,无论人是否存在,都不开灯;在自然环境光较弱时,有人存在且超过一定时间,控制器自动打开电灯,直到人离开后再延时一定时间后关灯。同时,还可设置作息时间来控制,夜晚超过12点,若还有人存在,则关闭自动控制器的运行,改用开关来手动控制,以解决因特殊情况下,自动控制器的不人性化运行。

所研究的教室灯光控制器主要是由硬件和软件两大部分组成。硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器所要实现的各项功能,达到设计目的。

第二章 系统控制模块的硬件设计

2.1系统控制模块的硬件构成及简介

系统控制单元是以AT89S51单片机主控模块为核心,其它外围电路主要包括:环境光采集电路、时钟模块、热释红外传感器模块、看门狗模块、按键电路、EEPROM存储模块、超时报警模块、数码管显示模块,其结构框图如图2-1所示。

图2-1 系统控制结构框图

环境光模块采用光敏三极管来检测环境光的强度,有光照时,电阻减小,随着光照强度的减弱,电阻逐渐增大,把光信号转化成电信号,实现对光强度的检测。

人体存在传感器模块采用HP-208是基于红外线技术的智能产品,实现对人体存在的检测。

硬件时钟模块采用具有充电能力的低功耗,具有临时性存放数据的RAM寄存器的实时时钟芯片DS1302。该电路的接口简单、价格低廉、使用方便,被广泛的使用。

系统数据存储及故障保护部分由X5045组成,X5045是一种串行通讯的512字节EEPROM,同时兼有看门狗和电源监控功能键盘模块。

2.2系统控制的主要硬件电路

考虑到本系统安装时受环境影响因素比较多,且教室控制设备中的人体存在传感器、光敏三极管等经常会因环境情形变化而不稳定,所以在设计过程中,电子元器件的选用、线路布置和设备的安放要充分考虑到抗干扰问题。 2.2.1系统主控电路

本系统的主控模块采用AT89S51作为主控芯片,它是一种低功耗,8位CMOS工艺处理器,具有8K在线可编程Flash存储器,片内的Flash可多次编程,为在线编程提供了方便。片内有128字节的RAM,4KB的EEPROM,由于合理的安排使用片内RAM空间,所以没有片外扩展的RAM,使电路结构简洁。该芯片的主要特征见如表2.1:

表2.1 AT89S51主要特征

AT89S51引脚 P0. 0-P0. 7 P2. 0-P2. 7 P1. 0 P1. 1 P1. 2 P1. 3 P1. 4 P1. 5 P1.6 P1. 7 P3. 0- P3. 1 P3. 3 P3. 4 P3. 7 外围器件引脚 ULN2803 PNP-9012基极 X5045SI X5045SCK X5045CS X504550 DS1302CLK DS1302I/O DS1302RST 说明 数码管段码驱动接口 数码管段码驱动接口 X5045串行输入端 X5045串行时钟端 X5045片选端 X5045串行输出端 工作状态指示灯 DS1302时钟线 DS1302数据线 DS1302复位线 数据采集输入端 人体存在传感器输出信号端 超时报警信号输入端 光敏三极管输入信号端 单片机最小系统如图2-2所示:

图2-2 单片机最小系统

(1) 40(Vcc)20(GND)脚间的电压应有5V 。 (2) 18、19脚分别与20脚间有1.7―2.5V电压 (3) 9(RST)脚与GND间电压基本为0 。

(4) 31脚 (EA)与20引脚(GND)间电压为5V 。 2.2.2系统供电电路

系统供电原理如图2-3所示,采用+5V电压供电。本设计采用输出电压为9V的变压器。系统接通220V交流电源后,将220V交流电变压到9V,经过二极管全波整流、电解电容C1,C2滤波,再经正输出稳压器LM7805,为了缓冲负载突变,改善瞬态响应,输出端还采用了电容C3,C4,最后得到+5V的直流电压,用于给控制系统中单片机系统及其它外围电路的Vcc端供电。.

图2-3 系统供电电路

2.2.3数据采集电路

教室的环境光强度和人体存在与否是系统主要的输入参数,因此教室中的环境光照强度和人体存在成为系统数据采集的主要对象。常见的环境光强度采集器件主要有光敏二极管和光敏三极管,考虑抗干扰的需要,选用灵敏度较高的光敏三极管。此外,人体存在传感器要求灵敏度高,可靠性强。 一、环境光强度采集电路

光电传感器是一种能够将光转化为电量的传感器。采用的光敏三极管除了具有光敏二极管将光信号转化为电信号的功能外,还具有对电信号的放大功能。在无光照时,三极管的穿透电流很小,为暗电流,有光照时,产生的Ib增大,成为光电流Ie,光电流的大小与光照强度成正比,于是在负载电阻上就能得到随光照强度变化而变化的电信号。光敏三极管具有灵敏度高,体积小,工作电压低,工作电流小,发光均匀稳定,响应速度快,寿命长等特点。

环境光采集电路原理如图为2-4所示。当环境光照强度大于一定程度时,光敏三极管D6呈现低阻状态≤1KΩ,三极管Q12的基极电压升高,Q12管饱和导通,集电极输出低电平。当环境光强度小于一定程度时,光敏三极管D6呈现高阻状态≥100K,使三极管Q12截止,集电极输出高电平。其中调节R26阻值,可使三极管Q12受环境光强度影响在适当的亮度下导通。

图2-4环境光电路

二、人体存在信号采集电路

人体存在传感器采用HP-208-N-L人体感应模块(低电平输出)。基于红外线技术的自动控制产品,灵敏度高,可靠性强,广泛应用于各类自动感应电器中。人体传感器的1号引脚为电源信号端VCC,2号引脚为采集信号输出端OUT,3号引脚为地信号端GND。其硬件连接如图2-5。

HP-208VCC123C680pfp3.3

图2-5 人体存在信号采集电路

HP-208-N-L功能特点:

全自动感应:人进入其感应范围则输出低电平,人离开感应范围则自动延时关闭低电平,输出待机时的高电平。

两种触发方式:a.不可重复触发方式:即感应输出低电平后,延时时间段一结束,输出将自动从低电平变为高电平;b.可重复触发方式:即感应输出低电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持低电平,直到人离开后至延时结束,低电平跳变为高电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点).

具有感应封锁时间:感应模块在每一次感应输出后,待延时时间一结束,可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒—几十秒钟)。

微功耗:静态电流<50微安,特别适合干电池供电的电器产品; 输出高电平信号:可方便与各类电路实现对接; 技术参数:工作电压:DC4.5V至DC24V均可; 输出低电平:0V,待机时的高电平为3.3V; 延时时间:可制作范围零点几秒—十几分钟; 封锁时间:可制作范围零点几秒—几十秒; 触发方式:L不可重复;H可重复; 感应范围:<140度锥角,7米以内; 工作温度:-20—+70度。 2.2.4系统时钟电路

根据教室灯光使用特性,该系统还应受到时间的控制,因此本研究还加入硬件时钟电路以保证系统的智能化运行。

考虑到本系统停电时需为时钟电路提供电源、且不占用太多单片机资源,于是采用具有充电能力的实时时钟芯片DS1302,作为临时性存放数据的RAM寄存

器。此芯片采用的是串行通信方式,还可为掉电保护电源提供充电功能,也可以将此功能关闭。该芯片对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V—5.5V。DS1302只需三根线即可与单片机进行通信,体积小,使用简单,时钟精度较高,满足系统的要求,其引脚图如图2-6所示。

图2-6 DS1302的引脚图

各引脚的功能为:

Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。

SCLK:串行时钟,输入,控制数据的输入与输出; I/O:三线接口时的双向数据线;

CE:输入信号,在读、写数据期间,必须为高。

DS1302与单片机接口电路连接如图2-7,其中Vcc2外接3.6V可充电的锂电池,为DS1302的备用电源。Vcc1外接供电模块的稳定输出电压+5V,为DS1302的主电源。DS1302由Vcc1和Vcc2两者中较大者供电。系统正常运行时,Vcc1大于Vcc2,因此由Vcc1给DS1302供电,在主电源关闭的情况下,则由Vcc2给DS1302供电,保持时钟的连续运行。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送,与单片机的复位信号相连。时钟输入端SCLK接单片机P1.5引脚,进行时钟控制。。

图 2-7 时钟电路

2.2.5继电器驱动电路

继电器驱动接口电路如图2-8所示,这里继电器由相应的PNP型号的9012三极管来驱动。开机时,单片机初始化后的P3.5、P3.6 为高电平,三极管截止,所以开机后继电器始终处于释放状态。如果P3.5、P3.6 为低电平,三极管的基极就会被拉低而产生足够的基极电流,使三极管导通,继电器就会得电吸合,从而驱动负载,点亮相应电灯。继电器的输出端并联100欧的电阻和6800皮法电容,目的是避免继电器吸合与释放期间产生火花。继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单。

图2-8 继电器驱动电路

2.2.6超时报警电路

本系统采用的超时报警电路如图2-9所示。单片机的P3.4端口外加一个10K的上拉电阻,再经过限流电阻100欧与三极管C945的基极相连。当P3.4 端口为低电平,即基极为低电平时,三极管导通,驱动蜂鸣器发出声音,以示教室灯工作超时。若P3.4端口为高电平,即基极为高电平时,三极管截止,蜂鸣器不工作,教室灯工作正常。本系统采用超时报警电路方便了管理人员对教室灯的管理,能够科学、有效地管理教室电灯。

图2-9超时报警电路

2.2.7按键控制电路

按键控制电路如图2-10所示。按键的输入信号分别接到P2.0,P2.1,P2.2,P2.3,用二极管和与门电路将按键信号引到外中断0的引脚P3.2。按键控制电路采用单片机P2口的低4个口作按键的输入信号端,信号取自电阻的分压。当按键未按下时,P2.0—P2.3端口的电压接近电源电压,为高电平,当某一按键按下时,对应端口被按纽开关短接到地,为低电平。单片机检测4个端口电平的变化,从而确定是哪个键被按下。键盘工作方式采用中断扫描方式,4个二极管和10K电阻组成与门电路,当任一键按下时,与门输出P3.2引脚的电平都会由高为低。P3.2第二功能是外部中断0的输入引脚,我们利用其电平的变化产生中断,在中断服务程序中读入P2口低4位信号,确定哪个键按下,执行相应的按键功能,0.1pf电容和10K电阻组成滤波电路,消除按键的抖动。

图2-10按键控制电路

2.2.8系统看门狗电路

在单片机工作过程中,不可避免的会由于外界的干扰而产生程序跑飞、死机甚至造成整机瘫痪等情况。为了能够及时恢复单片机的工作,只能采用重新复位的方法,因此还应该在硬件设计中使用看门狗电路,这样在单片机发生死机的情况下,看门狗将产生一个复位信号给单片机,使单片机复位,重新执行程序。由于系统同时需要看门狗和EEPROM,所以本设计中使用芯片X5045。

X5045具有三种常用的功能:看门狗定时器、复位控制和EEPROM。这三种功能是集成在单个8引脚封装的CMOS器件内,将电源监控和看门狗功能以及高速三线非易失性存储器组合在一起,从而在很大程度上降低了系统成本并减少了对电路板空间的要求,X5045的引脚排列如图2-11。

图2-11 X5045的引脚图

看门狗定时器的预置时间是通过X5045的状态寄存器的相应位来设定的。如表2.2状态寄存器所示,X5045状态寄存器共有6位。其中WD1.WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。

表2.2 状态寄存器

WD1=0,WD0=0,预置时间为1.4S, WD1=0,WD0=1,预置时间为0.6S, WD1=1,WD0=0,预置时间为0.2S, WD1=1,WD0=1,禁止看门狗工作。

看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。

X5045硬件部分连接如图2-12。

图2-12 系统看门狗电路

系统看门狗电路由系统数据存储及故障保护部分组成,X5045是一种串行通信512字节的EEPROM,同时兼有看门狗和电源监控功能,X5045有三种可编程看门狗周期,上电和VCC低于检测门限时,输出复位信号,X5045输出复位高电平有效,为了复位更加可靠,其复位输出端外接一个10K的上拉电阻,并与AT89S51的复位端相连。看门狗能在电源上电、掉电期间产生一个复位信号。该芯片还带有一个1.4秒的看门狗定时器可用来监控单片机的工作。如果在1.4秒内未检测到其工作,出现故障,内部定时器将使看门狗WD1处于低电平状态,为系统提供保护,避免死机、程序跑飞或进入死循环等意外的发生。

第三章 控制模块软件设计

3.1系统监控主程序模块

监控程序按模块分为监控主程序和命令处理子程序叫。监控主程序的基本任务是调用子程序,一个主程序可以调用多个子程序,对于51系列单片机,系统资源有限,主程序通常是一个无限循环的过程,即是一个反复调用子程序的过程。子程序主要分为中断子程序和功能子程序,它们之间可以互相嵌套和调用,即中断子程序可以调用功能子程序。在应用软件的设计中,尽可能各个功能模块写成子程序的形式,并通过主程序调用。而命令处理子程序完成各种命令所规定的具体操作,它按各种命令再分为不同的子程序模块,它的编程方法与功能要求及系统应用密切相关。

监控主程序是整个控制系统的核心部分,其它外围模块一般都需经过监控模块实现其在控制系统中的作用。监控主程序接受和分析来自键盘的命令,进而把控制转到相应的处理子程序的入口,起引导作用。

本系统监控主程序模块主要包括对系统外围器件输入、输出参数的初始化自检,看门狗的激活,多任务操作模块的调用(系统中的信号采集处理、时钟管理、按键接收处理、驱动显示模块),实时中断处理等。除初始化和自检外,监控主程序一般总是把其余部分连接起来构成一个无限循环,系统所有功能都在这一循环中周而复始的有选择的执行 3.1.1系统自检初始化

系统自检初始化是保证整个控制系统能够正常运行的重要条件,系统加电复位后,直接进入自检初始化程序,完成系统的自检及初始化。初始化过程主要是对一些控制寄存器(如中断控制)、数据区和外部芯片(如时钟芯片DS1302等)进行初始参数设置和定义。本系统中的自检初始化主要指各接口芯片的检测、芯片内部设定参数的初始化及系统内部寄存器的初始化。

各接口芯片的检测主要检测各芯片是否已处于准备工作的就绪状态,有无硬件故障等,如检测各位LED是否正常显示系统设置开机时的界面,检测硬件时钟DS1302是处于更换芯片后初次使用为起振状态,还是处于备用电源供电振荡保持状态,即检测系统中控制时间表的有效性,检测热释红外传感器输出信号是否正常体现人体存在的信息,检测光采集电路输出的信号等。若时钟芯片处于启动状态,则需要对其进行初始化并启动实时时钟。

系统内部寄存器初始化主要是指在数据缓冲区内,各用户定义的数据变量的初始化赋值及部分特殊功能寄存器SFR的复位初始化,单片机复位后,程序计数器PC指向程序存储器的入口地址。000单元,程序状态字寄存器PSW清零,片内存储器选择工作寄存器,用户标志位F0为0状态,堆栈指针SP指向07H,其它定时器、中断允许寄存器IE,累加器ACC等皆为00H.。

3.1.2定时中断处理设计

定时中断是利用单片机内部的定时器定时,时间到或计数值已满引起的中断,内部定时器的计数器可以对内部时钟或从外部引线T0和T1输入的外部脉冲进行计数。计数器的溢出信号作为中断请求信号,去置位定时器溢出标志位,向单片机的CPU申请中断。

定时中断为周期性中断,每隔一定的时间会中断一次。本系统中设定的定时中断主要用来构造多任务操作系统,在系统响应中断后,无需对断点实施现场保护,可直接进行多任务时间的划分工作,使相应的操作任务进入就绪状态,即该中断可以启动有关的任务操作。该定时中断处理程序框图如图3-1所示:

图3-1 定时中断处理程序框图

本系统还采用了外部中断,此外部中断主要用来判断是否有外来信号输入,若有,就采集下来并加以处理;若无,则返回到主循环。

3.2数据采集模块

本控制系统中的数据采集对象为环境光信号及人体存在信号,在程序设计中对这两个数据的采集放置在多任务模块中实施定时采集。 3.2.1人体存在传感器的优缺点

人体存在传感器具有本身不发出任何类型的辐射,器件功耗很小,隐蔽性好,价格低廉的优点。而缺点是容易受各种热源、光源干扰。由于红外穿透力差,因此人体的红外辐射容易被遮挡,不易被探头接收;易受射频辐射的干扰;当环境温度和人体温度接近时,探测和灵敏度就会明显下降,甚至造成短时失灵。试验也证明了这点,如果人体存在却一定时间内没有活动,人体传感器则认为没有人体存在。为避免这种现象的出现,本系统软件程序中设计为有人体存在状态后间隔1分钟或更长的时间来对人体存在参数信号的采集。 3.2.2数据采集软件的实现

本系统考虑到环境光足够亮时,无论是否有人体存在都不开灯;而环境光不够亮时,有人体存在才开灯,无人体存在则不开灯。本系统逻辑定义为:环境光亮时为逻辑“0\符合光采集电路输出信号状态),暗时为“1\,人体存在为“1\,人体不存在为“0\,开灯为“1”,关灯为“0\,那么环境光与人体存在可以用以

下的逻辑关系表来表示,如表所示3.1:

表3.1 环境光与人体存在逻辑关系

环境光参数 0 1 0 1 人体存在参数 0 0 1 1 教室灯状态 0 0 0 1 上表数据表明可将环境光参数与人体存在参数进行与操作,又由于继电器是低电平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯的状态。

3.3时钟模块

在系统启动自检初始化时,首先会对时钟芯片DS1302的运行状态进行判断,当检测到DS1302处于启动状态时才对其进行初始化,启动时钟。实时时钟芯片DS1302的初始化及其读写程序设计的关键是要遵循其时序要求。 3.3.1数据输入输出

在对DS1302进行各种操作之前,必须先对其初始化,即需要把复位输入RST端置为高电平,如果RST输入为低电平,那么所有的数据传送中止,且I/O引脚变为高阻抗状态。在数据读/写完后,RST端应置成低电平,以防止外部干扰对DS1302内部时钟的影响。

同时,为了防止复位输入端受到外部的干扰,要求上电时,在主电源引脚Vcc2≥2.5V之前,RST必须为逻辑0。无论是读操作还是写操作,都必须在开头的8个时钟周期内把提供地址和命令信息的8位数据装入到DS1302的移位寄存器中。地址/命令信息用于指明40个寄存器中的哪个进行何种操作。数据在SCLK的上升沿串行输入,在开始的8个时钟周期把命令字装入移位寄存器之后,若跟随的是写命令字节,则在下8个SCLK周期的上升沿输入数据字节,若跟随在读命令字节的8个SCLK周期之后,在下8个SCLK周期的下降沿输出数据字节。程序流程如图3-3所示:

图3-3数据输入输出流程图

3.3.2时钟程序设计

驱动程序 //寄存器宏定义

#define WRITE_SECOND 0x80 #define WRITE_MINUTE 0x82 #define WRITE_HOUR 0x84 #define READ_SECOND 0x81 #define READ_MINUTE 0x83 #define READ_HOUR 0x85

#define WRITE_PROTECT 0x8E //位寻址寄存器定义

sbit ACC_7 = ACC^7; //管脚定义

sbit SCLK = P3^5; // DS1302时钟信号 7脚 sbit DIO= P3^6; // DS1302数据信号 6脚 sbit CE = P3^7; // DS1302片选 5脚

//地址、数据发送子程序

void Write1302 ( unsigned char addr,dat ) {

unsigned char i,temp;

CE=0; //CE引脚为低电平,数据传送中止 SCLK=0; //清零时钟总线

CE = 1; //CE引脚为高电平,逻辑控制有效 //发送地址

for ( i=8; i>0; i-- ) //循环8次移位 {

SCLK = 0; temp = addr;

DIO = (bit)(temp&0x01); //每次传输低字节 addr >>= 1; //右移一位 SCLK = 1; } //发送数据

for ( i=8; i>0; i-- ) {

SCLK = 0; temp = dat;

DIO = (bit)(temp&0x01); dat >>= 1; SCLK = 1; } CE = 0; }

//数据读取子程序

unsigned char Read1302 ( unsigned char addr ) {

unsigned char i,temp,dat1,dat2; CE=0; SCLK=0; CE = 1; //发送地址

for ( i=8; i>0; i-- ) //循环8次移位 {

本文来源:https://www.bwwdw.com/article/hbl6.html

Top