中国科技论文在线
http://www.paper.edu.cn
基于单片机的多模式蓄电池充电电路设计
岳敏
中国矿业大学 信息与电气工程学院 江苏徐州 (221008)
E-mail:chenning_101@163.com
摘 要:介绍了一种通用电池充电器的智能充电软件控制方法,利用这种充电方法根据电池
的充电特性进行不同充电模式的转换。采用 AT89C51 单片机芯片作为充电过程的控制芯片进
行电路设计,实现 A/D 转换和显示电路,并根据外部电路检测到的电池电压信息选择正确的
充电模式,实现在涓流、恒流、恒压及浮充电模式之间的智能转换。
关键词:单片机;智能充电器;A/D 转换;显示电路
中图分类号:TP368.1
1.引言
一个好的充电器对蓄电池的使用寿命具有举足轻重的作用,智能充电器具有操作简单、
可靠性高和通用性强等优点,是充电器家族中的一个重要的组成部分,也是未来充电器发展
的主要方向。所谓智能充电器是指能根据用户的需要自主选择充电方式、对不同类型的充电
电池进行充电、并且在充电过程中能对被充电电池进行保护从而防止过电压和温度过高的一
种智能化充电器[1]。
充电控制器需要长时间控制并要进行电压检测,若用传统电路实现则电路复杂,采用单
片机控制可大大减化电路,降低成本。本充电器用 AT89C51 单片机进行充电定时控制。在定
时充电期间若电池电压高于另一值则停止充电。采用从涓流充电、恒流充电、恒压充电到浮
充电的方法,充电完成后,自动转为浮充电,以防止电池放电,并有显示电路。适合对镍镉、镍
氢电池进行充电。该充电器采用单片机控制,充电效果更佳。
2. 智能充电器硬件设计
由单片机和充电器芯片组成的通用充电器原理框图如图 1 所示,图中AT89C51 与ADC0809
一起构成充电器的核心。ADC0809 随时检测充电电池两端电压,当放入电池时,ADC0809 即
通过数据口向AT89C51 传送检测到的电池两端电压信息,经过数据处理后,AT89C51 根据所
接收到的电压信息选择合适的充电模式。由于芯片只能接收 0V~5V的电压信息,因此在充
电电池的两端并联两个串联电阻(阻值相等且很大),这样检测到的电压即为电池电压的一
半,乘以二即可得出电池电压。若电池电压低于 4.7V,则启用停止控制,充电器不工作。
若电池电压大于 7.3V或小于 5.2V,说明蓄电池曾经过度放电,为避免对蓄电池充电电流过
大,造成热失控,对蓄电池实行稳定小电流涓流充电,激活蓄电池。此时单片机P1.2 口发
出高电平信号,启动涓流充模式。同样,当电压在 5.2V~6V时,P1.0 口置为高电平,同时
调用脉冲控制,控制开关的闭合,以恒流充电模式对电池进行充电。当电压在 6V~7.3V之
间时,P1.1 口置为高电平,启动恒压充电模式。整个充电过程为 3 个小时,当电路工作三
小时后,系统自动掉电,终止充电过程[2]。
1
中国科技论文在线
http://www.paper.edu.cn
图 1 充电器原理框图
本设计利用 8155 作为 AT89C51 的 I/O 扩展接口,连接四个数码管显示电路。LED 显示采
用共阴极,段选码由 8155PB 口提供,位选码由 PA 口提供,当启用涓流充电模式时(P1.2 置
高),第一位数码管显示;当启用恒流充电模式时(P1.0 置高),位选字右移,第二位数码
管显示,当启用恒压充电模式时(P1.1 置高),位选字右移,第三位数码管显示。当停止
充电时,P1.0、P1.1、P1.2 口均置为低电平,第四位数码管显示。若对程序进行稍许修改,
也可以让显示电路显示当前充电电压值,从而更有效的对电池进行充电。
3. 智能充电器软件设计与实现
3.1 软件整体设计
因为不同种类的电池有不同的充电特性,所以充电器要能根据具体电池的类型,控制不
同的充电状态。在充电的关键阶段采用了模糊控制方法,这些通过程序控制实现。充电总体
流程图如图 2 所示。
2
中国科技论文在线
http://www.paper.edu.cn
图 2 充电总体流程图
程序具体实现过程为:单片机首先进行初始化,然后对蓄电池的电压进行测量,产生电
压偏差和变化率信号,偏差及变化率信号进入模糊控制器后,经过模糊处理,输出电流信息,
从而适时和正确地控制充电方式和过程。在充电过程中不断检测电池是否充满,当检测己经
充满时,提示用户电池已充足,充电器自动进入浮充维护状态。模糊处理和终止条件的判决
为整个智能充电器的关键,关系着充电器性能的好坏[3]。
系统的软件设计采用模块式结构,主要由初始化程序、充电方式设置模块、预处理模块、
A/D 转换模块、定时模块等部分组成。其中,充电方式设置模块用于设置电池类型和充电
方式,A/D 转换模块用于检测电池的电压,以确定是否终止充电过程,定时模块用于确定
充电的时间监测。
系统软件流程采用中断工作方式, 软件功能的主要控制步骤均包括在定时中断程序中,
包括监控电压、测量电流及电池参数检测等部分在开始充电时,对系统进行初始化,其中包
括 AT89C51 单片机各个端口初始化、堆栈指针初始化、寄存器初始化、中断设定和根据电池
3
中国科技论文在线
http://www.paper.edu.cn
类型设定它所能够承受的最大电压 V,标准的容量值及对电压、电流采样的时间间隔△T。
为了使测定结果更精确,采样频率要尽量高。系统初始化后开定时器中断服务程序,由于程
序中利用了定时中断,使得定时控制很方便。
主程序模块根据系统相应的状态条件控制并调用相应的模块。同时,其他各模块之间也
根据系统当前状态相互调用。在初始化程序模块中,设置了预处理功能,主要是设置 A/D
转换参数和通道,检测电池的端电压。将检测数据同理论经验值比较,判断电池的类别以及
是否连接正确。对端电压低的电池,采用短时间的脉动电流充电,这样有利于激活电池内的
化学反应物质,部分恢复受损的电池单元。
电池的端电压检测硬件上使用单片机的片上高精度 A/D 模块,软件控制采用中断方式,
这样可节省单片机在 A/D 转换期间的等待时间。端电压检测的数据,比较是否满足充电终止
条件,及时修改单片机的输出参数,控制充电电流的大小。
3.2 涓流短时充电及浮充电
充电器开始工作后,首先检测蓄电池的电池电压,若电池电压低于 4.7V,充电器不工
作。若电池电压大于 7.3V 或小于 5.2V,说明蓄电池曾经过度放电,为避免对蓄电池充电电
流过大,造成热失控,对蓄电池实行稳定小电流涓流充电,激活蓄电池。软件流程图如下:
图 3 涓流充电流程图
具体实现程序如下:
…
READ : MOV A , P0 ;将 P0 口的值送入累加器 A
CJNE A ,#84H ,REL ;若(A)≠5.2V 则跳到 REL
REL : JNC HL ;大于 5.2V 转移到 HL
4
中国科技论文在线
http://www.paper.edu.cn
SETB P1.2 ;将 P1.2 口置为高位
SETB P1.3 ;脉冲控制
…
同时,当充电时间到两个半小时时,进入浮充电阶段。该阶段主要用来补充蓄电池自放
电所消耗的能量,此时标志着充电过程结束。
3.3 恒流充电
在涓流充电阶段,电池电压开始上升,当电池电压上升到能接受大电流充电的阈值时,
则转入恒流充电阶段。该阶段为大电流恒流充电,电流值为I2 ,因蓄电池容量而异,一般
I2 约为 0.1C(C 为蓄电池组的容量),持续时间为T2,在恒流充电状态下,不断检测电池
端电压,当电池电压达到饱和电压时,恒流充电状态终止[4]。
本设计采用外部检测设备将数据送入P0口,若电压在5.2V~6V之间则P1.0口置为高电
平,发送信号进行恒流充电模式。在恒流充电过程中,采用脉冲控制充电电流的占空比,以
此来控制开关的开断,实现充电电流的恒定。软件流程图如下:
图 4 恒流充电模式流程图
具体实现程序如下:
…
READ : MOV A , P0 ;将 P0 口的值送入累加器 A
CJNE A ,#99H ,REL ;若(A)≠6V 则跳到 REL
REL : JNC HY ;大于 6V 转移到 HY
SETB P1.0 ;将 P1.0 口置为高位
SETB P1.3 ;脉冲控制
5
中国科技论文在线
http://www.paper.edu.cn
…
充电电路在实现涓流充电和恒流充电方法是要使用脉冲充电控制来进行充电,有效的
调整电池充电过程当中的占空比.其中脉冲控制的实现程序如下:
…
PWMH DATA 30H ;高电平脉冲的个数
PWM DATA 31H ;PWM 周期
COUNTER DATA 32H
TEMP DATA 33H
INTT0 : PUSH PSW ;现场保护
PUSH ACC
INC COUNTER ;计数值加 1
MOV A, COUNTER
CJNE A , PWMH , INTT01 ;如果等于高电平脉冲数
CLR P1.0 ;P1.0 变为低电平
CLR P1.2
AJMP INTT0
INTT01 : CJNE A , PWM , INTT02 ;如果等于周期数
MOV COUNTER , #01H ;计数器复位
SETB 08H ;P1.0 为高电平
SETB P1.2
INTT02 : POP ACC ;出栈
POP PSW
RETI
END
…
3.4 恒压充电
该阶段为恒压充电,电压值为7.3V,它是蓄电池节数与蓄电池温度的函数,这时充电电
流逐渐减小,恒压充电时,保持充电电压不变。充电电流不断下降,当充电电流下降到恒流
状态下充电电流的1/10 时,终止恒压充电。电路实现方法为:外部检测设备将结果送入P0
口,系统检测送入的数据,若电池电压在大于6V时采用恒压充电模式.即P1.1口置高位进行恒
压充电模式。具体实现程序如下:
…
READ : MOV A , P0 ;将 P0 口的值送入累加器 A
CJNE A ,#0B7H ,REL ;若(A)≠7.3V 则跳到 REL
REL : JNC STOP ;大于 7.3V 转移到 STOP
6
中国科技论文在线
http://www.paper.edu.cn
SETB P1.1 ;将 P1.2 口置为高位
CLR P1.3
…
软件流程图如下:
图 5 恒压充电模式流程图
3.5 A/D转换模块
由于本设计用到了电压实时监测,因此需要对其发出的信号进行A/D转换,在电路中采
用了ADC0809转换器,对模拟信号进行采集与转换。具体实现程序如下:
START: MOV R0 ,#30H ;RAM缓冲区地址设初值
MOV DPTR , #0FEF8H ;通道地址寄存器设初值
MOVX @DPTR A ;启动A/D转换
MOV R5 , #0AH ;延时等待
DLX: DJNZ R5, DLX
WAIT : JB P3.2 ,WAIT ;等待A/D转换结束
MOVX A , @DPTR ;读取A/D转换结果
MOV @R0 , A ;保存A/D转换结果
ACALL DATADSP ;数据的数字处理
LJMP START
…
软件流程图如下所示:
7
中国科技论文在线
http://www.paper.edu.cn
图 6 A/D转换模块流程图
4.总结
采用单片机和充电集成电路进行充电器的设计,不但能够实现对一般的蓄电池进行充
电,而且还能够实现相应的过压和时间控制,从而可以充分发挥蓄电池的性能,延长电池的
使用寿命,并避免简易充电器在充电时可能对电池造成损害的情况发生,具有一定的智能功
能,符合目前的环境保护潮流。
参考文献
[1] 朱小同,赵桂先.蓄电池快速充电的原理与实践[M].北京:煤炭工业出版社,1996
[2] 梅丽凤,王艳秋,汪毓铎,张军.单片机原理及接口技术.修订本[M].北京:北京交通大学出版社,
2006
[3] 田立,马鸣鹤.51 系列单片机开发实例精解[M].北京:中国电力出版社,2009
[4] 冯建华,赵亮.单片机应用系统设计与产品开发[M].北京:人民邮电出版社,2005
Design of Multi-mode Battery Charging Circuit Based on SCM
Yue Min
1.China University of Mining and Technology
8