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

📄 remoter.lst

📁 Gps数据的获得及处理
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                      sReceiveState++;
                              }else 
                              {
                                      pReceiveBuffer[sReceiveState-6]=c;
                                      sReceiveState++;
                                      if(sReceiveState == 43)
                                      {
                                              sReceiveState = 0;
                                              gSerialReceiveFlag = 1;
                                      }
                              }
C51 COMPILER V7.01  REMOTER                                                                05/18/2006 11:54:09 PAGE 6   

                      }
                      
                      if(sReceiveState>2)
                      {
                              if(gReceiveTimeout==0)
                                      sReceiveState = 0;
                              gReceiveTimeout=200;    
                      }
                      else                    
                              gReceiveTimeout=200;
                      
              }
              void SendDataTo776(uChar type ,uChar len,uChar *pTemp)
              {
                      uChar *pSendTo776Buffer = pReceiveBuffer;
                      uChar i;
                      uChar tTempSum=0;
              
                      OpenInt0AndCloseSerial();       
                      pSendTo776Buffer[0]=0x24;
                      pSendTo776Buffer[1]=type;
                      pSendTo776Buffer[2]=len + 4;//4 for Token+type+len+CheckSum;
                      for(i=0 ;i<len; i++)
                              pSendTo776Buffer[3+i] = pTemp[i];
                      for(i=0 ;i<(len+3); i++)
                              tTempSum = pSendTo776Buffer[i];
                      pSendTo776Buffer[len+3] = tTempSum;
                      gSendArray = len+4;
                      gSendLen = gSendArray;
                      gSendBit=8;
                      gSendTimeout = 200;
                      DAT = 0;
              }
              void main(void)
              {
                      delay(20);
                      Init();
                      Delay_100ms(2);
                      while(1)
                      {       
                              if(gGetInfoDataSuccessFlag == 0)
                              {
                                      if((gReceiveTotalStation == gTotalStation)&&(gReceiveTotalStation!=0))
                                      {
                                              gGetInfoDataSuccessFlag = 1;
                                              SendDataTo776(0xff,2,"OK");
                                      }
                              }
                              if(gIrKeyValue)
                              {       
                                      PrintNum(gIrKeyValue);
                                      if(gIrKeyValue == _Key_2)
                                      {
                                              uChar pTemp[2];
                                              pTemp[0]=0x05;
                                              pTemp[1]=~0x05;
                                              SendCharsToSerial("SendData\n",9);
                                              SendDataTo776(0x01,2,pTemp);
                                      //      ViewGpsDat();
                                      }
                                      if(gIrKeyValue == _Key_3)
                                      {
C51 COMPILER V7.01  REMOTER                                                                05/18/2006 11:54:09 PAGE 7   

                                              PrintNum(gTotalStation);
                                              PrintNum(gReceiveTotalStation);
                                      }
                                      if(gIrKeyValue == _Key_4)
                                      {
                                              gCurLongitude = 0x12345678;
                                              gCurLatitude = 0x123456789;
                                              if(CompareData()!=0)
                                                      SendCharsToSerial("find\n",5);
                                              else
                                                      SendCharsToSerial("no find\n",8);
                                              PrintNum(gTotalStation);
                                      }
                      
                                      gIrKeyValue=0;
                              }
                              if(gSerialReceiveFlag == 1)
                              {
                                      gSerialReceiveFlag = 0;
                                      SendCharsToSerial(pReceiveBuffer,43);
                              
                      //              if(GetCurLongitudeLatitude(pReceiveBuffer))
                                      {
                                              uChar  pTemp[2];
                                              pTemp[0] = CompareData();
                                              pTemp[1]=~pTemp[0];
              //                              if(pTemp!=0)
                                                      SendDataTo776(0x0,2,pTemp);
                                      }
                              }
                              if(g776SendFinishFlag == 1)
                              {
                                      g776SendFinishFlag = 0;
                                      
                                      EnterCrucial();
                                      DAT=1;
                                      PrintNum(pReceiveBuffer[2]);
                                      if(Handle776InfoData(pReceiveBuffer)==TRUE)
                                              SendCharsToSerial("GPS Succed!\n",12);
                                      else
                                              SendCharsToSerial("GPS Fail!\n",10);
                                      ExitCrucial();
                                      CloseInt0AndOpenSerial();
                              }
                              if((gSendTimeout ==0)&&((gSendArray!=0)||(gSendBit!=0)))//fail send and restart .
                              {
                                              OpenInt0AndCloseSerial();
                                              gSendTimeout  = 200;            
                                              gSendArray =gSendLen;
                                              gSendBit=8;
                                              DAT = 0;
                              }
                              if(gNecState != Nec_Null)
                              {
                                      if(gSystemTick>(gIrTick+67))
                                      {
                                              SendCharsToSerial("Nec_Null\n",9);
                                              gNecState = Nec_Null;
                                      }
                              }
                      
                              if((gSendArray==0)&&(gSendBit ==0)&&(g776SendFlag==0))
C51 COMPILER V7.01  REMOTER                                                                05/18/2006 11:54:09 PAGE 8   

                              {
                                      CloseInt0AndOpenSerial();
                                      DAT=1;
                                      CLK=1;
                              
                                      if(DAT == 0)
                                      {       
                                              DAT = 0;
                                              g776SendFlag = 1;
                                              g776SendBitPos=0;
                                              g776SendBytePos = 0;
                                              g776SendTimeout=200;
                                              OpenInt0AndCloseSerial();
                                      }
                              }
              
                              if((g776SendTimeout==0)&&(g776SendFlag == 1))//fail and GiveUp
                              {
                                      g776SendFlag = 0;
                                      g776SendBytePos = 0;
                                  g776SendBitPos = 0;
                                      SendCharsToSerial("AA!\n",4);
                                      DAT = 1;
                                      CloseInt0AndOpenSerial();
                              }
                              
                      }//while(1)
              }
              
              #else
 458          
 459          //#include<reg52.h>
 460          #include "reg51.h"
 461          
 462          sbit STB = P2^1;
 463          sbit CLK = P2^2;
 464          sbit DAT = P2^3;
 465          
 466          
 467          #define uchar unsigned char
 468          #define uint unsigned int
 469          
 470          void InputBYTE(uchar tTemp);
 471          
 472          void Long_Delay(void)
 473          {
 474   1              int i=4000;
 475   1      
 476   1              while(i--);
 477   1      }
 478          void delay(void)
 479          {
 480   1              uchar i;
 481   1              for(i=0;i<1;i++);
 482   1      }
 483          void send(uchar tTemp)
 484          {
 485   1              STB=1;
 486   1              DAT=1;
 487   1              CLK=1;
 488   1              
 489   1              STB=0;
C51 COMPILER V7.01  REMOTER                                                                05/18/2006 11:54:09 PAGE 9   

 490   1              InputBYTE(tTemp);
 491   1              
 492   1              STB=1;
 493   1              DAT=1;
 494   1              CLK=1;
 495   1      
 496   1      }
 497          void InputBYTE(uchar tTemp)
 498          {       
 499   1              uchar ar,i;
 500   1              #if 0
                      
                      for(i=0;i<8;i++)
                      {
                              delay();
                              CLK=0;
                              delay();
                              ar=0x01;
                              ar<<=i;
                              if(tTemp&ar) 
                                      DAT=1;//为1则置高电平
                              else 
                                      DAT=0;//为0则置低电平
                              CLK=1;//置脉冲
                              delay();
                      }
                      #else
 517   1              
 518   1              ar=0x01;
 519   1              for(i=0;i<8;i++)
 520   1              {
 521   2                      CLK=0;
 522   2                      if(ar&tTemp)
 523   2                              DAT=1;
 524   2                      else
 525   2                              DAT=0;
 526   2                      ar<<=0x01;
 527   2                      CLK=1;  
 528   2              }
 529   1              
 530   1              #endif
 531   1      }
 532          
 533          void InputBYTE2(uchar tTempValue)
 534          {
 535   1              uchar i;
 536   1              uchar tTemp=0x01;
 537   1              for(i=0;i<8;i++)
 538   1              {
 539   2                      CLK=0;
 540   2                      if(tTemp&tTempValue)
 541   2                              DAT=1;
 542   2                      else
 543   2                              DAT=0;
 544   2                      tTemp<<=0x01;
 545   2                      CLK=1;
 546   2              }
 547   1      }
 548          void displaymodeset()
 549          {
 550   1              delay();
 551   1              send(0x02);
C51 COMPILER V7.01  REMOTER                                                                05/18/2006 11:54:09 PAGE 10  

 552   1              delay();
 553   1      }
 554          void dataset()
 555          {
 556   1              delay();
 557   1              send(0x40);
 558   1              delay();
 559   1      }
 560          
 561          void displaycontrolset()
 562          {
 563   1              delay();
 564   1              send(0x8c);
 565   1              delay();
 566   1      }
 567          
 568          void senddata(uchar ucaddr,uchar senda)
 569          {
 570   1              delay();
 571   1              STB=1;
 572   1              delay();
 573   1              STB=0;
 574   1              delay();
 575   1              InputBYTE(ucaddr);
 576   1              
 577   1                      
 578   1      //      delay();
 579   1              InputBYTE(senda);
 580   1              STB=1;
 581   1              delay();
 582   1      }
 583          
 584          
 585          void UpdateVFD(uchar add,uchar dat);
 586          void main(void)
 587          {
 588   1              int i;
 589   1      
 590   1              dataset();//数据设置命令
 591   1              displaymodeset();//显示模式设置命

⌨️ 快捷键说明

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