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显示。 |