⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmm.c

📁 矿工定位系统单端
💻 C
📖 第 1 页 / 共 3 页
字号:
                         
}
/********************************************************************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 + -