太阳能路灯控制器设计
基于STC12C5410AD的太阳能路灯控制器设计
用模块化方式,大电流信号与小电流信号要分离,对放大电路的线路尤其要精心布置。数字地和模拟地分开,注意电源线和地线的布局。
-29-
时应用软件设置一个回差电压,这样负载开关不会出现颤抖现象,有利于延长灯具的使用寿命。
(6)根据STC12C5410AD的DataFlash的特点,数据写入时必须启动ISP/IAP命令,CPU等待IAP动作定时后,才继续执行程序,要先关断中断(EA)。还应注意数据写入DataFlash存储器,不能跨越扇区。
3
系统软件设计
与本设计方案的硬件电路对应的软件程序包
括:主程序、定时中断程序、外部中A/D转换子程序、断子程序及键盘处理子程序、充电管理子程序、负载管理子程序。单片机的软件编程以KeilC编译器的Windows集成开发环境μvision2作为开发平台,采用C51高级语言编写。
3.2单片机软件编程
系统单片机软件流程如图3、4所示。
3.1软件编程要点
(1)本系统采用较少的按键实现了诸多功能,如负载工作模式的设置、双灯同时工作还是分时工作、负载工作时间的设定、自检功能等,为防止误操作采取了一些措
施。这种方法实际上是一键多用的一种尝试,还可以推广到更复杂的人机对话的设计,其思路可参见按键处理流程图。
(2)键盘在定时中断服务程序中读取,用中断间隔时间实现键盘的去抖,不必编写另外的延时程序,提高了CPU的利用效率。键盘值存入数据缓冲区,在主程序中读数据缓冲区的内容,执行键盘功能散转子程序。
礼花燃放)对太阳能电池(3)环境光线(闪电、
板的采样电压有明显影响,故在白天、黄昏的识别时,要进行软件延时,一般控制在2~3min。
(4)外部中断为高优先级中断,编制子程序实现负载过流、短路保护时,要充分考虑到负载启动瞬间会产生数倍于额定电流的冲击电流,冲击电流维持时间在3ms ̄5ms,应在软件上采取措施,避免短路与负载开启的误判。确定负载过流、短路后,切断负载输出。负载切断后,每隔一段时间,如短路信号已20s,应试接通负载开关,当发现过流、
消除,则恢复负载的输出,否则负载开关仍然保持断开。
(5)为保护负载(灯具),蓄电池过放保护恢复
转换结束
图4
电压检测子程序流程
图3按键程序流程
(1)ADC子程序
INT8UADC(INT8Unumber)using2{number=number&0x07;//通道号不超过7ADC_CONTR=ADC_CONTR&0xe0;
FLAG、AD不启动
ADC_CONTR=ADC_CONTR|number;//选择通道ADC_CONTR=ADC_CONTR|0x08;//启动A/D转换while((ADC_CONTR&0x10)!=0x10);return(ADC_DATA);//结果返回
//等待A/D//清ADC_