基于AT89S52单片机的太阳能参数测试仪设计

1.4 充电电路

充电电路的核心器件采用的是上海如韵公司生产的专用充电芯片CN3058,它可以对单节磷酸铁锂可充电电池进行恒流/恒压充电。该器件内部集成有功率晶体管,使用时不需要设计外围电流检测和保护电路,适用于便携式的应用领域。

图4为锂电池充电电路。其中LEDl和LED2分别作为充电中和充电饱和两种状态的指示灯,R1在充电时起限流保护的作用;电容C1和C2采用的是多层陶瓷电容器(MLCC),能保证充电电路稳定工作。

基于AT89S52单片机的太阳能参数测试仪设计

1.5 通信模块

测试仪通过RS485工业总线与PC机进行通信,其硬件接口电路如图5所示。

基于AT89S52单片机的太阳能参数测试仪设计

2 软件设计

2.1 总体设计

测试仪的软件开发环境采用的是Keil C,所有代码采用C语言编写。为了方便程序调试和提高可靠性,软件采用模块化结构设计,主要由初始化程序、主程序、子程序、中断服务程序等组成。单片机上电后即开始循环执行温湿度、照度测量程序,并以设定的时间间隔在数码管上轮流动态显示;按键切换和通信功能部分由于使用频率相对较低,为降低设备功耗,其程序以中断响应的方式执行。在此要注意中断优先级的设置:按键中断优先级应高于串口中断,否则将无法进行显示切换。主程序流程如图6所示。

基于AT89S52单片机的太阳能参数测试仪设计

2.2 传感器驱动程序

本系统采用的传感器均为集成数字芯片且都具有I2C总线接口,故其驱动程序的编写要严格遵循I2C总线的时序。主程序为每一个参数开辟了一个8位的存储空间,传感器将采集到的数据经SDA引脚串行输出,驱动程序将SDA线上输出的数据进行串并转换,并存储到相应空间中,以方便其他功能程序调用。以下是照度传感器数据采集程序的部分代码。

(1)TSL2561初始化

基于AT89S52单片机的太阳能参数测试仪设计