4.1存储器地址分配
X1227S8I器件中存储器地址0x35~0x30用于定义年、月、日、时、分、秒。地址0x3f为状态寄存器(SR),用来控制写使能锁存(WEL)和寄存器写使能锁存(RWEL)的写使能锁存。地址0x80~0x93为自定义的3种工作方式,方式1为整夜工作,它根据经纬度自动计算太阳日出和日落时间,完全由日出和日落时刻控制开关;方式2为半夜工作,在日落时刻开,用户定时关;方式3为自设工作,用户可自设定开和关时刻、节电方案(正常、夜灯、半夜灯)、开灯时间、夜灯时间、半夜灯时间、关灯时间、经度、纬度、偏差及电压波动偏差。其中,节电方案有3种不同大小的降压档。经度和纬度用于计算日出和日落时间。由于大气层的散射作用,日落时,天还未完全黑,还要持续一段时间,因此需要对日落时间进行修正,以最大程度地降低路灯的电力损耗。偏差用于调节开关灯的早晚。当偏差为±5为正时,数字越大,开灯越晚,关灯越早;当偏差为负时,数字越大,开灯越早,关灯越晚;当偏差为零时,则为标准日出日落时刻(俗称黄昏)。偏差每一级日出时刻和日落时刻相差大约5 min。电压波动偏差用于自动调节电压与设定值的偏差。
4.2程序设计流程图
图3给出系统主程序流程图。它采用C语言编程。图4给出节电档位控制流程图。图中,t为当前时间,t1为开灯时间,t2为夜灯时间,t3为半夜灯时间,t4为关灯时间,tf为工作状态标志,用以防止同一档位重复调节。图5给出通讯接口流程图,通讯采用中断方式。
5结语
由于路灯节电控制器系统采用了X1227S8I时钟器件,软件定时占用CPU硬件资源大大减少;使用I2C总线,占用接口资源也大大减少,系统成本低,定时准确,不受系统掉电影响,稳定可靠;系统可根据实时时钟利用日出和日落时间自动开启路灯,从而最大程度地缩短路灯的开关时间,使系统更智能化,节电效果更理想。