新聞中心

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

基于單片機及CPLD的B超檢測工裝設計

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

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

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

uchar n=0;//默認選擇探頭1

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

uchar k;

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

sbit SCLK1= P1^1; //移位時鐘1

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

sbit RESET1=P1^3;//復位1

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

sbit SCLK3= P1^5; //移位時鐘3

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

sbit RESET3=P1^7;//復位3

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

sbit SCLK2= P0^1; //移位時鐘2

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

sbit RESET2=P0^3;//復位2

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

定時器自動檢測子程序

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個陣元是對應24個通道的,在實際的B超工作過程中,一個通道工作的時候,同時會有4個按一定規(guī)律排列的陣元在工作。本不僅獨立檢測24個通道的每個通道,同時還檢測96個陣元中的每一個,因此,檢測96個陣元,24個通道運行了4次。

輕觸開關S4外中斷1子程序

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

{

EA=0;

TR2=0;//停止計數(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;

}

輕觸開關S3外外中斷0子程序

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

{

EA=0;

n=1;//顯示01

SRELAY=1;//選擇探頭2

DELAY1s( );

EA=1;

}

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



評論


相關推薦

技術專區(qū)

關閉