充电电池容量自动测试仪设计与实现
编译后,写入单片机内部,做好放电电路部分与51单片机的连接,便可投入使用。
电池接入后,按动轻触按键“启动”,就会进入一次容量测试过程,期间电池取出接入,都不会影响到单片机计时。电池放电完毕,单片机数码管显示锁定,给出总放电持续时间,单位为秒。可以自行人工计算放电小时数。当然也是可以自行对程序进行改进,直接以小时分钟形式进行显示。只要单片机不断电,数码管将持续显示当前放电时长。如果要进入下次测量过程,只需要按动单片机复位键,数码管清零,单片机程序转入起点,你就可以进入新一次的容量测试过程了。
充电电池如果较长时间闲置,它的实际容量将受到影响,重新启用第一次能够释放的容量远远达不到标注容量,放电电压也很不平稳。至少要经过三次以上的充电放电循环,电池完全激活,容量才能恢复到应有的水平。充分考虑这种因素的影响,所以容量测试一般采取多次平均的方式,或者循环充放电三次以后放电持续时间为准,以此衡量电池容量才算是恰当。
#include “reg51.h”
char
code disp[]={40,235,50,162,225,164,36,234,32,160};
//字形码
void delay(unsigned int dt)
{ unsigned int j=0;
for(;dt>0;dt--)
{ for(j=0;j125;j++)
{;}
}
}
void main()
{ int a,b,c,led1,led2,led3,led4;
P3=255;
a=0;
for(;;)
{b=a;
led1=b%10;
P2=239;
P0=disp[led1];
delay(6);
P2=255;
b=b/10;
led2=b%10;
P2=223;
P0=disp[led2];
delay(6);
P2=255;
b=b/10;
led3=b%10;
P2=191;
P0=disp[led3];
delay(6);
P2=255;
b=b/10;
led4=b%10;
P2=127;
P0=disp[led4];
delay(6);
P2=255;
for(c=44;c>0;c--)
{
P2=239;
P0=disp[led1];
delay(5);
P2=255;
P2=223;
P0=disp[led2];
delay(5);
P2=255;
P2=191;
P0=disp[led3];
delay(5);
P2=255;
P2=127;
P0=disp[led4];
delay(5);
P2=255;
}
if(P3==127)
delay(3);
if(P3==127)
a=a+1;
else a=a;
}
}
评论