使用开关电源的机器在上电瞬间由于大电流的冲击等原因很容易损坏。为了检验产品的可靠性,专家对产品电源连续开关几十次到上百次,如果电源设计得不好,就会有很多问题在这种情况下显现出来,如开关管击穿、整流桥短路、保险丝烧断等。在实际中按这个方法进行检验比较繁琐。为此笔者用单片机AT89C2051制作了一个开关测试仪来完成这个试验。
实现功能
本测试仪能完成的功能有: 首先设定开关次数、开机时间、关机时间,同时还设置一个电压阈值,用来监视电源输出,然后测试仪即开始运行,按设定的开机时间、关机时间周期动作,并在电源开的时候,检测电源输出电压是否大于阈值。如达到设定次数,则显示“P”通过标志,并声音报警。如在测试中有检测到输出电压达不到阈值,则停止测试,显示“E”错误标志,并声音报警。
硬件原理
测试仪的原理图见附图。因AT89C2051管脚比较少,因此利用其串行口P3.0、P3.1两根线,外加一片74HC164来扩充两位数码管显示,数码管使用共阴极类型的。单片机AT89C2051内部含有一个电压比较器,正输入端接12脚P1.0,负输入端接13脚P1.1,输出端内部连接P3.6。利用AT89C2051内部的比较器,配合外围元件R12、R13、C4构成一个简单的AD转换电路,可从P1.1输入0~5V待测电压,利用R14和VR1将量程扩展到0~99V输入。因数码管只有两位,所以开关次数、开机时间、关机时间、设定电压及实际电压显示,都只能在0~99内。AD转换的原理是通过电阻R13对电容C4的充电,直到电容C4上的电压和U1的13脚P1.1相等,导致U1内部的比较器翻转,单片机测量这个充电时间就可以转化出相应的电压。电容上的电压和时间的关系由下面公式决定:

V\(_{C}\)=V\(_{CC}\)(1-e\(^{-}\)t/RC)
式中: V\(_{CC}\)是电源电压+5V; RC是电阻R12和电容C4的值。
因为单片机AT89C2051没有很强的计算能力,所以不能在程序中计算这个公式,要靠自己计算出每一个电压值,然后制成一个表格放在程序中,单片机运行时测到一个时间通过查表转换成电压,然后显示出来。按照上面电路图中的参数,同时从程序运行考虑,单片机每隔5μs检测一下比较器,从0充电到5V,共需计算出156个电压值。为了保证AD转换的精度,电路中元件R13、R14必须选用1%精度的金属膜电阻,VR1选用3296精密多圈线绕电位器,C4选用漏电小的,如涤纶电容、CBB等。电源电压+5V也有影响,必须调准。
测试仪的操作方法
下面说明测试仪的按键操作。单片机上电复位后,首先进入设置状态,两位数码管闪烁显示,使用者可依次对开关次数、开机时间、关机时间、电压阈值四项进行更改,这四项程序内部已分别预置数值为50、5、10、5,指示灯VD1、VD2按二进制指示当前是哪一项。按SET键转到下一项,如长按SET键2s,则退出设置状态进入运行状态; 按+或-键,可改变数值,如按键时间持续超过2s,则快速增加或减小; 设置完四项后进入运行状态。在运行状态,按“ON/+”键,测试仪就开始周期性开关测试,数码管显示已完成的次数; 按“OFF/-”键第一次是暂停测试,按“ON/+”键可启动继续测试,第二次按“OFF/-”键是停止,会把已完成测试次数清零。按“SET”键,会分别切换显示完成次数和输入测量电压,如显示的是电压,指示灯VD2会亮起来。如达到设定次数,则显示“P”通过标志,并声音报警。如在测试中有检测到输出电压达不到阈值,则停止测试,显示“E”错误标志,并声音报警。在运行状态,指示灯VD1闪烁,表示测试正在进行中,VD1常亮,表示暂停或停止。如果把开关次数、开机时间、关机时间中的任一个设置为0,本测试仪的功能就改变为一个单纯的开关:按“ON/+”键开输出;按“OFF/-”键关输出。对外部设备或电源的控制,由单片机11脚P3.7驱动光耦MOC3042,进而控制双向可控硅的导通。
程序编制
本测试仪的程序由3部分组成: PTS.C、AD.A51、DELAY.A51。程序PTS.C是用Keil C51编写的,完成主要功能; 程序AD.A51是汇编语言写成的,用来完成AD转换功能,作为一个子程序在PTS.C里调用;程序DELAY.A51用来完成短暂延时,作为一个子程序在PTS.C里调用。把这3个文件放到KEIL C51里编译一下,即可得到HEX文件。读者可在本期配刊光盘的“本期程序”文件夹里找到这3个程序的文本文件,读者只需更改相应的后缀名即可在Keil软件中调用。
这个测试仪不但可用来测试电源,稍做改动,可适应很多种用途。
(文/陈伟栋)