( 5) 为保护负载( 灯具) , 蓄电池过放保护恢复时应用软件设置一个回差电压, 这样负载开关不会出现颤抖现象, 有利于延长灯具的使用寿命。
( 6) 根据STC12C5410AD 的Data Flash 的特点,数据写入时必须启动ISP/IAP 命令, CPU 等待IAP动作定时后, 才继续执行程序, 要先关断中断( EA) .
还应注意数据写入Data Flash 存储器, 不能跨越扇区。
3.2 单片机软件编程
系统单片机软件流程如图3、4 所示。
图3 按键程序流程。
图4 电压检测子程序流程
(1)ADC 子程序
INT8U ADC(INT8U number)using 2
{number=number&0x07;//通道号不超过7
ADC_CONTR = ADC_CONTR&0xe0; //清ADC_
FLAG、AD 不启动
ADC_CONTR = ADC_CONTR|number; //选择通道
ADC_CONTR = ADC_CONTR|0x08;//启动A/D 转换
while((ADC_CONTR&0x10)! =0x10); //等待A/D转换结束
return (ADC_DATA);//结果返回
}
(2) 外部0 中断响应子程序
void Service_INT0() interrupt 0 using 1
{ if(P3_2) //高电平,认为是干扰信号触发中断
return;
delay1(5000);//10ms 延时
if(P3_2==0)
{load_switch_1=LSTOP;//负载开关1 关
LOOP1_DL=1;//置负载短路标志
}
}
4 结束语
本文所设计的太阳能路灯控制器可适用12 V或24 V 工作的光伏系统, 可以直接驱动直流节能灯或通过逆变器驱动无极灯等作为照明光源, 也可以驱动一些直流低压负载用于城市亮化。控制器的两路负载输出可以用于机动车道和人行道的照明, 照明时间和工作模式可以灵活设置。着重解决了如何对蓄电池及负载进行有效管理的问题,提高了太阳能电池板的使用效率, 延长了蓄电池的使用寿命, 防止因线路问题而造成意外事件的发生。