• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

单片机如何处理放电容量

请教问题:STC15W408AS采集电池放电容量大小。主回路是2A恒流放电,我的思想是根据Q=I*T来计算,定时器定时来完成T的计算。现在AD采集电流没有问题。主要是时间的处理。我贴出定时处理那部分,帮忙看下。

void TIMER2_INITAL()//定时器2初始化设置

{   AUXR |= 0x04;           //定时器2为1T模式    

T2L = T1MS;                  //初始化计时值:1MS    

T2H = T1MS >> 8;    

AUXR |= 0x10;                   //定时器2开始计时      

 IE2 |= 0x04;                    //开定时器2中断   

 EA = 1;}

//中断服务程序void t2int() interrupt 12   using 1        //中断入口,1MS时间到,进入。

{        c--;        

         if(c==0)                //1S时间到,开始计算容量        

       {T++;                //时间累加         

         CAP=I*T;        //容量       

        }         

C=1000;      //1000ms为1s

}

然后在主程序里面将容量CAP进行处理,并送LCD显示。

程序开头定义了变量unsigned int CAP ,T;//容量值,时间。时间该咋处理呢?从秒开始吗?一点点累积?

全部回复(5)
正序查看
倒序查看
小学渣
LV.5
2
2016-10-31 14:07
dingqi~~~
0
回复
2016-11-07 22:48
@小学渣
dingqi~~~
请问:何解?
0
回复
huayaoxie
LV.1
4
2016-11-29 12:46
定时器定时中断检测放电电流(就是检测一个放电电阻的电压值,再处理等于实际的电流大小),再不断累加这个电压值就是容量了,比如说3.6S检测一次,每次检测数值为2,不断相加2+2+2+....2,1000次不就是2000mAh了吗,加500次就是1000mAH。500次的时间时3.6*500=1800S半个小时
0
回复
2017-02-08 08:25
@huayaoxie
定时器定时中断检测放电电流(就是检测一个放电电阻的电压值,再处理等于实际的电流大小),再不断累加这个电压值就是容量了,比如说3.6S检测一次,每次检测数值为2,不断相加2+2+2+....2,1000次不就是2000mAh了吗,加500次就是1000mAH。500次的时间时3.6*500=1800S半个小时
听不太明白,
0
回复
令义
LV.5
6
2017-02-10 15:02
@huayaoxie
定时器定时中断检测放电电流(就是检测一个放电电阻的电压值,再处理等于实际的电流大小),再不断累加这个电压值就是容量了,比如说3.6S检测一次,每次检测数值为2,不断相加2+2+2+....2,1000次不就是2000mAh了吗,加500次就是1000mAH。500次的时间时3.6*500=1800S半个小时
说得对,我做过电动车电池的电量检测,就是这个思想。
0
回复