新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机及CPLD的B超检测工装设计

基于单片机及CPLD的B超检测工装设计

作者:时间:2010-05-18来源:网络收藏

微处理器AT89S52外接3个轻触开关S3、S4、S5,S3接外中断0,用于继电器控制,上电默认选择探头1(PROBE A),按下S3,则选择探头2(PROBE B),再次按下无效(防止带电换探头)。再重新上电,才能选择探头1。S4接外中断1,上电默认24个通道、96阵元是每隔2s自动的,若需要人工,则按下S4,此时,每按一次S4,则下一通道和阵元。S5是复位开关。根据硬件连接,设置如下:

uchar m=0;//用于96阵元的选择

uchar n=0;//默认选择探头1

uchar l=0;//用于24通道的选择

uchar k;

sbit SDATA1= P1^0; //移位数据1

sbit SCLK1= P1^1; //移位时钟1

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

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

sbit SDATA3= P1^4; //移位数据3

sbit SCLK3= P1^5; //移位时钟3

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

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

sbit SDATA2= P0^0; //移位数据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个按一定规律排列的阵元在工作。本不仅独立检测24个通道的每个通道,同时还检测96个阵元中的每一个,因此,检测96个阵元,24个通道运行了4次。

轻触开关S4外中断1子程序

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

{

EA=0;

TR2=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);

}

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个阵元都检测通过后,断电,将探头转接线放到探头2的位置;上电,按下轻触按钮S3,此时数码管前2位显示01,是选择探头2的标志。微处理器控制继电器把所有通道都转接到探头2的测量上。



评论


相关推荐

技术专区

关闭