📄 main.c
字号:
DelayNS(100);
V6On;
V1On;
SysStd=Stop;
}
else if (SysStd==Error)
{
if (StartDone==1)
{
SysStd=StandBy;
}
else
SysStd = Start;
}
break;
case KeyZero:
SpKeyDel=3;
if(SysStd==LeakDtc)
{
if (Zeroing==0)
{
EnBeep=1;
Zeroing=0xff;
}
else if (Zeroing==0xff)
{
if (KeyRept[0]>5)
{
EnBeep=1;
IO0CLR = BEEP; // BEEP 蜂鸣
DelayNS(60);
IO0SET = BEEP; // BEEP停止蜂鸣
DelayNS(20);
Zeroing=0;
}
}
if (Zeroing==0xff)
{
EnBeep=1;
ZeroLeakValue=ZeroLeakValueTp;
}
}
break;
case KeyCal :
//SysStd=Caling;
break;
case KeyUp :
break;
case KeyDown :
break;
case KeyLeft :
break;
case KeyRt :
break;
default:
EnBeep=1;
break;
}
if(EnBeep==1)
{
EnBeep=0;
IO0CLR = BEEP; // BEEP 蜂鸣
DelayNS(80);
IO0SET = BEEP; // BEEP停止蜂鸣
}
KeyReg[0]=0;
}
if ((X0Dat[0]&0x01==0x01)&&(SysStd==StandBy))
{
X0Dat[0]=X0Dat[0]&(~0x01);
SysStd=Caling;
}
if (X4Dat[11])
/*****************************************************************************/
/* 启动 */
/*****************************************************************************/
switch(SysStd)
{
case Start :
WindowsFg=30;
V1On;V2Off;V3Off;
V4Off;V5Off;V6Off;
EnPe=0;
//TpumVaccum=GetVaccum(IntAdDat[1]);
/*if (KeyReg[0]==KeyStSp)
{
KeyReg[0]=0;
SysStd=Stop;
}
/*if(SysSec>0)
{
SysSec=0;
StartTm++;
}*/
if (TpumVaccumMain>5) //分子泵排气口压力>5 mbar
{
IO0CLR = TmpCtrl ;
if (StartTm>300)
{
SysStd=Error;
StartTm=0;
V1Off;
StartDone=0;
SysErrNum=1;
}
}
else
{
IO0SET = TmpCtrl ;
if ((IO0PIN & TpumOk)==TpumOk)
{
if (StartTm>600)
{
IO0CLR = TmpCtrl ;
SysStd=Error;
StartTm=0;
V1Off;
StartDone=0;
SysErrNum=2;
}
}
else //分子泵OK
{
if(StartDlyed==0)
{
StartDlyed=1;
if (VDly0==0)
{
VDly0=30;
TmpOk=1;
}
}
//DelayNS(100); //延时15秒
if (VDly0==0)
{
for(TryTms=0;TryTms<5;TryTms++)
{
if (KeyReg[0]==KeyStSp)
{
KeyReg[0]=0;
SysStd=Stop;
}
IO1CLR=DxBoard ;//灯丝板断电
DelayNS(100);
IO1SET=DxBoard ;//灯丝板加电
DelayNS(100);
ReadIntAd(2); //读取灯丝电流
if (IntAdDat[2]<100)
{
if ((TryTms==3)||(IO0PIN & Dx10r2)==0)
{
IO0SET=Dx10r2;
TryTms=0;
}
else if ((TryTms==3)||(IO0PIN & Dx10r2)==1)
{
SysStd=Error;
StartDone=0;
SysErrNum=3;
break;
}
}
else
{
StartDone=1;
StartBar=250;
IO0CLR = BEEP; // BEEP 蜂鸣
DelayNS(150);
IO0SET = BEEP; // BEEP停止蜂鸣
MsOk=1;
//TmpOk=1;
StartTm=0;
break;
}
}
if (StartDone==0)
{
;
}
else
{
//DelayNS(1);
//StartTm=StartTm+10;
//if (StartTm>=280)
SysStd=StandBy;
}
}
}
}
break;
/****************************************************************/
/* 待机 */
/****************************************************************/
case StandBy :
WindowsFg=31;
StartLkDec=1;
VdFg1=0;
VdFg2=0;
VdFg3=0;
VdFg4=0;
VdFg5=0;
VdFg6=0;
VdFg7=0;
VdFg8=0;
/*
if (KeyReg[0]==KeyStSp)
{
SysStd = LeakDtc;
}*/
StartDone=1;
//SetAmp(2);
//AmpRate=2;
OverPort=1;
Overed=0;
MsOk=1;
TmpOk=1;
EnPe=0;
V1On;
break;
/****************************************************************/
/* 检漏 */
/****************************************************************/
case LeakDtc :
V6Off;
//EnPe=0;
if (LkPtVaccumMain>8)
{
WindowsFg=32;
V1Off ;V3Off; V4Off; V5Off; V6Off;
if ((IO0PIN & Var2 )==0)
{
if(VdFg1==0)
{
VdFg1=1;
if(VDly1==0)
VDly1=2;
}
//DelayNS(200); //延时1。5秒
}
if (VDly1==0)
{
V2On;
if (SysSec%2)
{
SysSec=0;
StartTm++;
}
if ((StartTm%300)==299)
{
V2On;
DelayNS(1000);
V1Off;
DelayNS(500);
V2Off;
DelayNS(500);
V1On;
}
if (StartTm>1800)
{
V1Off;V2Off;
SysStd=Error;
SysErrNum=4;
}
}
}
else if ((LkPtVaccumMain<7.5)&&(VDly1==0))//检漏口压力小于7.5mbar
{
WindowsFg=33;
//V1On;
if (ZeroMode==1)
{
if (ZeroDelTm!=0)
{
if (AutoZeroFg==0)
{
AutoZeroTm=(ZeroDelTm*1000)/16;
AutoZeroFg=1;
}
if (AutoZeroTm==0)
{
Zeroing=0xff;
}
}
}
//EnPe=1;
if ((LkPtVaccumMain>1)||(OverPort==1)|| (DecPort==1)||(VDly2!=0) )
{
OverPort=1;
if ((IO0PIN & Var1 )==0)
{
if(VdFg2==0)
{
VdFg2=1;
if (VDly2==0)
{
VDly2=4;//070329
}
}
//DelayNS(200); //延时1。5秒
}
if(VDly2==0)
{
V1On;V3Off;V4Off;V5Off;V6Off;
MustV3=1;
}
if ((IO0PIN & Var2 )==0)
{
if(VdFg3==0)
{
VdFg3=1;
if (VDly3==0)
{
VDly3=5;
}
//DelayNS(200); //延时1。5秒
}
}
if(VDly3==0)
{
V2On;
StartLkDec=1;//CHANGE 3
}
//CHANGE 3StartLkDec=1;
}
if ((LkPtVaccumMain<0.8)&&(VDly2==0)||(VDly4!=0)||(MustV3==1))//???????????
{
EnPe=1;
if ((MustV3==1)||
(
(LkPtVaccumMain>0.2) //&&
// (
// (DecPort==0) ||
// (DecPort>1) ||
// (OverPort==2)
// )
) ||
(
(LkPtVaccumMain<=0.2) &&
(
// (DecPort==0) ||
(DecPort==2) ||
(OverPort==2)
)
)
)
{
OverPort=2;
//CHANGE 2 StartLkDec=2;
if (((IO0PIN & Var3 )==0))
{
if(VdFg4==0)
{
VdFg4=1;
if(VDly4==0)
VDly4=8;
}
//DelayNS(200); //延时1。5秒
}
if(VDly4==0)
{
V2Off;V4Off;V1On,V3On;
MustV3=0;
StartLkDec=2;
}
/*if ((IO0PIN & Var3 )==0)
{
if(VdFg5==0)
{
VdFg5=1;
if (VDly5==0)
{
VDly5=10; //070329
}
}
//DelayNS(200); //延时1。5秒
}
if (VDly5==0)
{
V3On;
StartLkDec=2;//CHANGE 2
} */
}
if (
((VDly4==0)||((LkPtVaccumMain<0.1)) && ////////?????????
( (DecPort==0) ||
(DecPort>2) ||
(OverPort==3)
)
&&(Overed==0))&&(MustV3==0)
)
{
OverPort=3;
//CHANGE 1StartLkDec=3;
if ((IO0PIN & Var4 )==0)
{
if(VdFg6==0)
{
VdFg6=1;
if(VDly6==0)
{
VDly6=8;//070329
}
}
//DelayNS(200); //延时1。5秒
}
if(VDly6==0)
{
StartLkDec=3;//CHANGE 1
V2Off;V3Off;V4On; V1On;
}
}
}
}
break;
/****************************************************************/
/* 定标中 */
/****************************************************************/
case Caling:
V6Off;
V5On;
if (LkPtVaccumMain>8)
{
WindowsFg=32;
StartLkDec=0;
CalTm=0;
V1Off ;V3Off; V4Off; V5Off; V6Off;
if ((IO0PIN & Var2 )==0)
DelayNS(500); //延时1。5秒
V2On;
if (SysSec%2)
{
SysSec=0;
StartTm++;
}
if ((StartTm%300)==299)
{
V2On;
DelayNS(1000);
V1Off;
DelayNS(500);
V2Off;
DelayNS(500);
V1On;
}
if (StartTm>1800)
{
V1Off;V2Off;
SysStd=Error;
SysErrNum=4;
}
}
else if (LkPtVaccumMain<7.5)//检漏口压力小于7.5mbar
{
WindowsFg=35;
if (LkPtVaccumMain>1)
{
if ((IO0PIN & Var1 )==0)
DelayNS(500); //延时1。5秒
V1On;V3Off;V5Off;V6Off;
if ((IO0PIN & Var2 )==0)
DelayNS(500); //延时1。5秒
V2On;
//StartLkDec=1;
}
else if (LkPtVaccumMain<0.8)
{
if ((LkPtVaccumMain>0.2) )
{
//StartLkDec=2;
if ((IO0PIN & Var3 )==0)
DelayNS(500); //延时1。5秒
V2Off;V4Off;V1On;
if ((IO0PIN & Var3 )==0)
DelayNS(500); //延时1。5秒
V3On;
}
else if ((LkPtVaccumMain<0.1))
{
StartLkDec=3;
if ((IO0PIN & Var4 )==0)
DelayNS(500); //延时1。5秒
V2Off;V3Off;V4On; V1On;
if (CalExp>=8)
{
IRQDisable();
SetAmp(4);
IRQEnable();
}
else
{
IRQDisable();
SetAmp(3);
IRQEnable();
}
if (SysSec%2)
{
SysSec=0;
CalTm++;
}
if (CalTm>20)
{
CalTm=20;
RemCal=LeakValue;
WriteTmp[0]=(uint16)(RemCal)/256;
WriteTmp[1]=(uint16)(RemCal)%256;
//DisTm0;
//DisTm1;
//DisUart0;
//DisUart1;
//EnI2C0;
//I2C_WriteNByte (0xa0, 1,0xfe, WriteTmp, 2);//070305
//EnTm0;
//EnTm1;
//EnUart0;
//EnUart1;
//EnI2C0;
}
}
}
}
break;
/****************************************************************/
/* 停 机 */
/****************************************************************/
case Stop :
V2Off;V3Off;
V4Off;V5Off;V6Off;
DelayNS(100);
//IO0CLR = TmpCtrl ;
//if (KeyReg[0]==KeyStSp)
{
//KeyReg[0]=0;
//if (StartDone==1)
{
// SysStd=LeakDtc;
}
// else
{
// SysStd=Start;
}
}
break;
case Error :
SysStd=Error;
break;
default:
break;
}
if (SysStd==Error)
{
//while(1)
{
VdFg1=0;
VdFg2=0;
VdFg3=0;
VdFg4=0;
VdFg5=0;
VdFg6=0;
VdFg7=0;
VdFg8=0;
V2Off;V3Off;
V4Off;V5Off;V6Off;
BeepAlarm(3);
}
}
if (DispRate>2)
{
DispRate=0;
MbusDel();
}
}
DelayNS(1);
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -