这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 合作大赛 » 用单片机制作电池容量测试仪

共2条 1/1 1 跳转至

用单片机制作电池容量测试仪

高工
2015-06-19 19:33:51     打赏

我们在购买和使用充电电池的时 候,最关注的指标是电池的容量,通 常是根据它在某种电子产品上的使用 时间来粗略估计其大小,更准确的方 法是以固定的电流放电,测出电压终 止时的放电时间,放电电流与放电时 间的积就是电池的容量。但这种方法 操作起来有一定的困难,因为要不时 地去观测电池的电压。本文介绍一种 用AT89C2051单片机制作的电池容量 测试仪,可对镍镉和镍氢等充电电池 的容量进行测试,其计时和电压测量都 是自动的,测试结果用3位数字显示, 测量范围为0.0lAb-9.99Ah。

电路概述

测量电池容量的方法是给电池以固 定的电流放电,同时检测电池的电压, 当电池放电到规定的终止电压时,根据 自动记录的放电时间显示电池的容量。 电池容量测试仪电路见图l,电路由 单片机电路、恒流放电电路、电池电压 检测电路和数码显示电路等部分组成。

R2、Cl、SBl等组成单片机的复 位电路, 有开机复位和手动复位两种 模式,按下SB1为手动复位。 VTl、Rl3、Rl4、Rl5等组成电 池恒流放电电路,放电电流由Rl 3、 R14的比值和R15的阻值确定,这里 放电电流定为200mA。

AT89C205 1在内部构造了一个模 拟信号比较器,AT89C2051的P1.0口 和P1.1口除了作I/O口外,还有一个 功能是作为模拟信号比较器的输入端, P1.0为同相输入端,P1.1为反相输入 端,模拟信号比较器的比较结果存入 P3.6口对应的寄存器,P3.6口在 AT89C2051外部无引脚。这个模拟信 号比较器和R10、Rll、Rl2等组成电 池电压检测电路,电源电压经R10、Rl1 分压后作为P1.1口的基准电压,电池 电压通过R.12 输入到P1. 0 El 。当电池 电压大于P1.1口的电压时P3.6口输出 为1;当电池电压小于P1.1口的电压时 P3.6 El输出为0。这里把两节电池串联 进行测试,单节电池的放电终止电压一 般取1V,故两节电池的放电终止电压 为2V,因此P1.1口的基准电压取2V, 从而使电池放电终了时P3.6输出为0。

集成电路7447、VT2、VT3、VT4 和三只数码管等组成动态扫描显示电 路,它分时轮流选通数码管公共端(这 里是共阳极),使各个数码管轮流导通 即各数码管中的电流是脉冲电流,这 种方式下各数码管的字段线并联使用, 从而简化了硬件电路。各个数码管虽 然是分时轮流通电,但由于数码管的 余辉特性和人的视觉暂留效应,所以 当扫描频率足够高时,看上去所有数 码管是同时点亮的,并不觉得有闪烁 现象。集成电路7447是片段译码器, 把BCD码转换成字段码供数码管显 示。AT89C205l的Pl口的高四位分 时输出3个数码管要显示的数字,P3 口的P3.3、P3.4、P3.5输出扫描位选 信号,通过VT2、VT3、VT4来控制 3个数码管分时点亮。

单片机的电源由5V稳压电源提供。?

图一.jpg 
图2.jpg 

软件设计

程序使用汇编语言编写,主程序 流程简图见图2。

程序由主程序和定时中断服务子 程序、延时子程序等部分组成。主程序 由初始化、动态扫描显示等部分组成。 寄存器R0、R1、R2分别用来存 储3位显示数据的百分位、十分位和个 位所对应的数。定时器T0工作状态为 方式1,定时时间为60ms。l由于电池 的放电电流为200mA,因此每3min (0.05小时)电池所放电的容量为 0.01Ah(10mAh),所以定时器0每 中断3 00 0次(累计时间6 0m × 3000=3min)给寄存器R0加1,寄存 器R0计满10个数后给寄存器R1加1, 寄存器R1计满10个数后再给寄存器 R2加1,这样放电结束时所显示的数 值即为电池的容量,因为小数点放在 第一位数码管后,所以显示的电池容 量的计量单位是Ah。

延时子程序的延时时间为0.5ms,主 要供主程序的动态扫描显示部分调用, 因为要显示三位数,每位显示0.5ms,所 以动态扫描显示的周期为1.5ms。

接通电源后,单片机复位,寄存器 R0.R1、R2的赋值均为0。在没有放 入被测试的电池前,P1.01:3的电压低 于P1.1口的电压,P3.6口为0,数码 管不显示,程序处于等待电池放入的 状态。当充足电的电池放入后,P1.O 1:3的电压高于P1.1 1:3的电压,P3.61:3 为1,定时器T0开始计时,数码管也开 始显示,且每隔3分钟计一次数,与此 同时每过38)检测一次电池电压,即检 测P3.6口的状态。随着电池不断放电, 其电压逐渐下降,当放电达到其终止 电压时,P1.0口的电压开始低于P1.1 口的电压,P3.6口由1变为0,定时器 TO停止计时,同时P3.7口输出0使 VT1截止停止电池放电,以免造成电 池过放电,这时数码管显示的数值不 再变化,显示值就是电池的容量。

发光二极管VD 1作工作状态指示 用,在电池放电过程中P3.0口输出为 0,VD1点亮。

安装与使用

印制电路板采用万能电路板,ICI 用AT89C2051单片机,IC2用7447片 段译码器。B1用12MHz的石英晶体, DS1、DS2、DS3选用共阳极的LED数 码管,VD1用红色发光二极管,R15 选用4.7 Q/o.5W的电阻。其余元器 件的参数见图1。

安装前先将汇编源程序编译成目 标文件即HEX文件,再用编程器将 HEX文件写入AT89C2051芯片。汇编 源程序和HEX文件见本期配刊光盘。

测试仪的调试工作主要是放电电 流的调整,接通电源,放入两节充电 电池,用万用表测量R15N端的电压 应为0.94V,这时对应的放电电流为 200mA,否则可通过改变R13或R14 的阻值进行调节。

在使用过程中,如果在测试仪没 有断电的情况下取下电池再重新放入 电池时,要先按一下复位键SB1电路 才能重新开始工作,不然电路是不会 工作的,因为取下电池和电池放电终 了的结果是一样的,测试仪都会作出 测试结束的判断


用单片机制作电池容量测试仪.pdf



菜鸟
2017-09-18 16:37:24     打赏
2楼

好,不错,帮顶



共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]