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

📄 main.lst

📁 矿工定位系统单端
💻 LST
📖 第 1 页 / 共 5 页
字号:
 486   4                                      else if (c == ETX)
 487   4                                      {
 488   5                                              if (DataDleReceived)  //如果是结束标记    处理
 489   5                                 {
 490   6                                  DataDleReceived = FALSE;
 491   6                                                      bcc = 0;
 492   6                                  for (i = 0; i < Index; i++)
 493   6                                  {
 494   7                                         bcc ^= SerBuffer[i];
 495   7                                  };
 496   6      
 497   6                                                      if( bcc == 0)
 498   6                                                      {
 499   7                                                              En485 = SEND;
 500   7                                                              //Ir_En = SEND;
 501   7                                                              Cmdok = TRUE;
 502   7                                                              SBUF = DLE ;
 503   7                                                              while( !TI );
 504   7                                                              TI = FALSE;
 505   7                                                              En485 = RECV;
 506   7                                                              //Ir_En = RECV;
 507   7                                                      }
 508   6                                                      else
 509   6                                                      { 
 510   7                                                              En485 = SEND;
 511   7                                                              //Ir_En = SEND;
 512   7                                                              Cmdok = FALSE;
 513   7                                                              SBUF = NAK ;
 514   7                                                              while( !TI );
 515   7                                                              TI = FALSE;
 516   7                                  En485 = RECV;
 517   7                                                              //Ir_En = RECV;
 518   7                                                      };
 519   6                                    break;
 520   6                                              }
 521   5                            else
 522   5                              {
 523   6                                      DataDleReceived = FALSE;   //如果不是结束标记  留下
 524   6                              };
 525   5                                      };
 526   4      
 527   4                              if (Index < SERBUFLEN)              //将数据写入SerBuffer[]
 528   4                          {
 529   5                              SerBuffer[Index++] = c;
 530   5                          };
 531   4                          RecvState = RECV_DATA_DLE_ETX;
 532   4                          START_T0(T_533_ms);
 533   4                                      break;
 534   4      
 535   4            case RECV_DLE: //Recieve answer from HOST
 536   4                                      if ( c == DLE)
 537   4                                      {
 538   5                                              En485 = SEND;
 539   5      
 540   5                                              //Ir_En = SEND;
 541   5                                              //Delay50us(2);
 542   5                                              for (i = 0; i < (3 + SerBuffer[2] +1); i++)  //send data
 543   5                                              {
 544   6                                                      SBUF = SerBuffer[i];
 545   6                                    while (!TI);
 546   6                                    TI = FALSE;
 547   6                                    if ( SerBuffer[i] == DLE )           //send DLE two
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 10  

 548   6                                    {
 549   7                                      SBUF = DLE;
 550   7                                      while (!TI);
 551   7                                      TI = FALSE;
 552   7                                    };
 553   6                                              };
 554   5      
 555   5      
 556   5                                              SBUF = DLE;                //send END
 557   5                                              while (!TI);
 558   5                                  TI = FALSE;
 559   5      
 560   5                                              SBUF = ETX;
 561   5                                              while (!TI);
 562   5                                              TI = FALSE;
 563   5                                              RecvState = RECV_DLE_OR_NAK ;
 564   5                                              START_T0(T_533_ms);
 565   5                                              En485 = RECV;
 566   5                                              //Ir_En = RECV;
 567   5                                      }
 568   4                                      else
 569   4                                      {
 570   5                                              CALL_isr_T0() ;
 571   5                                      };
 572   4                                      break;
 573   4      
 574   4            case RECV_DLE_OR_NAK: //Recieve answer from HOST
 575   4                                      if ( c == DLE)
 576   4                                      {
 577   5                                              SendOk = TRUE;
 578   5                                              SendReady = FALSE;
 579   5                                              RecvReady = TRUE;
 580   5                                              RecvState = RECV_STX;
 581   5                                      }
 582   4                                      else
 583   4                                      {
 584   5                                              SendOk = FALSE;
 585   5                                              SendReady = TRUE;
 586   5                                              RecvReady = FALSE;
 587   5                                              CALL_isr_T0() ;
 588   5                                      };
 589   4              En485 = RECV;
 590   4                                      //Ir_En = RECV;
 591   4                                      break;
 592   4                      default:
 593   4                                      CALL_isr_T0() ;
 594   4                                      break;
 595   4      
 596   4                      };//end of case
 597   3         };//end of if(RecvReady)
 598   2        };//end of if(RI)
 599   1      
 600   1      
 601   1        if ( TI && !RI )
 602   1        {
 603   2                      TI = 0 ;
 604   2                      if ( SendReady )
 605   2                      {
 606   3                              SendReady = FALSE ;
 607   3      
 608   3                  bcc = SerBuffer[0];   //计算BCC
 609   3                  for ( i = 1 ; i < SerBuffer[2]+3 ; i++ )
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 11  

 610   3                              {
 611   4                              bcc = bcc ^ SerBuffer[i]  ;
 612   4              
 613   4                              };
 614   3                              SerBuffer[SerBuffer[2]+3] = bcc;
 615   3      
 616   3                  En485 = SEND;
 617   3                              //Ir_En = SEND;
 618   3                              //Delay50us(2);
 619   3                              SBUF = STX ;             //发送起始位}
 620   3                              RecvReady = TRUE ;
 621   3                              RecvState = RECV_DLE ;   //准备接收应答
 622   3                      //      GREEN_LED = ~GREEN_LED;
 623   3                              while(!TI) ;
 624   3                              TI = FALSE ;
 625   3                              En485 = RECV;
 626   3                              //Ir_En = RECV;
 627   3                              START_T0(T_533_ms) ;        //chao shi
 628   3                      };
 629   2        };
 630   1      
 631   1      }
 632          //****************************************************************************
 633          void  SetPosNum(unsigned char xdata *dat)
 634          {
 635   1       //ByteWrite_Check (124,dat[0]); 
 636   1        Wr1307(20,dat[0]);
 637   1       ADDR=dat[0];
 638   1       num_suss=1;
 639   1      }
 640          /****************************************************************************
 641          *               cmd_execution();                                                             *
 642          * Function:                                            *
 643          *                                                                           *
 644          * Input:                                                                    *
 645          * Output:       -                                                           *
 646          *                                                                           *
 647          * Description:                                                              *
 648          ****************************************************************************/
 649          void cmd_execution(void)
 650          {   unsigned char len ,i;//, adr ;
 651   1              //unsigned int e;
 652   1          //unsigned char idata size , tt[2];
 653   1      
 654   1              //WatchDog();
 655   1              len = SerBuffer[2] ; 
 656   1              SerBuffer[2] = 0 ;
 657   1         link=1;
 658   1          switch ( SerBuffer[1] )
 659   1              { 
 660   2              case 0x80:                                //Write time
 661   2                      SetTime(&SerBuffer[3]);
 662   2                      time_set=1; 
 663   2                                      SerBuffer[1] = 0;
 664   2                                      SerBuffer[2] = 0;
 665   2                                      break;  
 666   2                case 0x81:                              //green LED
 667   2                      //if ( SerBuffer[3] == 1) {LED_GREEN  = 1;}
 668   2                              //      else if( SerBuffer[3] == 0) { LED_GREEN  = 0;};    
 669   2                      //lage_car=((int)SerBuffer[3])*256+SerBuffer[4];
 670   2                                      ///if(lage_car>999)lage_car=999;
 671   2                      //small_car=((int)SerBuffer[5])*256+SerBuffer[6];
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 12  

 672   2                       //if(small_car>999)small_car=999;
 673   2                      for(i=0;i<10;i++)
 674   2                      {
 675   3                         ledtem[i]= SerBuffer[3+i];
 676   3                      }
 677   2                                      SerBuffer[1] = 0;
 678   2                                      SerBuffer[2] = 0;
 679   2                                      break;
 680   2      
 681   2                case 0x82:                              //red RED
 682   2                     // if ( SerBuffer[3] == 1) {LED_RED  = 1;}
 683   2                              //      else if( SerBuffer[3] == 0) { LED_RED  = 0;};    
 684   2      
 685   2                                      SerBuffer[1] = 0;
 686   2                                      SerBuffer[2] = 0;
 687   2                                      break;
 688   2      
 689   2      
 690   2                case 0x83:                              //Transfer Record
 691   2                      //  recordint.chrX[1]=SerBuffer[4];
 692   2                      //       recordint.chrX[0]=SerBuffer[5];
 693   2      
 694   2                      //      Status = TransferRecord(SerBuffer[3],recordint.intX);
 695   2                             if(Keyinput_ok)
 696   2                                 {
 697   3                                   Keyinput_ok=0;
 698   3                                       for(i=0;i<5;i++)
 699   3                        SerBuffer[3+i]= input_pc[i];
 700   3                                        if( in_outFlg )
 701   3                                        {
 702   4                                           SerBuffer[8]=0x88;//进入标志
 703   4                                        }
 704   3                                        else
 705   3                                        {
 706   4                                          SerBuffer[8]=0x99;
 707   4                                        }
 708   3                                        memcpy(&SerBuffer[9],psnr,4);//卡号
 709   3                                            
 710   3      
 711   3                                        mainstate=0;      //数据取走
 712   3                                 }
 713   2                                 else
 714   2                                 { 
 715   3                                    for(i=0;i<10;i++)
 716   3                        SerBuffer[3+i]=0;
 717   3                                        if(ban)
 718   3                                        { 
 719   4                                            ban=0;
 720   4                                           if(keyin==1)
 721   4                                               {
 722   5                                            SerBuffer[8]=0xaa;
 723   5                                               }
 724   4                                               if(keyin==2)
 725   4                                               {
 726   5                                            SerBuffer[8]=0xcc;
 727   5                                               }
 728   4                          memcpy(&SerBuffer[9],psnr,4);//卡号
 729   4                                        }
 730   3                                       if(sta)
 731   3                                       {  
 732   4                                           SerBuffer[8]=0xbb;
 733   4                                                sta=0;
C51 COMPILER V7.05   MAIN                                                                  12/20/2004 15:31:04 PAGE 13  

 734   4                                       }

⌨️ 快捷键说明

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