家庭智能LED照明灯具的软件设计

2017-02-14 10:03常广志
科技与创新 2016年21期
关键词:色温单片机

常广志

摘 要:家庭智能LED照明灯具的软件设计直接关系到该系统能否正常运行。利用汇编语言,合理地分配和利用AT89S52单片机的各种资源,是实现各项功能的重要保障。

关键词:LED照明灯具;单片机;色温;智能照明

中图分类号:TP273 文献标识码:A DOI:10.15913/j.cnki.kjycx.2016.21.075

家庭智能LED照明灯具具有自动探测人体,自动根据环境光和时间决定灯光亮度,自动根据季节、温度调节色温等功能。所以,除各种传感器、时钟芯片、驱动单元的支持外,设计一套合理、高效的软件系统是本系统成功与否的关键。此软件以12 MHz晶振为基准,利用AT89S52单片机的定时器产生一个基准节拍,从而产生调光所需的PWM控制脉冲。

1 LED驱动脉冲

本系统的LED驱动采用带PWM调节功能的恒流源驱动模块,它可以通过1 kHz左右的脉宽调制脉冲实现对电流的调节,从而实现调光的作用。单片机晶振为12 MHz,最小定时周期为1 μs,该设计以125 μs为定时周期,一个周期使端口状态翻转一次,作为外部并入串出芯片74LS165的时钟信号,8个周期组成4个时钟节拍,形成一个PWM脉冲周期,即脉冲频率正好为1 kHz,可以满足驱动模块的要求。在自动模式下,该灯具亮度分为两个等级,每个等级又可分为高、中、低三种色温状态,所以两组LED发光组件一共有6种状态。本设计对每组灯的驱动脉冲占空比从0%~100%分成了4个等级,分别为0、1/4、3/4和全周期。驱动模块采用负逻辑,所以正常亮度时,三种色温状态对应的PWM脉冲波形如图1所示。低亮度时,各输出下调一档即可。

2 系统软件设计

此系统自定义了多种状态寄存器,用于控制各项输出。例如照明波形寄存器选用2个可位寻址的寄存器,分别储存白光和黄光的PWM脉冲波形状态。各寄存器低四位和高四位内容相同,便于简化输出程序。时间、月份、温度信息和来人、遥控中断等都是通过判断,对此寄存器内容进行适当调整来改变照明状态。照明输出端口也是读取此寄存器数据,并发送给外部芯片74LS165的串行输入端,接它自己的串行输出,形成数据循环,控制各自发光驱动模块的PWM输入端,从而组合出不同的亮度和色温。

另选用一可位寻址寄存器,定义了来人标志位、昼夜标志位、环境亮暗标志位和显示内容标志位等几个标志位。温度、时间、遥控器值都有各自的寄存器相对应。另外还定义了多个计数器,例如显示周期计数器、显示位置计数器和来人延时计数器等。

该软件系统利用单片机定时器产生的中断为基础,使各输出产生定期变化。通过自定义的各项状态、数据寄存器决定输出的变化。来人判断和遥控通过外部中断实现。时钟信息、温度信息由主程序定时读取,明暗判断通过查询方式检测。

2.1 主程序设计

本系统主程序简化流程如图2所示。系统上电复位后先设定定时中断优先级为高,启动定时器,通过定时中断产生节拍,作为74LS165的时钟信号,来形成LED驱动所需的PWM脉冲。DS1302是典型的时钟芯片,它使用起来非常方便,读取的时间信息和月份信息分别放在各自的寄存器中。时间信息用于判断是否为睡眠时段,从而决定光强输出是否减半;月份信息用于判断季节,然后影响色温值。读取温度信息后要进行阈值判断,在不同季节,阈值有所不同,当超过一定阈值时,将改变色温值。例如,初秋色温偏高,给人凉爽的感觉;但是在阴雨天,天色昏暗,温度降至18 ℃以下时,色温会转为偏低状态,使人感觉温暖。照明输出由送往74LS165的数据决定,显示信号输出由显示子程序负责完成,键盘输入和来人检测分别作为两个外中断来处理。

2.2 子程序设计

显示输出子程序通过读取显示周期计数器值来决定是否改变输出内容。显示周期计数器由定时中断执行加1操作,显示输出每2 s转换一次温度和时间值,转换后计数器清零。显示内容取自温度寄存器和时间寄存器,它们的数据都以BCD码存放,只要对每一位进行查表译码,形成相应七段显示码,再与显示位寄存器数据一起输出即可,每次显示一位,四位数码轮流显示。

定时中断子程序负责产生74LS165时钟,它每125 μs就会重复执行一次,所以中断程序要尽量小,指令在8字节以内,就可以放在特定的中断响应地址区。本设计定时中断只有3条指令,占用4个字节,需要4个机器周期即可完成,且不影响其他程序的运行,无需现场保护。

来人中断子程序是一个外部中断,它由人体感应模块产生的高电平触发,为消除干扰,触发后软件通过查询再确认一次,然后查询光敏探测端电平,判断环境光的亮暗,决定是否亮灯。

例如环境较暗,软件查询时间信息,看是否为睡眠时段,以决定亮灯的强弱。上述操作调节了照明状态寄存器,随后将数据写入74LS165并口,即可改变灯光状态。灯光开启后还要启动来人延时,延时结束恢复数据。

使用遥控器时,遥控接收端收到的是一串行数据,该数据

触发另一个外中断源,且此中断源优先级高于来人中断,中断响应后将关闭来人中断,然后读取按键值,作出相应处理,同时调用显示子程序查看遥控结果。遥控按退出键后,打开来人中断。各中断响应程序简化流程如图3所示。

3 总结

目前本系统仍在试验阶段,白光和黄光的发光状态仅有6种组合,各色光的波形寄存器都是8位,还可继续拓展,今后需进一步研究,增加双色光的组态,并请体验者实际体验色温和亮度的影响,使系统更加合理。另外,测光组件也有待多级化,遥控器还可以进一步开发定时照明等功能。

参考文献

[1]陈宜建.一种智能LED驱动器设计[J].信息化研究,2015(01).

[2]文皓.多路LED调光电路的研究与设[D].成都:电子科技大学,2012.

[3]杨程凯,唐绪伟.一种电子万年历的设计与实现[J].电子技术与软件工程,2014(03).

〔编辑:王霞〕

猜你喜欢
色温单片机
学生台灯色温不宜超过4000K
学生台灯色温 不宜超过4000K
单片机在智能控制中的应用
颜色也有温度吗
C8051F020与80C51单片机的异同点
选择合适的色温
保护视力,我有智能调整屏幕色温
电视节目中高色温灯光的应用与探索
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨