📄 mmm.c
字号:
unsigned int idata x;
switch(ch4state)
{
case 0:
CH4POW=1;
for(i=0;i<3;i++) //求平均值
{ x=x+read1543(8);
}
x=x/3;
if(x>=Z_PORT)
{ x=x-Z_PORT;
sprintf(ms," %03d",x);
SendStr_MAX7219(ms);
if(x>=MID_LIMT) ch4state=1;
} //is +
else
{ x=Z_PORT-x;
sprintf(ms,"-%03d",x);
SendStr_MAX7219(ms);
}//-
break;
case 1:
CH4POW=1;
voice(1);
for(i=0;i<3;i++) //求平均值
{
x=x+read1543(8);
}
x=x/3;
if(x>=HIGH_LIMT){ch4state=2;CH4POW=0;CH4_DELAY=0;}
if(x<MID_LIMT)ch4state=0;
sprintf(ms," %03d",x);
SendStr_MAX7219(ms);
return 1;
break;
case 2:
CH4POW=0;
voice(2);
if(CH4_DELAY>2) { CH4POW=1;ch4state=1;}
sprintf(ms,"hhhh");
SendStr_MAX7219(ms);
return 1;
break;
default :
ch4state=0;
break;
}
}
//**************************************************************************
void main(void)
{
unsigned int xx=0;
unsigned char data i=0,j,ttt,uuu;
unsigned long idata yyy=0;
P0=0;
TX_EN=0;
CH4POW=1;
rest_delay=0;
En485 = RECV;
//Delay100ms(1);
TX_EN=1;
init_com();
InitREG();
UartInit();
Test_led=!Test_led;
Delay100ms(1);
Comm_Off();
PWR_UP=1;
Test_led=!Test_led;
EA=1;
// Ch4_test();
Init_X25045(0x00);
/* ByteWrite_Check (22,0X34);
if( ByteRead_Check (22)==0x34)//测试25045
{ Test_led=!Test_led;
Delay100ms(10);
Test_led=!Test_led;
}*/
if((ByteRead_Check(20)==0x00)||(ByteRead_Check(20)==0xff))ADDR=0XD2;
else
ADDR=ByteRead_Check(20);
// ADDR=0xd2;
if(ADDR%2)
{
CS=0;
}
else
{
CS=1;
}
for(i=0;i<4;i++)//clear
{
for(j=0;j<16;j++)
RemainRec[i][j]=0;
}
Watch_dog();
for(i=0;i<8;i++)Call_id[i]=0;
Ch4_test();
while(1)
{
TX_EN=1;
Watch_dog();
if(rest_delay>750)while(1);
if (Cmdok) //通讯
{ rest_delay=0;
Watch_dog();
Cmdok = FALSE;
Waring=0; //报警清掉
RecvReady = FALSE;
SendReady = FALSE;
cmd_execution();
SendReady = TRUE ; //发起始字
TI = 1;
}
CH4_DELAY++;
for(i=1;i<201;i++)
{
if(i%10==0){Check_call();Ch4_test();}
if(rest_delay>750)while(1);
Watch_dog();
if (Cmdok) //通讯
{rest_delay=0;
Cmdok = FALSE;
RecvReady = FALSE;
SendReady = FALSE;
cmd_execution();
SendReady = TRUE ; //发起始字
TI = 1;
Test_led=!Test_led;
}
Watch_dog();
//ttt=Find(i);
ttt=0;
if(ttt==0)
{
ttt=Find(i,0);
if(ttt)
{
Card_id[i]=4;//循环监测的次数
if((i%4)==0)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x01;
uuu=uuu&0xfd;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x02;
uuu=uuu&0xfe;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==1)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x04;
uuu=uuu&0xf7;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x08;
uuu=uuu&0xfb;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==2)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x10;
uuu=uuu&0xdf;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x20;
uuu=uuu&0xef;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==3)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x40;
uuu=uuu&0x7f;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x80;
uuu=uuu&0xbf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
Test_led=!Test_led;//在区域
}
else //不再区域
{
if((i%4)==0)
{
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0x03) //如果原来就存在
{
ttt=Find(i,0); //再次查找
if(ttt==0)
{
Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0xfc;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else //原来就不在
{
if(!Waring) //没有报警信息
{
uuu=uuu&0xfc; //清零
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
if((i%4)==1)
{
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0x0c)
{
ttt=Find(i,0); //再次查找
if(ttt==0)
{ Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0xf3;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else
{
if(!Waring) //没有报警信息
{
uuu=uuu&0xf3;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
if((i%4)==2)
{
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0x30)
{
ttt=Find(i,0); //再次查找
if(ttt==0)
{ Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0xcf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else
{
if(!Waring) //没有报警信息
{
uuu=uuu&0xcf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
if((i%4)==3)
{
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0xc0)
{
ttt=Find(i,0); //再次查找
if(ttt==0)
{ Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0x3f;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else
{
if(!Waring) //没有报警信息
{
uuu=uuu&0x3f;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
}
}
else
{
Card_id[i]=4;//循环监测的次数
if((i%4)==0)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x01;
uuu=uuu&0xfd;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x02;
uuu=uuu&0xfe;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==1)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x04;
uuu=uuu&0xf7;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x08;
uuu=uuu&0xfb;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==2)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x10;
uuu=uuu&0xdf;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x20;
uuu=uuu&0xef;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==3)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x40;
uuu=uuu&0x7f;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x80;
uuu=uuu&0xbf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
Test_led=!Test_led;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -