新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)及CPLD的B超檢測工裝設(shè)計(jì)

基于單片機(jī)及CPLD的B超檢測工裝設(shè)計(jì)

作者: 時(shí)間:2010-05-18 來源:網(wǎng)絡(luò) 收藏

微處理器AT89S52外接3個(gè)輕觸開關(guān)S3、S4、S5,S3接外中斷0,用于繼電器控制,上電默認(rèn)選擇探頭1(PROBE A),按下S3,則選擇探頭2(PROBE B),再次按下無效(防止帶電換探頭)。再重新上電,才能選擇探頭1。S4接外中斷1,上電默認(rèn)24個(gè)通道、96陣元是每隔2s自動(dòng)的,若需要人工,則按下S4,此時(shí),每按一次S4,則下一通道和陣元。S5是復(fù)位開關(guān)。根據(jù)硬件連接,設(shè)置如下:

uchar m=0;//用于96陣元的選擇

uchar n=0;//默認(rèn)選擇探頭1

uchar l=0;//用于24通道的選擇

uchar k;

sbit SDATA1= P1^0; //移位數(shù)據(jù)1

sbit SCLK1= P1^1; //移位時(shí)鐘1

sbit SLD1= P1^2; //移位鎖定

sbit RESET1=P1^3;//復(fù)位1

sbit SDATA3= P1^4; //移位數(shù)據(jù)3

sbit SCLK3= P1^5; //移位時(shí)鐘3

sbit SLD3= P1^6; //移位鎖定

sbit RESET3=P1^7;//復(fù)位3

sbit SDATA2= P0^0; //移位數(shù)據(jù)2

sbit SCLK2= P0^1; //移位時(shí)鐘2

sbit SLD2= P0^2; //移位鎖定

sbit RESET2=P0^3;//復(fù)位2

sbit SRELAY=P0^4;//探頭繼電器選擇

定時(shí)器自動(dòng)檢測子程序

void serves_timer2() interrupt 5 using 0

{

EA=0;

TF2=0;

k=k+1;

if(k==40)//2秒

{ k=0;

m=m+1;

l=l+1;

if( m>96) m=1;

if (l>24) l=1;

DELAY1s( );

for (j=0;j8;j++)

{

HV20220_1(l) ;

HV20220_2( m) ;

HV20220_3(m);

}

}

else{}

EA=1;

}

在本程序中,if( m>96) m=1;if (l>24) l=1; 即:96個(gè)陣元是對(duì)應(yīng)24個(gè)通道的,在實(shí)際的B超工作過程中,一個(gè)通道工作的時(shí)候,同時(shí)會(huì)有4個(gè)按一定規(guī)律排列的陣元在工作。本不僅獨(dú)立檢測24個(gè)通道的每個(gè)通道,同時(shí)還檢測96個(gè)陣元中的每一個(gè),因此,檢測96個(gè)陣元,24個(gè)通道運(yùn)行了4次。

輕觸開關(guān)S4外中斷1子程序

void serves_int1() interrupt 2 using 2//外中斷1

{

EA=0;

TR2=0;//停止計(jì)數(shù)

m=m+1;

l=l+1;

if( m>96) m=1;

if (l>24) l=1;

DELAY1s( );

for (j=0;j8;j++)

{

HV20220_1(l) ;

HV20220_2( m) ;

HV20220_3(m);

}

EA=1;

}

輕觸開關(guān)S3外外中斷0子程序

void serves_int0() interrupt 0 using 0//外中斷0

{

EA=0;

n=1;//顯示01

SRELAY=1;//選擇探頭2

DELAY1s( );

EA=1;

}

先檢測探頭1,探頭1的96個(gè)陣元都檢測通過后,斷電,將探頭轉(zhuǎn)接線放到探頭2的位置;上電,按下輕觸按鈕S3,此時(shí)數(shù)碼管前2位顯示01,是選擇探頭2的標(biāo)志。微處理器控制繼電器把所有通道都轉(zhuǎn)接到探頭2的測量上。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉