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

📄 newpose1.c

📁 单片机程序 实现智能寻迹
💻 C
📖 第 1 页 / 共 2 页
字号:
 Clear_scr();
 for(i=0;i<256;i++)
   {
   Card_data[i]=0;
   }
 _EINT();







 while(1)
   {
   if(Card_state==0xe0)
     {
     ;
     }
   else if(Card_state==0)
     {
     readtime();
     readdate();
     if(Card_data[255]==0X59)
       {
       fourbyte.value_byte.byte0=Card_data[40];
       fourbyte.value_byte.byte1=Card_data[41];
       fourbyte.value_byte.byte2=Card_data[42];
       fourbyte.value_byte.byte3=Card_data[43];
       if((fourbyte.value>0)&&(fourbyte.value<0xffffffff))
         {
         Clear_scr();
         Disp_digit(fourbyte.value);
         delay(1000);
         fourbyte.value_byte.byte0=Card_data[50];
         fourbyte.value_byte.byte1=Card_data[51];
         if((fourbyte.value_word.word0>0)&&(fourbyte.value_word.word0<0xffff))
           {
           Clear_scr();
           Disp_digit(fourbyte.value_word.word0);
           delay(1000);
           fourbyte.value_byte.byte0=Card_data[0x66];
           fourbyte.value_byte.byte1=Card_data[0x67];
           fourbyte.value_byte.byte2=Card_data[0x68];
           fourbyte.value_byte.byte3=Card_data[0x69];
           Clear_scr();
           Disp_digit(fourbyte.value);
           delay(1000);
           fourbyte.value_byte.byte0=Card_data[0x6e];
           fourbyte.value_byte.byte1=Card_data[0x6f];
           fourbyte.value_byte.byte2=Card_data[0x70];
           fourbyte.value_byte.byte3=Card_data[0x71];
           Clear_scr();
           Disp_digit(fourbyte.value);
           delay(1000);
           fourbyte.value_byte.byte0=Card_data[0x62];
           fourbyte.value_byte.byte1=Card_data[0x63];
           fourbyte.value_byte.byte2=Card_data[0x64];
           fourbyte.value_byte.byte3=Card_data[0x65];
           Clear_scr();
           Disp_digit(fourbyte.value);

           Send45db041();
           Display("oo");
           }
         else
           {
           Dis_error(5);
           }
         }
       else
         {
         Dis_error(5);
         }
       }
     else
       {
       Dis_error(4);
       }
     Card_state=0xE0;
     }
   else if(Card_state==0xff)
     {
     Dis_error(0);
     Card_state=0xE0;
     }
   else if(Card_state==0xc0)
     {
     Dis_error(3);
     Card_state=0xE0;
     }
   else if((Card_state>0)&&(Card_state<23))
     {
     Dis_error(1);
     Card_state=0xE0;
     }
   else if(Card_state>22)
     {
     Dis_error(2);
     Card_state=0xE0;
     }
   if(Uart_TRfinish_flag==0x0f)
     {
     for(i=4;i<14;i++)
       {
       Main_Memory_Page_AND_Continous_Read(0xe8,RxData[i],0x00,Card_data,233);
       while(Send_Card_data(233))
         {
         ;
         }
       Clear_scr();
       }
     Uart_TRfinish_flag&=0xf0;
     }
   while(Control.value_bit.set)
     {
     i=100;
     readtime();
     Disp_time(Hour,Minute,Second);
     if(Port1!=0||Port2!=0){i=0;break;}
     if(Control.value_bit.watch)
       {
       Control.value_bit.set=0;
       Control.value_bit.watch=0;
       *Sign_below&=~(LEFT+RIGHT);
       readdate();
       Disp_date(Year,Month,Day);
       delay(2500);
       Clear_scr();
       }
     }
   while(Control.value_bit.set)
    {
    if(i>=0&&i<=3)
       {
       *Lcdbit[i+2]=0;
       delay(500);
       }
     else if(i>=4&&i<=9)
       {
       *Lcdbit[i-4]&=0x08;
       delay(500);
       }
    if(i>=0&&i<=3)
      {
      *Lcdbit[6]=0;
      *Lcdbit[7]=0;
      *Lcdbit[4]&=~DOT;
      *Lcdbit[2]&=~DOT;
      *Sign_below|=LEFT+RIGHT;  //显示时间
      switch(Port1)
        {
        case BIT0 : *Lcdbit[i+2]=Digit[0];bit=0x00;break;
        case BIT1 : *Lcdbit[i+2]=Digit[1];bit=0x01;break;
        case BIT2 : *Lcdbit[i+2]=Digit[2];bit=0x02;break;
        case BIT3 : *Lcdbit[i+2]=Digit[3];bit=0x03;break;
        case BIT4 : *Lcdbit[i+2]=Digit[4];bit=0x04;break;
        case BIT5 : *Lcdbit[i+2]=Digit[5];bit=0x05;break;
        case BIT6 : *Lcdbit[i+2]=Digit[6];bit=0x06;break;
        case BIT7 : *Lcdbit[i+2]=Digit[7];bit=0x07;break;
        default:/**Lcdbit[i+2]=0;*/break;
        }
      switch(Port2)
        {
        case BIT0 : *Lcdbit[i+2]=Digit[8];bit=0x08;break;
        case BIT1 : *Lcdbit[i+2]=Digit[9];bit=0x09;break;
        default:/**Lcdbit[i+2]=0;*/break;
        }
      if(Key_flag)
        {
        Key_flag=0;
        switch(i)
          {
          case 0 : Minute=(Minute&0xf0)+bit;break;
          case 1 : Minute=(Minute&0x0f)+(bit<<4);break;
          case 2 : Hour=(Hour&0xf0)+bit;break;
          case 3 : Hour=(Hour&0x0f)+(bit<<4);break;
          default : break;
          }
        }
      Disp_time(Hour,Minute,Second);
      delay(500);
      }
    else if(i>=4&&i<=9)
      {
      *Sign_below&=~(LEFT+RIGHT);
      *Lcdbit[4]|=DOT;
      *Lcdbit[2]|=DOT;          //显示日期
      switch(Port1)
        {
        case BIT0 : *Lcdbit[i-4]=Digit[0];bit=0x00;break;
        case BIT1 : *Lcdbit[i-4]=Digit[1];bit=0x01;break;
        case BIT2 : *Lcdbit[i-4]=Digit[2];bit=0x02;break;
        case BIT3 : *Lcdbit[i-4]=Digit[3];bit=0x03;break;
        case BIT4 : *Lcdbit[i-4]=Digit[4];bit=0x04;break;
        case BIT5 : *Lcdbit[i-4]=Digit[5];bit=0x05;break;
        case BIT6 : *Lcdbit[i-4]=Digit[6];bit=0x06;break;
        case BIT7 : *Lcdbit[i-4]=Digit[7];bit=0x07;break;
        default:break;
        }
      switch(Port2)
        {
        case BIT0 : *Lcdbit[i-4]=Digit[8];bit=0x08;break;
        case BIT1 : *Lcdbit[i-4]=Digit[9];bit=0x09;break;
        default:break;
        }
      if(Key_flag)
        {
        Key_flag=0;
        switch(i)
          {
          case 4 : Day=(Day&0xf0)+bit;break;
          case 5 : Day=(Day&0x0f)+(bit<<4);break;
          case 6 : Month=(Month&0xf0)+bit;break;
          case 7 : Month=(Month&0x0f)+(bit<<4);break;
          case 8 : Year=(Year&0xf0)+bit;break;
          case 9 : Year=(Year&0x0f)+(bit<<4);break;
          default : break;
          }
        }
      Disp_date(Year,Month,Day);
      delay(500);
      }
     if(Control.value_bit.back)
       {
       i++;
       i=i%10;
       Control.value_bit.back=0;
       Key_flag=0;
       }
     if(Control.value_bit.send)
       {
       Control.value_bit.send=0;
       Control.value_bit.set=0;
       if(i>=0&&i<=3)
         {
         setminute(Minute);
         sethour(Hour);
         readtime();
         Disp_time(Hour,Minute,Second);
         delay(1000);
         Clear_scr();
         }
       else if(i>=4&&i<=9)
         {
         setday(Day);
         setmonth(Month);
         setyear(Year);
         readdate();
         Disp_date(Year,Month,Day);
         delay(1000);
         Clear_scr();
         }
       Port1=0;
       Port2=0;
       }
     }
   if(Control.value_bit.download)
     {
     Page=0;
     Display("PAGE--mmmm");
     LPM3;
     for(i=4;i>0;)
       {

       if(Control.value_bit.back)
         {
         Control.value_bit.back=0;
         //Port1=0;
         //Port2=0;
         if(i<4)
           {
           Page=Page/10;
           i++;
           *Lcdbit[i-1]=0;
           }
         else
           {
           i=4;
           }
         LPM3;
         }
       switch(Port1)
         {
         case BIT0 : *Lcdbit[i-1]=Digit[0];bit=0x00;break;
         case BIT1 : *Lcdbit[i-1]=Digit[1];bit=0x01;break;
         case BIT2 : *Lcdbit[i-1]=Digit[2];bit=0x02;break;
         case BIT3 : *Lcdbit[i-1]=Digit[3];bit=0x03;break;
         case BIT4 : *Lcdbit[i-1]=Digit[4];bit=0x04;break;
         case BIT5 : *Lcdbit[i-1]=Digit[5];bit=0x05;break;
         case BIT6 : *Lcdbit[i-1]=Digit[6];bit=0x06;break;
         case BIT7 : *Lcdbit[i-1]=Digit[7];bit=0x07;break;
         default:/**Lcdbit[i+2]=0;*/break;
         }
       switch(Port2)
         {
         case BIT0 : *Lcdbit[i-1]=Digit[8];bit=0x08;break;
         case BIT1 : *Lcdbit[i-1]=Digit[9];bit=0x09;break;
         default:/**Lcdbit[i+2]=0;*/break;
         }
       Page=Page*10+bit;

       LPM3;
       i--;

       }

     if(Page>2046)Page=2046;
     delay(500);
     Clear_scr();
     delay(500);
     Disp_digit(Page);
     *Lcdbit[4]=0x20;
     *Lcdbit[5]=0x20;
     *Lcdbit[6]=0xf1;
     *Lcdbit[7]=0xd5;
     *Lcdbit[8]=0x77;
     *Lcdbit[9]=0x73;
     DISP_scebatu;
     Card_data[0]=Page;
     Card_data[1]=(Page&0xff00)>>8;
     Buffer_Write(0x84,0x00,Card_data,2);//写缓存
     Buffer_To_Main_With_ERASE(0x83,0x7ff);
     delay(1000);
     Clear_scr();
     Port1=0;
     Port2=0;
     Control.value_bit.download=0;
     Control.value_bit.set=0;
     }






  /* for(i=0;i<256;i++)
   {
   Card_data[i]=0;
   }
   Buffer_Write(0x84,0x00,Card_data,233);                         //写缓存
   Buffer_To_Main_With_ERASE(0x83,0x00);
   delay(10);
   Main_Memory_Page_AND_Continous_Read(0xe8,Page,0x00,Card_data,233);
   for(i=0;i<256;i++)
   {
   Card_data[i]=i;
   }
   Buffer_Write(0x84,0x00,Card_data,255);                         //写缓存
   Buffer_To_Main_With_ERASE(0x83,0x7d1);
   for(i=0;i<256;i++)
   {
   Card_data[i]=0;
   }
   Main_Memory_Page_AND_Continous_Read(0xe8,0x7d1,0x00,Card_data,255);*/






   LPM3;
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -