使用ATmega8单片机做的电池内阻测试仪

作者 吴汉清 来源 《无线电》杂志 2009.02
发布时间 2011-01-02

三 软件设计

程序有主函数、ADC转换函数、 T/C0中断函数、数值处理函数、显示 函数和延时函数等部分组成。 主函数主要用来作初始化和产生 5000Hz脉冲信号,5000Hz脉冲信号作 9V倍压整流电路的交流输入电压。 ADC转换函数用来对ADC0输入 的电池电压进行ADC转换,转换结果 可表示为:ADC=(V IN×1024)/V REF, 其中V IN表示电池电压,V REF表示参考 电源电压。由公式可知:当输入电压 和参考电源电压相等时结果为1024, 但由于ADC数据寄存器为10位二进制 寄存器,能表示的最大值为1023,因 此实际转换的结果为1023,即使输入 电压大于参考电源电压,其结果仍然 为1023,故输入电压必须不大于参考 电源电压。在本文中选择内部2.56V 作为参考电源电压,最大输入电压可 达2.56V,因此这里输入电压确定为 0~2.5V,当输入电压为2.5V时,ADC 转换结果正好为1000,为了在数码管 上显示2500(单位为mV),必须将结 果乘以2.5送数码管显示。为了能将最 高测量值提高到5V,电路中加了一个 分压比为2的分压电路,因此要将结果2.5乘以2再送显示,这样当电池电压为 5V时数码管即显示5000。 T/C0中断函数主要用来作过程 的控制、有关显示数值的计算、数码 管的动态扫描进行控制。程序中语句 temp=(unsigned long)(u1-u2)*1010/u2中 的1010是放电电阻R5、IRF3205导通时 的直流电阻(约8mΩ)、放电回路连 接导线电阻的总和,单位为mΩ,放电 电阻改变时只要改变这个参数即可。 T/C0的中断时间为5ms,因此4位数码 管的显示数据每20ms刷新一次。在第 600次中断前,即电池接入的前3s,数 码管显示的是电池的电压;中断第600 次时测量电池加负载时的电压,经计 算后数码管显示电池的内阻。 完整的源程序见本刊网站(www.radio.com.cn)。

使用ATmega8单片机做的电池内阻测试仪

使用ATmega8单片机做的电池内阻测试仪

使用ATmega8单片机做的电池内阻测试仪

四 元器件选择和安装

所用元器件的实物见图4。 元器件的型号规格和数量见表1。 表中场效应管IRF3205是一个比较 关键的元件,其参数直接影响测量结 果,其导通时的直流电阻只有8mΩ, 如果没有IRF3205而选择其他型号的管 子,一定要注意导通时的直流电阻这 个参数,其值应尽量小,避免影响测 量精度。 4位数码管LG564的引脚见图5, 如果找不到4位数码管,也可以用4只 分立的共阳数码管代替。 安 装 前 要 把 目 标 程 序 写 入 ATmega8,有关熔丝位的配置见图6。 在制作时注意测试线要选择粗一 点的导线,电阻放电回路的连接线也 要使用粗一点的铜线。 本装置只要安装无误,不用调试 即可正常工作。

上一页123下一页
电子爱好者 DIANZIAIHAOZHE.COM