王文岳
(工業(yè)和信息化部電子第五研究所華東分所,江蘇 蘇州 215011)
環(huán)境試驗(yàn)電應(yīng)力通斷控制系統(tǒng)的設(shè)計(jì)
王文岳
(工業(yè)和信息化部電子第五研究所華東分所,江蘇 蘇州 215011)
介紹一種電應(yīng)力通斷控制 (on-off機(jī))系統(tǒng)的制作方法,使用單片機(jī)作為核心控制元件,利用編程控制外圍電路來實(shí)現(xiàn)邏輯通斷,從而為環(huán)境試驗(yàn)中的電應(yīng)力控制提供新方法,該方法還可應(yīng)用于某些產(chǎn)品的循環(huán)通斷電壽命試驗(yàn)。
環(huán)境試驗(yàn);壽命試驗(yàn);電應(yīng)力控制;通斷控制;單片機(jī)
隨著電子產(chǎn)品的發(fā)展,電子產(chǎn)品的可靠性要求越來越高。電子產(chǎn)品本身的通斷電循環(huán)數(shù)往往作為驗(yàn)證電子產(chǎn)品、電子部件的電應(yīng)力耐久性的重要考察指標(biāo)[1]。
在進(jìn)行可靠性試驗(yàn)、溫濕度振動(dòng)綜合應(yīng)力試驗(yàn)時(shí),往往需要對被試驗(yàn)的樣品施加具有一定時(shí)序的通斷電,這種通斷電時(shí)序往往較為復(fù)雜,通過時(shí)間繼電器搭電路并不現(xiàn)實(shí)而且可靠性不高,在試驗(yàn)中斷時(shí)很難找到相應(yīng)的時(shí)序繼續(xù)進(jìn)行循環(huán)試驗(yàn),往往需要重新開始試驗(yàn),這樣勢必會增加產(chǎn)品試驗(yàn)應(yīng)力,不符合試驗(yàn)要求。又如電源產(chǎn)品,往往通過反復(fù)、多次的通斷電,對電源產(chǎn)品進(jìn)行耐疲勞驗(yàn)證,用手工操作肯定不現(xiàn)實(shí);若邏輯復(fù)雜,搭硬件電路也不方便,則環(huán)境試驗(yàn)應(yīng)力通斷控制 (on-off)系統(tǒng)機(jī)便起到很大的作用。
為了更好地實(shí)現(xiàn)電應(yīng)力的通斷施加,通過大量的實(shí)踐,發(fā)明此on-off機(jī)系統(tǒng)。此系統(tǒng)通過外部鍵盤來選擇相應(yīng)溫度段的電應(yīng)力時(shí)序,例如:按1號鍵盤施加降溫段電應(yīng)力時(shí)序;2號鍵盤施加低溫貯存段電應(yīng)力時(shí)序;3號鍵盤施加升溫段電應(yīng)力時(shí)序;4號鍵盤施加高溫貯存段電應(yīng)力時(shí)序等。
進(jìn)入程序后數(shù)碼管倒計(jì)時(shí)顯示此電應(yīng)力段通電或斷電的剩余時(shí)間 (通過時(shí)、分、秒顯示),使得試驗(yàn)時(shí)更直觀,完全可以知道還有多長時(shí)間樣品通電,還有多長時(shí)間樣品斷電并且上電時(shí)會有LED燈亮起,斷電時(shí)LED燈熄滅,非常直觀,便于試驗(yàn)監(jiān)控。
所有的時(shí)序信號通過繼電器模塊輸出給外部樣品做通斷信號源。
接下來介紹此on-off機(jī)的硬件電路 (如圖1-6所示)。
此硬件系統(tǒng)為單片機(jī)主控制模塊、USB程序下載模塊、4*4矩陣鍵盤模塊、LED燈模塊、數(shù)碼管顯示模塊和繼電器信號輸出模塊。
a)根據(jù)具體的要求,將繼電器的輸出端接到樣品的供電電源端口 (連接常開端或常閉端根據(jù)程序設(shè)計(jì))。
b)通過USB線下載相應(yīng)的程序進(jìn)入on-off機(jī)系統(tǒng)。
圖1 單片機(jī)主控制模塊
圖2 USB程序下載模塊
圖3 4*4矩陣鍵盤模塊[2]
圖4 LED燈模塊
c)開始試驗(yàn)時(shí),打開on-off機(jī)系統(tǒng)電源,按下相應(yīng)的矩陣鍵盤按鍵 (如需要從第1段電應(yīng)力開始執(zhí)行,即可按下1#鍵盤;如需要從第2段電應(yīng)力開始執(zhí)行,即可按下2#鍵盤等),on-off機(jī)便開始工作。
根據(jù)硬件圖,可以編寫出掃描矩陣鍵盤、數(shù)碼管動(dòng)態(tài)顯示的程序,這對于具備如此知識背景的人來說并非難事。這兒通過一個(gè)典型的溫濕度環(huán)境試驗(yàn)電應(yīng)力通斷邏輯,描述一份程序編寫框圖。旨在講清楚如何在程序中合理地安排矩陣鍵盤和數(shù)碼管顯示,以及時(shí)間段精確地控制輸出電應(yīng)力的方法。對于有知識背景的人而言,看了程序框圖便知道如何編制程序。
典型案例:某產(chǎn)品進(jìn)行濕熱循環(huán)試驗(yàn),高溫段駐留3 h(此間給樣品加電10min斷電20 min,依照此種頻率循環(huán)6次),高溫降至低溫用25 min(此間樣品斷電);低溫駐留3 h(此間給樣品加電20min斷電10min,依照此種頻率循環(huán)6次),低溫升至高溫用25 min(此間樣品通電),上述為1個(gè)試驗(yàn)循環(huán)。此次試驗(yàn)共進(jìn)行200個(gè)循環(huán)[4]。
圖5 數(shù)碼管顯示模塊[3]
圖6 繼電器信號輸出模塊
分析:我們將此案例分為4段電應(yīng)力邏輯——第1段為高溫段即樣品加電10 min斷電20 min,依照此種頻率循環(huán)6次,第1段對應(yīng)矩陣鍵盤第4行第1列按鍵記為1號按鍵;第2段為降溫段即樣品在此段中25 min斷電,第2段對應(yīng)矩陣鍵盤第4行第2列按鍵記為2號按鍵;第3段為低溫段即樣品加電20 min斷電10 min,依照此種頻率循環(huán)6次,第3段對應(yīng)矩陣鍵盤第4行第3列按鍵記為3號按鍵;第4段為升溫段即樣品在此段中25 min上電,第4段對應(yīng)矩陣鍵盤第4行第4列按鍵記為4號按鍵。在按下這4個(gè)按鍵中的其中1個(gè)時(shí)將進(jìn)入相應(yīng)段的電應(yīng)力邏輯——如按下1號鍵,程序?qū)?zhí)行1、2、3和4;從其他段開始執(zhí)行可依此類推。在進(jìn)入相應(yīng)的段后,數(shù)碼管將進(jìn)行通斷電倒計(jì)時(shí)顯示 (以1 s為單位),在數(shù)碼管最后1位將顯示現(xiàn)在執(zhí)行的段 (1或2或3或4);通電段則LED燈點(diǎn)亮,斷電段則LED燈熄滅。8位數(shù)碼管顯示方式:左起第1、2位顯示小時(shí)數(shù);第3、4位顯示分鐘數(shù);第5、6位顯示秒數(shù);第7位不顯示;第8位顯示當(dāng)前執(zhí)行段。
圖7 程序流程圖[5]
對于此案例,編制如圖7所示的試驗(yàn)程序流程圖。
針對上述典型案例,程序源文件如下 (C語言編寫):
#include
#define uchar unsigned char
#define uintunsigned int
#define ulong unsigned long
uchar tt;uchar t_min;uchar h_hour;uchar T_d;
uchar js;//電應(yīng)力循環(huán)標(biāo)志位
uchar js_2;uchar js_4;//第2段及第4段電應(yīng)力中要嵌入電應(yīng)力
uchar fxtime;
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
sbit relay=P2^1;
sbit dula=P2^6;
sbitwela=P2^7;
uchar a,temp;
//uchar js_led;
uchar h_g;uchar h_d;uchar m_g;ucharm_d;
uchar s_g;uchar s_d;
uint t_s;
uint etrc_pw1, etrc_pw2_on,etrc_pw2_off,etrc_pw3,
etrc_pw4_on,etrc_pw4_off;
uint pw1_h,pw1_m,pw1_s;
uchar pw1_h_g, pw1_h_d,pw1_m_g,pw1_m_d,
pw1_s_g,pw1_s_d;
uchar pw2_on_h,pw2_on_m,pw2_on_s,
pw2_off_h,pw2_off_m,pw2_off_s;
uchar pw2_on_h_g, pw2_on_h_d,pw2_on_m_g,pw2_on_m_d,
pw2_on_s_g,pw2_on_s_d,
pw2_off_h_g, pw2_off_h_d, pw2_off_m_g,pw2_off_m_d,
pw2_off_s_g,pw2_off_s_d;
uchar pw3_h,pw3_m,pw3_s;
uchar pw3_h_g, pw3_h_d, pw3_m_g,pw3_m_d,
pw3_s_g,pw3_s_d;
uchar pw4_on_h,pw4_on_m,pw4_on_s,
pw4_off_h,pw4_off_m,pw4_off_s;
uchar pw4_on_h_g, pw4_on_h_d,pw4_on_m_g,pw4_on_m_d,
pw4_on_s_g,pw4_on_s_d,
pw4_off_h_g, pw4_off_h_d, pw4_off_m_g,pw4_off_m_d,
pw4_off_s_g,pw4_off_s_d;
uchar code table[]={0x3f, 0x06, 0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=120;j>0;j--);}
void jsscan()
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
delayms(10);temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=P3;
switch(temp){
case 0xee:
js=1;
a=0;
break;
case 0xde:
js=2;
a=0;
break;
case 0xbe:
js=3;
a=0;
break;
case 0x7e:
js=4;
a=0;
break;
} } while(temp!=0xf0){
temp=P3;
temp=temp&0xf0;} }
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
delayms(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0){
temp=P3;
switch(temp)
{
case 0xed:
js=5;
a=0;
break;
case 0xdd:
js=6;
a=0;
break;
}
}
while(temp!=0xf0){
temp=P3;
temp=temp&0xf0;}
}
} void display_1(h_g,h_d){
dula=1;
P0=table[h_g];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(3);
dula=1;
P0=table[h_d];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(3);
} void display_2(m_g,m_d)
{
dula=1;
P0=table[m_g];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delayms(3);
dula=1;
P0=table[m_d];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(3);} void display_3(s_g,s_d){
dula=1;
P0=table[s_g];
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(3);
dula=1;
P0=table[s_d];
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delayms(3);}
void display_4(T_d) //顯示當(dāng)前的循環(huán)數(shù){
dula=1;
P0=table[T_d];
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(3);}
voidmain(){
etrc_pw1=1500; //第1段降溫段時(shí)間
etrc_pw2_on=600; //第2段低溫段通電時(shí)間
etrc_pw2_off=1 200;//第2段低溫段斷電時(shí)間
etrc_pw3=1 500; //第3段升溫段時(shí)間
etrc_pw4_on=600; //第4段高溫段通電時(shí)間
etrc_pw4_off=1 200;//第4段高溫段斷電時(shí)間
pw1_h=etrc_pw1/3 600;
pw1_m=etrc_pw1%3 600/60;
pw1_s=etrc_pw1%3 600%60;
pw2_on_h=etrc_pw2_on/3 600;
pw2_on_m=etrc_pw2_on%3 600/60;
pw2_on_s=etrc_pw2_on%3 600%60;
pw2_off_h=etrc_pw2_off/3 600;
pw2_off_m=etrc_pw2_off%3 600/60;pw2_off_s=etrc_pw2_off%3 600%60;
pw3_h=etrc_pw3/3 600;
pw3_m=etrc_pw3%3 600/60;
pw3_s=etrc_pw3%3 600%60;
pw4_on_h=etrc_pw4_on/3 600;
pw4_on_m=etrc_pw4_on%3 600/60;
pw4_on_s=etrc_pw4_on%3 600%60;
pw4_off_h=etrc_pw4_off/3 600;
pw4_off_m=etrc_pw4_off%3 600/60;
pw4_off_s=etrc_pw4_off%3 600%60;
pw1_h_g=pw1_h/10;
pw1_h_d=pw1_h%10;
pw1_m_g=pw1_m/10;
pw1_m_d=pw1_m%10;
pw1_s_g=pw1_s/10;
pw1_s_d=pw1_s%10;
pw2_on_h_g=pw2_on_h/10;
pw2_on_h_d=pw2_on_h%10;
pw2_on_m_g=pw2_on_m/10;
pw2_on_m_d=pw2_on_m%10;
pw2_on_s_g=pw2_on_s/10;
pw2_on_s_d=pw2_on_s%10;
pw2_off_h_g=pw2_off_h/10;
pw2_off_h_d=pw2_off_h%10;
pw2_off_m_g=pw2_off_m/10;
pw2_off_m_d=pw2_off_m%10;
pw2_off_s_g=pw2_off_s/10;
pw2_off_s_d=pw2_off_s%10;
pw3_h_g=pw3_h/10;
pw3_h_d=pw3_h%10;
pw3_m_g=pw3_m/10;
pw3_m_d=pw3_m%10;
pw3_s_g=pw3_s/10;
pw3_s_d=pw3_s%10;
pw4_on_h_g=pw4_on_h/10;
pw4_on_h_d=pw4_on_h%10;
pw4_on_m_g=pw4_on_m/10;
pw4_on_m_d=pw4_on_m%10;
pw4_on_s_g=pw4_on_s/10;
pw4_on_s_d=pw4_on_s%10;
pw4_off_h_g=pw4_off_h/10;
pw4_off_h_d=pw4_off_h%10;
pw4_off_m_g=pw4_off_m/10;
pw4_off_m_d=pw4_off_m%10;
pw4_off_s_g=pw4_off_s/10;
pw4_off_s_d=pw4_off_s%10;
a=1;
while(a){
jsscan();}
switch(js) //剛按完按鍵后進(jìn)入此段賦初始值
{
case 1:
T_d=1;
h_g=pw1_h_g;
h_d=pw1_h_d;
m_g=pw1_m_g;
m_d=pw1_m_d;
s_g=pw1_s_g;
s_d=pw1_s_d;
t_s=etrc_pw1;
D1=1; //第1段降溫段熄滅relay=1; //繼電器斷開
js++;
break;case 2:
T_d=2;
h_g=pw2_on_h_g;
h_d=pw2_on_h_d;
m_g=pw2_on_m_g;
m_d=pw2_on_m_d;
s_g=pw2_on_s_g;
s_d=pw2_on_s_d;
t_s=etrc_pw2_on;
js_2=1;
D1=0; //第2段低溫段一開始點(diǎn)亮
relay=0; //繼電器打開
break;case 3:
T_d=3;
h_g=pw3_h_g;
h_d=pw3_h_d;
m_g=pw3_m_g;
m_d=pw3_m_d;
s_g=pw3_s_g;
s_d=pw3_s_d;
t_s=etrc_pw3;
D1=0; //第3段升溫段點(diǎn)亮relay=0; //繼電器打開
js++;
break;case 4:
T_d=4;
h_g=pw4_on_h_g;
h_d=pw4_on_h_d;
m_g=pw4_on_m_g;
m_d=pw4_on_m_d;
s_g=pw4_on_s_g;
s_d=pw4_on_s_d;
t_s=etrc_pw4_on;
js_4=1;
D1=0; //第4段高溫段一開始點(diǎn)亮
relay=0; //繼電器打開
break;
}
TMOD=0x11;
TH0=(65 536-50 000)/256;
TL0=(65 536-50 000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display_1(h_g,h_d);
display_2(m_g,m_d);
display_3(s_g,s_d);
display_4(T_d);} }
void T0_timer() interrupt 1
{
EA=0;
TR0=0;
fxtime=TL0+0x0B;
TL0=0xB0+fxtime;//TL0=(65 536-50 000)% 256;
TH0=0x3C+(char)CY;//TH0=(65 536-50 000)/256;
EA=1;
TR0=1;
tt++;
if(tt==20)/*1秒到*/
{
tt=0;
t_s--;
h_g=t_s/3 600/10;
h_d=t_s/3 600%10;
m_g=t_s%3 600/60/10;
m_d=t_s%3 600/60%10;
s_g=t_s%3 600%60/10;
s_d=t_s%3 600%60%10;
display_1(h_g,h_d);
display_2(m_g,m_d);
display_3(s_g,s_d);
display_4(T_d);
if(t_s==0)
{
if(js==5) js=1;
if(js==2) //js=2(第2段)為低溫段,此段6段通斷電{
T_d=2;
js_2++;
if(js_2==13)
{
js_2=0;
js++;
}
switch (js_2)
{
case 1:
D1=0;//js_2=1為第2段中第1
小段為點(diǎn)亮段
relay=0; //繼電器打開
h_g=pw2_on_h_g;
h_d=pw2_on_h_d;
m_g=pw2_on_m_g;
m_d=pw2_on_m_d;
s_g=pw2_on_s_g;
s_d=pw2_on_s_d;
t_s=etrc_pw2_on;
break;
case 2:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw2_off_h_g;
h_d=pw2_off_h_d;
m_g=pw2_off_m_g;
m_d=pw2_off_m_d;
s_g=pw2_off_s_g;
s_d=pw2_off_s_d;
t_s=etrc_pw2_off;
break;
case 3:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw2_on_h_g;
h_d=pw2_on_h_d;
m_g=pw2_on_m_g;
m_d=pw2_on_m_d;
s_g=pw2_on_s_g;
s_d=pw2_on_s_d;
t_s=etrc_pw2_on;
break;
case 4:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw2_off_h_g;
h_d=pw2_off_h_d;
m_g=pw2_off_m_g;
m_d=pw2_off_m_d;
s_g=pw2_off_s_g;
s_d=pw2_off_s_d;
t_s=etrc_pw2_off;
break;
case 5:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw2_on_h_g;
h_d=pw2_on_h_d;
m_g=pw2_on_m_g;
m_d=pw2_on_m_d;
s_g=pw2_on_s_g;
s_d=pw2_on_s_d;
t_s=etrc_pw2_on;
break;
case 6:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw2_off_h_g;
h_d=pw2_off_h_d;
m_g=pw2_off_m_g;
m_d=pw2_off_m_d;
s_g=pw2_off_s_g;
s_d=pw2_off_s_d;
t_s=etrc_pw2_off;
break;
case 7:
D1=0;//點(diǎn)亮
relay=1; //繼電器打開
h_g=pw2_on_h_g;
h_d=pw2_on_h_d;
m_g=pw2_on_m_g;
m_d=pw2_on_m_d;
s_g=pw2_on_s_g;
s_d=pw2_on_s_d;
t_s=etrc_pw2_on;
break;
case 8:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw2_off_h_g;
h_d=pw2_off_h_d;
m_g=pw2_off_m_g;
m_d=pw2_off_m_d;
s_g=pw2_off_s_g;
s_d=pw2_off_s_d;
t_s=etrc_pw2_off;
break;
case 9:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw2_on_h_g;
h_d=pw2_on_h_d;
m_g=pw2_on_m_g;
m_d=pw2_on_m_d;
s_g=pw2_on_s_g;
s_d=pw2_on_s_d;
t_s=etrc_pw2_on;
break;
case 10:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw2_off_h_g;
h_d=pw2_off_h_d;
m_g=pw2_off_m_g;
m_d=pw2_off_m_d;
s_g=pw2_off_s_g;
s_d=pw2_off_s_d;
t_s=etrc_pw2_off;
break;
case 11:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw2_on_h_g;
h_d=pw2_on_h_d;
m_g=pw2_on_m_g;
m_d=pw2_on_m_d;
s_g=pw2_on_s_g;
s_d=pw2_on_s_d;
t_s=etrc_pw2_on;
break;
case 12:
D1=1;//熄滅
relay=1; //繼電器斷開h_g=pw2_off_h_g;
h_d=pw2_off_h_d;
m_g=pw2_off_m_g;
m_d=pw2_off_m_d;
s_g=pw2_off_s_g;
s_d=pw2_off_s_d;
t_s=etrc_pw2_off;
break;
}
}
if(js==4)//js=4(第4段)為高溫段,此段6段通斷電{
T_d=4;
js_4++;
if(js_4==13){
js_4=0;
js=1;}
switch (js_4){
case 1:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw4_on_h_g;
h_d=pw4_on_h_d;
m_g=pw4_on_m_g;
m_d=pw4_on_m_d;
s_g=pw4_on_s_g;
s_d=pw4_on_s_d;
t_s=etrc_pw4_on;
break;
case 2:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw4_off_h_g;
h_d=pw4_off_h_d;
m_g=pw4_off_m_g;
m_d=pw4_off_m_d;
s_g=pw4_off_s_g;
s_d=pw4_off_s_d;
t_s=etrc_pw4_off;
break;
case 3:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw4_on_h_g;
h_d=pw4_on_h_d;
m_g=pw4_on_m_g;
m_d=pw4_on_m_d;
s_g=pw4_on_s_g;
s_d=pw4_on_s_d;
t_s=etrc_pw4_on;
break;
case 4:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw4_off_h_g;
h_d=pw4_off_h_d;
m_g=pw4_off_m_g;
m_d=pw4_off_m_d;
s_g=pw4_off_s_g;
s_d=pw4_off_s_d;
t_s=etrc_pw4_off;
break;
case 5:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw4_on_h_g;
h_d=pw4_on_h_d;
m_g=pw4_on_m_g;
m_d=pw4_on_m_d;
s_g=pw4_on_s_g;
s_d=pw4_on_s_d;
t_s=etrc_pw4_on;
break;
case 6:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw4_off_h_g;
h_d=pw4_off_h_d;
m_g=pw4_off_m_g;
m_d=pw4_off_m_d;
s_g=pw4_off_s_g;
s_d=pw4_off_s_d;
t_s=etrc_pw4_off;
break;
case 7:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw4_on_h_g;
h_d=pw4_on_h_d;
m_g=pw4_on_m_g;
m_d=pw4_on_m_d;
s_g=pw4_on_s_g;
s_d=pw4_on_s_d;
t_s=etrc_pw4_on;
break;
case 8:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw4_off_h_g;
h_d=pw4_off_h_d;
m_g=pw4_off_m_g;
m_d=pw4_off_m_d;
s_g=pw4_off_s_g;
s_d=pw4_off_s_d;
t_s=etrc_pw4_off;
break;
case 9:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw4_on_h_g;
h_d=pw4_on_h_d;
m_g=pw4_on_m_g;
m_d=pw4_on_m_d;
s_g=pw4_on_s_g;
s_d=pw4_on_s_d;
t_s=etrc_pw4_on;
break;
case 10:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw4_off_h_g;
h_d=pw4_off_h_d;
m_g=pw4_off_m_g;
m_d=pw4_off_m_d;
s_g=pw4_off_s_g;
s_d=pw4_off_s_d;
t_s=etrc_pw4_off;
break;
case 11:
D1=0;//點(diǎn)亮
relay=0; //繼電器打開
h_g=pw4_on_h_g;
h_d=pw4_on_h_d;
m_g=pw4_on_m_g;
m_d=pw4_on_m_d;
s_g=pw4_on_s_g;
s_d=pw4_on_s_d;
t_s=etrc_pw4_on;
break;
case 12:
D1=1;//熄滅
relay=1; //繼電器斷開
h_g=pw4_off_h_g;
h_d=pw4_off_h_d;
m_g=pw4_off_m_g;
m_d=pw4_off_m_d;
s_g=pw4_off_s_g;
s_d=pw4_off_s_d;
t_s=etrc_pw4_off;
break;
}
}
switch (js)
{
case 1:
T_d=1;
D1=1; //第1段為降溫段,此段斷電,燈熄滅
relay=1; //繼電器斷開
h_g=pw1_h_g;
h_d=pw1_h_d;
m_g=pw1_m_g;
m_d=pw1_m_d;
s_g=pw1_s_g;
s_d=pw1_s_d;
t_s=etrc_pw1;
js++;
break;
case 3:
T_d=3;
D1=0;//第3段為升溫段,此段通電,燈點(diǎn)亮
relay=0; //繼電器打開
h_g=pw3_h_g;
h_d=pw3_h_d;
m_g=pw3_m_g;
m_d=pw3_m_d;
s_g=pw3_s_g;
s_d=pw3_s_d;
t_s=etrc_pw3;
js++;
break;
}
} } }
a)此電應(yīng)力邏輯被大多數(shù)可靠性環(huán)境應(yīng)力試驗(yàn)所采用,簡稱 “4段式電應(yīng)力邏輯”,已經(jīng)過大量的實(shí)踐驗(yàn)證。若為此4段邏輯,只需改動(dòng)程序入口處各段的通斷電時(shí)間即可,這對于編程者是極為方便的。
b)編寫程序時(shí)應(yīng)注意,矩陣鍵盤僅在程序剛運(yùn)行時(shí)掃描,即當(dāng)按下某矩陣鍵盤后,便開始順序執(zhí)行程序,此時(shí)按其他任何矩陣鍵盤都無效。這樣可以有效地減少因?yàn)檎`按某個(gè)鍵盤而導(dǎo)致電應(yīng)力錯(cuò)誤。
c)編寫程序時(shí)應(yīng)注意,利用單片機(jī)內(nèi)部定時(shí)器進(jìn)行時(shí)間控制時(shí),需加入時(shí)間動(dòng)態(tài)補(bǔ)償算法程序,這樣的計(jì)時(shí)時(shí)間會非常精確。對于時(shí)間動(dòng)態(tài)補(bǔ)償算法程序有C語言及匯編寫法。具體的寫法此處不做累述。
d)根據(jù)硬件電路及上述程序編寫方法描述,可以較方便地寫出其他各種電應(yīng)力邏輯程序,最多可擴(kuò)充到16段。
e)此on-off機(jī)已經(jīng)運(yùn)用到很多試驗(yàn)項(xiàng)目中,運(yùn)行穩(wěn)定,經(jīng)過大量的實(shí)踐驗(yàn)證。當(dāng)然閱讀此文者需要有一定的硬件及軟件基礎(chǔ)。
f)此on-off機(jī)成本低廉,使用方便,直觀性、可操作性都很強(qiáng)。
g)如上述程序,可以實(shí)現(xiàn)到1 s的通斷邏輯并進(jìn)行顯示,若要實(shí)現(xiàn)毫秒級的on-off機(jī),此系統(tǒng)由于采用高性能STC 51單片機(jī) (最高頻率可達(dá)320 MHz)也可實(shí)現(xiàn),此時(shí)可以去除掉數(shù)碼管顯示模塊,按上述方式編寫程序即可。因?yàn)閷τ诤撩爰壍耐〝?,?shù)顯往往沒有意義[6]。
h)此on-off機(jī)系統(tǒng)的應(yīng)用會較為廣泛,如電源的通斷循環(huán)次數(shù),往往影響一個(gè)電源的使用壽命;空氣壓縮機(jī)上的氣壓閥會隨著氣壓的降低而反復(fù)啟動(dòng),此氣壓閥的重復(fù)啟動(dòng)次數(shù)往往關(guān)乎整個(gè)空氣壓縮機(jī)的壽命。此on-off機(jī)將為反復(fù)通斷電子器件提供壽命驗(yàn)證方法及加速壽命方法。
[1]姜同敏.可靠性試驗(yàn)技術(shù) [M].北京:北京航空航天大學(xué)出版社,2012:20-21.
[2]郭天祥.51單片機(jī)C語言教程——入門、提高、開發(fā)、拓展全攻略 [M].北京:電子工業(yè)出版社,2009:86-90.
[3]梅麗鳳,王艷秋,王敏鐸,等.單片機(jī)原理及接口技術(shù)[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2006:225-230.
[4]劉丹.速度傳感器型式試驗(yàn)大綱 [Z].株洲:南國株洲電力機(jī)車研究所有限公司,2014.
[5]薛峰,朱曉駿.單片機(jī)原理及應(yīng)用 [M].北京:北京理工大學(xué)出版社,2011:146-147.
[6]王文岳.用于樣品可靠性環(huán)境試驗(yàn)提供電應(yīng)力的通用邏輯控制系統(tǒng):中國,ZL 2011 101557150.0[P].2013-04-17.
Design of Electrical Stress On-O ff Control System for Environmental Test
WANGWen-yue
(CEPREI-EAST,Suzhou 215011,China)
The production of an electrical stress on-off control system is introduced.A new way for the electrical stress control in environm ental tests is p resented, using a SCM as the central control element and programming to control the peripheral circuits to implement logic onoff.Themethod can also apply to cyclic on-off life tests of some products.
environmental test;life test;electrical stress control;on-off control;SCM
TP 273+.5
:A
:1672-5468(2015)01-0029-14
10.3969/j.issn.1672-5468.2015.01.007
2014-07-11
2015-01-12
王文岳 (1985-),男,江蘇南京人,工業(yè)和信息化部電子第五研究所華東分所 (中國賽寶華東實(shí)驗(yàn)室)工程師,主要從事可靠性與環(huán)境試驗(yàn)技術(shù)研究工作。