笔者设计了一种适用于数字化测量电源内阻的电路,原理图如图1所示。开关S在单片机MPU控制下处于断开状态时,被测电源直接与A/D模数转换器输入端连接,由于A/D转换器输入阻抗高达千兆欧,远大于电源内阻,这时测得电压即为电源电动势E。接着在MPU控制下S闭合,通过恒流源的电流为Is,A/D转换器测得电源路端电压为U。根据闭合电路欧姆定律可知:电源内阻r=(E-U)/Is。

实际电路如图2所示。A/D转换器采用ICL7135,是双积分式4盰/1位BCD码A/D转换器。具有精度高、抗干扰能力强、自动调零、自动识别极性等特点。其输出为BCD码,特别适合在对采样速度要求不高的数字测量仪表中使用。

ICL7135和AT89C51的接口电路如图2所示,其中B8、B4、B2、B1为输出的BCD码,D1~D5用于指示BCD码的位,STR为选通输出,其与D1~D5的时序如图3所示。由图可见,在转换期间,STR产生5个脉冲,这些脉冲发生在D1~D5的中心。图2中4位BCD码和4位选通信号D1~D4连到P1口,STR被连接到单片机的中断请求输入端INT0。在这里我们采用了中断输入方式,STR下跳引起MPU中断,从而通知MPU采样,并根据D1~D5的状态,将读入的BCD码放入适当的位。但图中只连接了D1~D4,D5未连接,这是因为每当STR中断,D1~D5必居其一,若D1~D4均为0,则D5必然为1,因而可通过软件来解决。本文给出的中断服务程序,读入的5位BCD码分别放在31H~35H(35H为高位)5个单元中。若为电动势则将31H~35H单元内容送至41H~45H单元中(其中41H单元不参与运算也不显示),若为路端电压则经运算后得到电源内阻值送36H~39H单元(非压缩BCD码,39H为高位),然后经74LS247译码后送八位共阳LED显示。前4位显示电动势值,后4位显示内阻值。按本程序的要求,第1位和第6位LED的小数点应点亮,其余熄灭。为区分电动势和内阻,可采用两种不同颜色的LED。

本电源内阻测量仪设计时考虑了软、硬件的可移植性,因此可以方便地采用AT89C2051代替AT89C51,图2中AT89C51左边引脚AT89C2051也具有,采用AT89C2051时无需改动,其对应的主程序(MAIN)、中断处理程序等也不需改动,需改动的是显示驱动部分的硬件和显示子程序(DIS)。笔者提供两条建议:1.采用串行LED数码显示驱动器MAX7219,该芯片直接驱动最多8位7段共阴数字LED显示器,它与AT89C2051的接口非常简单,仅需3个引脚与AT89C2051的I/O口(RXD/P3.0、TXD/P3.1和其他空闲的任一引脚)相连接,详情请参阅MAX7219使用手册(见本期配刊光盘的“本期元器件资料”文件夹或上网www.maxim_ic.com查询);2.采用串入-并出移位寄存器(8只串接)如CD4015或74LS164构成静态显示,这种方法缺点是硬件连线多,优点是软件最为简单。不论采用哪种方式,编写显示驱动程序时要抓住电动势在41H~45H中,45H单元为高位,41H单元不显示,36H~39H单元为内阻值,39H单元为高位。MPU的晶振采用24MHz,要注意的是采用AT89C51时其要接+Vcc。
基准电压极大地影响本测量仪的精度,建议采用能隙基准源如MC1403、LM399等(作者采用MC1403U)。运放宜采用超低漂移运放AD707等。基准源输出经电阻分压获得2V供A/D转换器用,0.1V左右供恒流源使用。由于恒流源采样电阻精确度难以保证,故可微调0.1V输出使其电流为100mA。ICL7135外围电路请参考有关手册(见本期配刊光盘的“本期元器件资料”文件夹),其积分电容、调零电容、基准电容应选用高品质聚丙烯电容,时钟脉冲采用120kHz方波,场效应管采用IRFD123。
制作完毕,测量充足电的镍镉电池内阻约为0.10 ~0.25Ω,但末位出现跳数现象。用LM317T制作1.25V稳压电源,使用本仪表测其电动势为1.246V,内阻为0.02 ~0.03Ω(对数字仪表来说,末位只有一位数的跳动是正常的)。对以上结果进行比较分析,可知测电池时电动势和内阻的读数均发生跳数现象,主要原因是当电池放电(100mA)时,其电动势和内阻均随时间的推移发生变化,测量的结果当然也发生变化。而稳压电源其电动势和内阻都是不变的,故其测量结果也是稳定的。本仪表的单片机源程序见本期配刊光盘的“本期程序”文件夹。
(谢志芳)