课题 - 教室智能照明系统设计(6)

2019-08-31 15:48

4.2.2数据采集软件设计的实现

本系统考虑到环境光足够亮时,无论有否人体存在都不应开灯;而环境光不够亮时,有人体存在才开灯,无人体存在不开灯。本系统逻辑定义为环境光亮时为二进制的“0”(符合光采集电路输出信号状态),暗时为“1”,人体存在为“1”,人体不存在为“0”,开灯为“1”,关灯为“0”,那么环境光与人体存在可以有以下的逻辑关系表表示,如表4. 2. 2所示: 表4. 2. 2

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

;-------------------------------------------------------------- Function: BodySensor and Iight to light port356

DoSensLight:Mov c, port33 ;Signal of Sensor

Anl c, port37

Cpl c ;have person and no light Mov port35, c ;on relay 1 Mov port36, c ;on relay 2 Jnc SensOut ;no person to out

Haveperson:mov SensDelayBuf, #5 ;delay 5 minute SensOut: Ret

4.2.3人体存在传感器的抗干扰措施

人体存在传感器易受外界影响,于是要在使用时特别注意抗干扰性能。 1.防小动物干扰

探测器安装在推荐地使用高度,对探测范围内地面上的小动物,不产生信号。

26

2.抗电磁干扰

探测器的抗电磁波干扰性能符合GB10408中4. 6. 1要求,一般手机电磁干扰不会引起误报。 3.抗灯光干扰

探测器正常灵敏度范围内,受3米外H4卤素灯透过玻璃照射,不产生信号。 4.2.4人体存在传感器的安装要求

人体存在传感器??的安装要求:人体存在传感器只能安装在室内,其误报率

2与安装的位置和方式有极大的关系,正确的安装应满足下列条件:

1.人体存在传感器应离地面2.0-2.2米。

2.人体存在传感器远离空调,冰箱,火炉等空气温度变化敏感的地方。 3.人体存在传感器探测范围内不得隔屏、家具、大型盆景或其他隔离物。 4.人体存在传感器不要直对窗口,否则窗外的热气流扰动和人员走动会引起误报,有条件的最好把窗帘拉上。人体存在传感器也不要安装在有强气流活动的地方。人体存在传感器对人体的敏感程度还和人的运动方向关系很大。人体存在传感器对于径向移动反应最不敏感,而对于横切方向(即与半径垂直的方向)移动则最为敏感.在现场选择合适的安装位置是避免红外探头误报、求得最佳检测灵敏度极为重要的一环。

4.3时钟模块

在系统启动自检初始化时,首先会对时钟芯片DS1302的运行状态进行判断,

7当检测到DS1302处于启动状态时才对其进行初始化启动时钟??。实时时钟芯片

DS1302的初始化及其读写程序设计的关键是要遵循其时序要求。 4.3.1数据输入输出

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

同时,为了防止复位输入端受到外部的干扰,要求上电时,在主电源引脚

27

Vcc2>2. 5V之前,RST必须为逻辑0。无论是读操作还是写操作,都必须在开头的8个时钟周期把提供地址和命令信息的8位数据装入到DS1302的移位寄存器。地址/命令子节用于指明40个寄存器中的哪个进行何种操作。数据在SCLK的上升沿串行输入,在开始的8个时钟周期把命令字装入移位寄存器之后,若跟随的是写命令字节,则在下8个SCLK周期的上升沿输入数据字节,若跟随在读命令字节的8个SCLK周期之后,在下8个SCLK周期的下降沿输出数据字节。 4.3.2时钟内部寄存器的使用

DS1302有控制寄存器和年、月、日、周、时、分、秒等工作寄存器组成。本系统中只用到工作寄存器中的时分秒及控制寄存器,所应用的各寄存器地址(命令)及数据寄存器分配情况如表4. 3. 2所示:

表4. 3. 2内部寄存器

寄存器名 命令字 写操作 SEC MIN 读操作 CH 0 10SEC 10MIN 10 12/24 0 A/P WP TCS 0 0 0 0 0 0 0 RS HR SEC MIN 取值范围 7 6 5 4 3 2 1 0 各位内容 80H 81H 00~59 82H 83H 00~59 01~02 HR 84H 85H 或 00~23 CONTROL 8EH 8FH CHARGER 90H 91H CLOCK BURST 说明:

BEH BFH TCS TCS TCS DS DS RS (1)上表中,时钟寄存器内的数据是以BCD码的形式存在的。其中秒寄存器的位7 定义为时钟暂停位,当此位设置为逻辑1时,时钟振荡器停止,DS1302进入低功耗的备份状态;当把此位置为0时,时钟将启动。

(2)小时寄存器的位7定义为12或24小时方式选择位。当为低电平时,选

28

择24小时方式,本系统在设计中采用的就为24小时方式。

(3)写保护寄存器的位7是写保护位,在对时钟进行些操作之前,位7应先置为0,当它是高电平时,写保护防止对任何其它寄存器进行写操作。此外,涓流充电寄存器各位的作用及工作原理等在本论文前半部分DS1302的硬件设计中己作过介绍,此处不再详述。 4.3.3时钟自检初始化

考虑刚买来的时钟芯片处于一切未知状态,于是必须对DS1302进行自检初始化。DS1302的自检初始化程序设计流程图如图4.3.3.1所示: DS1302正常工作 返回主程序 两次读取的秒钟数据是否相同 设置DS1302初始时间 再次读取秒钟数延时1.5秒 秒钟大于60H? 开始 读取DS1302秒钟时间 图4.3.3.1 DS1302的自检初始化程序设计流程图

DS1302的自检初始化程序如下所示:

;--------------------------------------------------------------- Function: Start check DS1302

DSCheck: Mov R6, #DS1302Sec+1 ;Second Time

ACall DSRdlByte Mov DSCheckData , a Cjne a, #60H, $+3

29

DSCheckNext: Jnc DSSetTime; a>=60H to Set DS1302's Time

Acall DSDelay; DS1302 delay 1 second

Mov R6, #DS1302Sec+l ; a<59H Read DS1302's Second again

ACall DSRdlByte Cjne a, DSCheckData, DSOK ;

Two DSSec of Reading is different

AJMP DSSetTime

DSOK: Ret

检查DS1302芯片是否正常工作,本系统中通过先读取秒钟寄存器的数据,将数据存储起来,且将此数据与60H相比较,若大于60H,说明时钟数据不正常,转去设置时钟时间;若小于并等于60H,延时一秒钟后,再次读取秒钟寄存器的数据,与第一次读取的秒钟数据相比较,若这两次的数据相同,说明时钟数据不正常,转去设置时钟时间;若正常,则退出到主程序。初始化DS1302的充电状态及其初始时间的设置。 4.3.4时钟程序设计

对DS1302进行读写的程序流程图如图4.3.4.1所示:

30

开始 将DS1302写保护 变量初始化 RST—端送高电平 去除写保护 写入DS1302读地址 RST—端送高电平 将该地址数据读出 写DS1302地址 数据读完了 向该地址写入数据 数据写完了 将读出的数据暂存,待显示 结束


课题 - 教室智能照明系统设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:测量培训试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: