引言
LED(发光二极管)作为一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点,代表着未来照明技术的发展方向。本文设计了以AT89S51 单片机为核心的多功能白光LED 台灯系统,采用PT4115 大功率LED 恒流驱动方案,可实现对LED 台灯的PWM 调光控制;同时兼有时钟日历、声光闹钟、温度检测、液晶显示等多项功能。在实现高效节能的同时,为家庭使用提供了极大的便捷。
该多功能LED台灯系统采用20 只5mm 高亮白光LED 灯珠为光源,以AT89S51 单片机为主控芯片,由LED 恒流驱动系统、时钟系统、测温系统、液晶显示系统、蜂鸣系统、按键系统组成。系统结构框图如图1 所示。
该系统可具体实现LED 台灯的10 级PWM 调光控制;液晶屏实时显示时钟、日历与环境温度信息;闹钟功能采用声光报警方式,即一旦到达闹钟时间,LED 台灯自动点亮,并发出蜂鸣声报警,以唤醒用户;用户可通过按键系统实现对时钟日历与闹钟参数的设置、LED 亮度的调节以及闹钟报警的解除。
图1 系统结构框图
1.1 单片机主控系统
本设计主控系统采用ATMEL 公司的高性能AT89S51 芯片实现,其P0 口外接10K 的上拉电阻,P0.0~P0.7 同时作为DS12C887 的数据接口与液晶1602 的数据接口。P2.0~P2.3分别连接DS12C887 芯片的片选端CS、地址选通输入端AS、数据选择端DS 与读/写输入端R/W,P3.2 连接其闹钟中断请求输出端IRQ.P2.5~P2.7 分别连接液晶1602 的使能端EN、数据/命令选择端RS、读/写选择端RW.P2.4 作为蜂鸣器控制端。P3.0 作为DS18B20 的信号输入端。P3.1、P3.4、P3.5、P3.6 与P3.7 作为S2~S6 按键系统。P1.1 作为PWM 信号的输出端并连接PT4115 芯片DIM 端,用于PWM 调光控制。系统晶振电路由12MHZ 晶振与两个30PF 电容组成;复位电路则由S1 按键、10K 电阻与10uF 电解电容构成。主控系统电路如图2 所示。
图2 单片机主控系统电路图
1.2 恒流驱动系统
本设计 L ED 光源采用相互并联方式,共由20 只5mm 高亮度小功率LED 灯珠组成;每只LED 灯珠的压降约3.1V,工作电流约20mA.由白光LED 的正向伏安特性可知,当LED 端电压超过其正向导通电压后,较小的电压波动都会导致工作电流的的剧烈变化,从而影响LED 的正常使用,固LED 宜采用恒流驱动方式。因此,本设计LED 采用高性能PT4115 恒流芯片驱动,PT4115 是一款连续电感电流导通模式的降压恒流源芯片,能将直流电压直接转换成稳定的恒流输出;其采用6~30V 宽电压输入,输出电流可达1.2A,转换效率高达97%,输出电流精度达±5%.该芯片内部含有抖频特性,极大的改善EMI,同时具有过温、过压、过流、LED 开路保护等多种功能。该芯片适合用于绿色照明LED灯的驱动电路,具有应用电路非常简洁的优点。LED 恒流驱动电路如图3 所示。
图3 LED 恒流驱动系统电路图
通过 PT4115 芯片上的DIM 端,可以方便的进行模拟或PWM 调光。由于模拟调光是直接改变流过LED 电流的大小来实现亮度调节,除了亮度会改变以外,也会影响白光的质量,即不同电流下发出的白光存在色偏。因此,本设计采用PWM 调光方案,PWM 调光的基本原理是保持LED 正向导通电流恒定,而通过控制电流导通和关断的时间比例,即改变输入脉冲信号的占空比,使LED 产生亮暗变化;并利用人眼的视觉残留效应,当LED 亮暗变化频率大于120Hz 时,人眼就不会感觉到闪烁,而看到是LED 的平均亮度。PWM 调光的优势是LED 正向导通的电流是恒定的,LED 的色度就不会像模拟调光时产生变化。
PT4115 恒流驱动输出的电流值计算公式为:
IOUT =(0.1×D)/ Rs (D 为方波信号占空比,Rs 为限流电阻。
本设计 LED 光源采用20 只小功率白光LED 灯珠并联方式,且每只LED 灯珠额定电流为20mA,则PT4115 恒流驱动输出最大电流IOUT 应为400mA,因此Rs 选取0.25 Ω 电阻。
L1 为镇流电感,选取68μ H,用于稳定通过LED 的电流。D1 是续流二极管,当芯片内部MOS 管截止状态时为储存在电感L1 中的电流提供放电回路;由于工作在高频状态,D1 选用正向压降小且恢复速度快的肖特基二极管SS24.
PWM 脉冲信号则由单片机P1.1 产生,其高低电平决定LED 的通断状态。将定时器T0溢出中断定为1/2500 秒(即400μ S),每10 次脉冲作为一个周期,即频率为250HZ.这样,在每1/250 秒的方波周期中,通过改变方波的输出占空比,从而实现LED 灯的10 级亮度调节,即LED 亮度等级由每个周期内的高电平脉冲数目决定。当高电平脉冲个数为1 时,占空比为1/10,亮度最低,其调光原理如图4 所示;当高电平脉冲为10 时,占空比为1,LED亮度最高。
图 4 PWM 调光原理图
1.3 时钟系统
时钟系统采用高性能的DS12C887 时钟芯片,该芯片功能丰富,使用简单,是一款高精度实时时钟芯片;其可以自动产生世纪、年、月、日、时、分、秒等时间信息,具有闰年补偿及闹钟(定时)功能,并且内部自带有锂电池,外部掉电时,仍可维持时钟准确,其内部时间信息能够保持10 年之久;外部系统断电后,用户无需重新设定时间。
DS12C887 时钟芯片有两种总线工作模式,即Motorola 和Intel 模式。本设计选用Intel模式,即将芯片第一引脚MOT 接GND.同时,时钟系统设置为24 小时模式,寄存器存储模式选为二进制格式。P0.0~P0.7 连接其地址数据复用端口AD0~AD7.P2.0~P2.3 分别连接芯片片选端CS、地址选通输入端AS、读/写输入端R/W 与数据选择端DS.
P3.2 连接中断请求输出端IRQ,用于处理闹钟中断。该时钟接口电路如图5 所示。
图5 时钟系统电路图
1.4 液晶显示系统
显示系统采用1602 字符型液晶。该液晶可显示两行,每行显示16 个字符;且体积小、能耗低、操作简单;适合于本设计所需数字、英文字母以及特殊符号的显示要求。通过单片机控制1602 液晶实现首行年、月、日、星期显示,第二行时、分、秒以及环境温度显示。
本系统 1602 液晶采用并行操作方式,P0.0~P0.7 通过借助10K 的上拉电阻连接其数据端口DB0~DB7,P0 口同时也连接着DS12C887 的数据地址端口,由于各自片选信号不同,选中时操作对应芯片将不会造成操作冲突。P2.5~P2.6 分别连接1602液晶的使能端E、读/写选择端RW、数据/命令选择端RS.第3 引脚为液晶显示对比度调节端,通过10K 滑动变阻器接地,用于调节液晶的显示亮度。第15 管脚背光源正极BLA通过10 欧电阻接地,第16 管脚背光源负极BLK 接地。该液晶接口电路如图6 所示。
图6 液晶系统电路图
1.5 温度检测系统
温度检测系统选用DALLAS 公司"一线总线"接口的数字温度传感器DS18B20,该传感器具有微型化、低功耗、高性能等优点,可直接将温度转化成串行数字信号处理,测温范围为-55~125℃,最高分辨率可达0.0625℃。DS18B20 共有三个引脚电源正VCC、电源负GND 和信号输入输出口DQ.R3 为4.7K 的上拉电阻,用于保证单片机与DS18B20 通讯时高低电平准确的被单片机机和DS18B20 识别。单片机P3.0 口通过R3 连接DQ 端口实现温度数据的采集处理,并通过液晶屏实时显示。温度检测电路如图7 所示。
图7 温度检测电路图
1.6 蜂鸣系统
蜂鸣系统用于产生闹钟报警声以及按键提示音。由单片机P2.4 口控制PNP 三极管9012的通断实现对蜂鸣器声音控制;通过延迟函数实现蜂鸣报警声的长短音控制,长音'滴'用于闹钟铃声,短音'滴'用于按键提示音。蜂鸣系统电路如图8 所示。
图8 蜂鸣系统电路图
1.7 按键系统
按键控制系统由S2~S5 五个按键组成,分别为S2 时间设置键、S3 数值增大键、S4 数值减小键、S5 闹钟设置键以及S6 亮度调节键。S2 用于选择需要调整的时间日历以及闹钟参数,并作为时间日历参数的存储确认键。S3 与S4 用于调整被选参数值的大小。S5 用于闹钟查看与存储确认键。S6 用于LED 灯光10 级亮度的调节键。按键系统电路如图9 所示。
图9 按键系统电路图
1.8 电源系统
本系统设计最大功率约1.6W,可采用电池或稳压电源多种方式供电。由于系统光源采用20 只LED 灯珠并联组成,所以LED 恒流驱动芯片PT4115 供电电源在6~30V 电压范围内均可使LED 灯正常使用。但单片机供电系统采用三端稳压芯片7805,该线性稳压芯片正常工作输入电压与输出电压差值应至少高于2V,若差值过大会增加额外功耗。因此,本系统宜选用2 节4.2V 锂电池或9V 的稳压电源方式供电。同时,本文LED 恒流驱动系统设计简洁灵活,可根据用户需求适当调整驱动电路参数,即可扩展LED 照明功率,最大可至10W左右。
2 系统软件设计
该系统控制程序主要包含系统初始化程序、实时时钟芯片处理程序、温度传感器芯片处理程序、液晶显示程序、键盘检测与处理程序、闹钟中断以及定时器产生PWM 程序构成。
2.1 系统主程序
系统主程序主要包括系统初始化程序(包括I/O 口初始化、DS12C887 时钟芯片初始化、液晶1602 的初始化、外部中断0 与定时器T0 设置)、按键检测和处理程序、时钟数据的读取与处理程序、温度数据的读取与处理程序、液晶显示程序、闹钟报警的判断和处理程序、PWM 调光处理程序等。程序中设置闹钟标志位Flag_ri,一旦闹钟时间到达,时钟芯片IRQ引脚触发外部中断0,进入中断程序则置Flag_ri=1,用于主程序中闹钟报警的判断与处理。
系统主程序流程图如图10 所示。
图10 主程序流程图
2.2 按键检测和处理程序
按键控制系统由S2~S6五个按键组成,分别为S2时间设置键、S3数值增大键、S4数值减小键、S5闹钟设置键以及S6亮度调节键。S2用于选择需要调整的时钟以及闹钟参数,根据S2按下次数,依次选择秒、分、时、星期、日、月、年,液晶屏上被选参数下方以光标闪烁状态提示,再通过按下S3或S4调整被选参数值的大小,S2按下累积8次时,则退出选择功能并保存当前数据至时钟芯片。S5用于闹钟时间的查看与设置;首次按下S5,1602液晶屏第二行显示已设置的闹钟时间;可通过S2、S3与S4重新设置闹钟时间;再次按下,则退出闹钟查看功能并保存当前设置的闹钟参数至时钟芯片。同时,S3与S4还可独立作为闹钟产生时的取消键与LED灯光的关闭键。S6实现LED灯光亮度的10级调节,每按一次,LED亮度增大一级;当达到亮度最大时,再次按下则关闭LED灯光。每次有按键按下,蜂鸣器都以短'滴'声提示。按键检测与处理流程图如图11所示。
图11 按键检测与处理流程图
2.3 闹钟中断程序
系统到达设置的闹钟时间,DS12C887 时钟芯片IRQ 引脚输出由高电平变为低电平,作为单片机P3.2 口INT0 中断的申请输入,并可通过读取DS12C887 芯片的C 寄存器来清除IRQ 引脚输出。因此,将外部中断INT0 设置为负跳变沿触发中断,并设置闹钟标志位Flag_ri,闹钟时刻到达时设置Flag_ri=1,用于主程序中的闹钟报警处理。闹钟中断程序如图12 所示。
图12 闹钟中断流程图
2.4 定时器中断程序
为产生调节 LED 灯光亮度的PWM 信号,定时器T0 设置为工作方式0,即13 位计数器定时,最多装载数值为213=8192 个。因为系统晶振采用12MHz,赋值使TH0=(8192-400)/ 32 与 TL0=(8192-400)%32,即可实现400μ S 的定时中断。10 次中断(即4mS)作为一个周期,通过调节每个周期内单片机P1.1(该控制口名称定义为LED_PWM)输出的占空比来产生PWM 脉冲信号,以控制PT4115 恒流驱动芯片实现LED 灯的10 级亮度调节。
程序设置对T0 中断次数(即定义为T0_num)进行计数,以便判断一个周期到否;同时判断比较高电平脉冲个数(即定义为scale 值,由调光键S6 按下次数设置)用于实现不同亮度等级的调节。在定时器T0 中断服务程序中,首先T0 重新装入定时为400μ S 的初值;定时器中断次数T0_num 加1,判断一个方波周期到否,若到达,令T0_num 归零,并将P1.1口输出电平置高(即LED_PWM=1);如果一个方波周期还没到,则与亮度等级scale 值作比较,判断高电平脉冲个数scale 到否,若到达,令P1.1 口输出电平置低(即LED_PWM=0),否则继续保持P1.1 口输出高电平(即LED_PWM=1);而后中断返回,等待下一次定时中断。
这样,P1.1 口就产生了所需的PWM 调光信号。定时器生成PWM 流程图如图13所示。
图13 定时器生成PWM流程图
3 实验结果
根据以上设计方案,本文制作了该款基于PWM 调光的多功能LED 台灯。经调试后系统运行稳定可靠,基本可以满足家庭生活的使用要求。系统工作时,最低功率(即LED 熄灭状态)为0.28W;最大功率(即LED 最高亮度状态)约为1.52W;同时,液晶显示时间、日历与温度数据准确,闹钟功能稳定。实物照片如图14 所示。
图 14 实物照片