📄 mmm.c
字号:
}
/********************************************************************8*/
void Check_call(void)
{
unsigned char idata i,tt;
for(i=0;i<8;i++)
{
if((Call_id[i]>0)&&(Call_id[i]<201))
{
tt=Find(Call_id[i],1);
if(!tt)Find(Call_id[i],1);
}
}
}
//**************************************************************************
void main(void)
{
unsigned int xx=0;//,bcc;
unsigned char idata i=0,j,ttt,uuu;
unsigned long idata yyy=0;
TX_EN=0;
/* SerBuffer[0]=0x01;
SerBuffer[1]=0x92;
SerBuffer[2]=0x0;
bcc=cal_crc3964(SerBuffer, 3);*/
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;
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;
}
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;
while(1)
{
/*init_com();
InitREG();
UartInit(); */
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;
}
for(i=1;i<201;i++)
{
if((i==1)||(i==150)||(i==50)||(i==100))Check_call();
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 + -