基于单片机的教室灯光控制系统的设计

2026/1/27 17:38:14

启动 复位端变高 启动一次数据传输工作 写命令字节一位 SCLK脉冲 够8次吗 Y 写数据字节一位 N SCLK脉冲 够8次吗 Y 复位端变低 N 结束 图4-2 数据输入输出流程图

4.3.2 时钟自检初始化

在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。考虑刚买来的时钟芯片处于一切未知状态,于是必须对DS1302进行自检初始化。

DS1302的自检初始化程序设计流程图如图4-3所示:

23

基于单片机的教室灯光控制系统的设计

开始 读取DS1302秒钟时间 Y 秒钟大于60H N 延时1秒 再次读取秒钟数再次读取的秒钟数据是否相同 N DS1302正常工作 Y 设置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芯片是否是正常工作,本系统中通过先读取秒钟寄存器的数据,将数据存储起来,且将此数据与60H相比较,若大于60H,说明时钟数据不正常,转去设置时钟时间;若小于或等于60H,延时一秒钟后,再次读取秒钟寄存器的

24

数据,与第一次读取的数据相比较,若两次数据相同,说明时钟数据不正常,转去设置时钟时间;若正常,则退出到主程序。初始化DS1302的充电状态及其初始时间的设置。

4.3.3 时钟程序设计

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

开始 将DS1302写保护 变量初始化

去除写保护 RST一端送高电平 写DS1302地址 RST一端送高电平 写入DS1302读地址 将该地址数据输出 数据读完了 将读出的数据暂存 向该地址写入数据 数据写完了

结束 图4-4 DS1302进行读写的程序流程图

在对DS1302进行读写操作时,读出的数据为BCD码,同样在写操作时,写入的数据必须为BCD码,这就需要在数据写入之前、读出之后进行必要的数据进制之间的转换。本系统中,因设定的时间参数一般为二进制或十六进制数,为了便于同DS1302的时钟数据进行比较,故在程序中需进行二进制与BCD码之间的转换,其相互间的转换程序如下:

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

25

基于单片机的教室灯光控制系统的设计

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点时,蜂鸣报警提示学生系统进入手动强制模式,则由学生自动控制。

系统的总流程框图如图4-5所示:

4.5 本章小节

本章结合此次教室灯光控制系统设计的硬件部分分析研究了其软件部分,主要包括:系统监控主程序模块、数据采集模块、时钟模块。在程序设计过程中,采用合理的程序设计结构是一项关键技术。在本系统的设计过程中,总体设计采用自上而下的设计思想将主程序设计好,而在各个部分展开成从属程序或子程序时,是将各个小模块分别进行设计和编程,同时在编程的过程中又用到了结构程序设计的思想。

26


基于单片机的教室灯光控制系统的设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于单片机的教室灯光控制系统的设计 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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