基于单片机的室内灯光智能控制系统的设计(5)

2019-04-15 22:58

商丘学院本科毕业设计

4.2.4 人体存在传感器的安装要求

人体存在传感器只能够安装在室内,如果安装的位置或者方式不合理,那么通常就会引起误报,所以正确的安装必须要满足下列条件: (1)人体存在传感器应离地面2.0-2.2m。

(2)人体存在传感器一定要远离空调、火炉等这些空气温度变化比较一般敏感的地方。 (3)人体存在传感器所能探测得到范围内不得有隔屏、大型盆景或者其它隔离物。 (4)人体存在传感器不能正面直接对着窗口,不然的话,窗户外面的热气流扰动以及人员走动就会引起误报。人体存在传感器也不要安装在有强气流活动的地方。

实际使用中,人体存在传感器前面必须安装菲尼尔透镜,它可以配合热释电红外传感器提高接收灵敏度,这样就可以提高检测距离和范围。可增加到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所示。

17

商丘学院本科毕业设计

启动 复位端变高 启动一次数据传输工作 写命令字节一位 SCLK脉冲 够8次吗 N

Y 写数据字节一位 SCLK脉冲 N 够8次吗

Y 复位端变低 结束

图4.2 数据输入输出流程图

4.3.2 时钟自检初始化

如果像对RAM进行数据传送,那么DS1302就要先发送命令字节。如果我们要进行的是单字节传送,在8位命令字节传送结束后,下2个SCLK周期的上升沿就要输入数据字节,或者在下8个SCLK周期的下降沿输出数据字节。DS1302第一次加电后,我们必须对其进行初始化操作。一旦它被初始化后就可以按正常方法调整时间。刚买来的时钟芯片很可能处于一切未知状态,于是我们必须对DS1302进行自检初始化。

DS1302的自检初始化程序设计流程图如图4.3所示。

18

商丘学院本科毕业设计

开始 读取DS1302秒钟时间 Y 秒钟大于60H N 延时1秒 再次读取秒钟数Y 再次读取的秒钟数据是否相同 N 设置DS1302初始时间 DS1302正常工作 返回主程序

图4.3 DS1302的自检初始化程序设计流程图

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

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

DSCheck: Mov R6,#DS1302Sec+1 ;Second Time ACall DSRd1Byte Mov DSCheckData,a Cjne a,#60H,$+3

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芯片是否是正常工作,本系统中通过先读取秒钟寄存器的数据,将数据

19

商丘学院本科毕业设计

存储起来,且将此数据与60H相比较,若大于60H,说明时钟数据不正常,转去设置时钟时间;若小于或等于60H,延时一秒钟后,再次读取秒钟寄存器的数据,与第一次读取的数据相比较,若两次数据相同,说明时钟数据不正常,转去设置时钟时间;若正常,则退出到主程序。初始化DS1302的充电状态及其初始时间的设置。 4.3.3 时钟程序设计

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

开始

将DS1302写保护

RST一端送高电平 写入DS1302读地址 将该地址数据输出 数据读完了 将读出的数据暂存 变量初始化 结束

去除写保护

RST一端送高电平

写DS1302地址 向该地址写入数据

数据写完了

图4.4 DS1302进行读写的程序流程图

20

商丘学院本科毕业设计

在对DS1302进行读写操作时,为了保证读出的数据和写入的数据一致为为BCD码,我们就必须在数据写入之前,读出之后进行数据之间的转换。在这个系统中,由于设定的时间参数大多为二进制或十六进制数,为了方便于同DS1302的时钟数据进行比较,所以在程序中很有必要进行二进制与BCD码之间的转换,其相互间的转换程序如下:

------------------------------------------------------- 二进制转换为BCD码 Function: DisTimeBCD: DisTimeBCD: Mov A, @R0 Anl A, #OFH Mov @Rl,A Inc Rl Mov A, @R0 Swap A Anl A, #0FH Mov @R1,A Inc Rl Inc R0 Ret

------------------------------------------------------------ 4.4 系统工作总流程

一般情况下,设计的这个教室灯光控制的工作模式可以分两种:自动控制和强制控制。系统首先默认为自动控制模式。当系统进入初始化后,若自诊断键盘按下,那么系统就会进入强制控制模式,这时系统就会通过键盘扫描程序,确认控制灯具的亮与熄;若没有键按下,那么它就为自动控制模式,它可以利用自然光采集电路,从P3.7口的高低电平由此来判断自然光强度,如果光照强,则灯具就会被熄灭;若光照强度弱,那塔就会继续读取人体存在传感器的P3.3这个引脚,如果有人存在则亮灯。最后,如果教室内的灯还亮着时,并且系统检测到教室内已经无人,则蜂鸣报警就会响10秒后熄灭灯具。继电器驱动P3.5/P3.6口的高低电平控制着灯具的熄灭与照亮。

另外,系统也会受到时间的控制当晚上10点以后,如果教室内的灯光仍然亮着,那么蜂鸣报警就会提示学生系统进入手动强制模式,这时就会由学生自动控制。

21


基于单片机的室内灯光智能控制系统的设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:教室照明控制器的设计

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

马上注册会员

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