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

📄 gps.lst

📁 C8051F120与串口、并口、D12、USB、LCD应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
 197   4                                      GPSParaList[4]++;
 198   4                                      putufig(13,16*6,GPSParaList[4],1,0,' ');
 199   4                                      break;
 200   4                              case 7:         //年
 201   4                                      if(GPSParaList[5]==99)
 202   4                                      GPSParaList[5]=0;
 203   4                                      else
 204   4                                      GPSParaList[5]++;
 205   4                                      putufig(12,16*7,GPSParaList[5],2,0,'0');
 206   4                                      break;
 207   4                              case 8:         //月
 208   4                                      if(GPSParaList[6]==12)
 209   4                                      GPSParaList[6]=1;
 210   4                                      else
 211   4                                      GPSParaList[6]++;
 212   4                                      putufig(12,16*8,GPSParaList[6],2,0,'0');
 213   4                                      break;
 214   4                              case 9:         //日
 215   4                                      if(GPSParaList[7]==31)
 216   4                                      GPSParaList[7]=1;
 217   4                                      else
 218   4                                      GPSParaList[7]++;
 219   4                                      putufig(12,16*9,GPSParaList[7],2,0,'0');
 220   4                                      break;
 221   4                              default:
 222   4                                      break;
 223   4                              }
 224   3                      }
 225   2      
 226   2                      if(Key[7].pressed==1)       //检测到确定键,向DACData中填充数据
 227   2                      {
 228   3                              ClearKey();
 229   3                              Clear(0,240);
 230   3                              uart_ini(GPSParaList[0]);
 231   3                              return;                                 
 232   3                      }       
 233   2              }//while(1)
 234   1      }
 235          
 236          void GPS()
 237          {
 238   1              char Buf1[256]={"\0"};
 239   1              char Buf2[256];
 240   1              int N=0;
 241   1              unsigned int hour,minute,second;
C51 COMPILER V7.01  GPS                                                                    06/30/2007 11:42:52 PAGE 5   

 242   1              char time[10];
 243   1              char date[12];
 244   1              char *SendBuf=Buf1;
 245   1              char *SaveBuf;
 246   1      
 247   1              GPSSetUp();
 248   1              hour=GPSParaList[1];
 249   1              minute=GPSParaList[2];
 250   1              second=GPSParaList[3];
 251   1      
 252   1              uart_port_ini();
 253   1              dprintf(0,16*13,line);
 254   1              dprintf(35,224,"退出");
 255   1              sprintf(date,"%d%d,%d%d,20%d%d\0",(unsigned int)GPSParaList[7]/10,(unsigned int)GPSParaList[7]%10,\
 256   1              (unsigned int)GPSParaList[6]/10,(unsigned int)GPSParaList[6]%10,(unsigned int)GPSParaList[5]/10,(unsigned
             - int)GPSParaList[5]%10);
 257   1              Myflag=1;
 258   1              X=0;
 259   1              Y=0;
 260   1              F=0;
 261   1      
 262   1              while(1)
 263   1              {
 264   2                      if(CheckKeyF==1)                        //键盘检测
 265   2                      {
 266   3                              CheckKey();
 267   3                              CheckKeyF=0;
 268   3                      }
 269   2      
 270   2                      if(Myflag==1)
 271   2                      {
 272   3                              int i,length,length2;
 273   3                              unsigned char checksum;
 274   3                              char AorV;
 275   3                              Myflag=0;
 276   3                              Mycounter=counter+40;
 277   3      
 278   3                              if(N%2==0)
 279   3                              {
 280   4                                      SendBuf=Buf1;
 281   4                                      SaveBuf=Buf2;
 282   4                              }
 283   3                              else
 284   3                              {
 285   4                                      SendBuf=Buf2;
 286   4                                      SaveBuf=Buf1;
 287   4                              }
 288   3                              
 289   3                              UartSend(SendBuf);
 290   3                              if(F==1)
 291   3                              {
 292   4                                      Clear(0,16*13);
 293   4                                      tprintf(0,0,SendBuf);
 294   4                              }
 295   3                              else
 296   3                              tprintf(X,Y,SendBuf);
 297   3      
 298   3                              //设置时间      
 299   3                              second++;
 300   3                              if(second==60)
 301   3                              {
 302   4                                      second=0;
C51 COMPILER V7.01  GPS                                                                    06/30/2007 11:42:52 PAGE 6   

 303   4                                      minute++;
 304   4                                      if(minute==60)
 305   4                                      {
 306   5                                              minute=0;
 307   5                                              hour++;
 308   5                                              if(hour==24)
 309   5                                              hour=0;
 310   5                                      }
 311   4                              }
 312   3                              sprintf(time,"%d%d%d%d%d%d.%d\0",hour/10,hour%10,minute/10,minute%10,second/10,second%10,(unsigned int)
             -GPSParaList[4]);
 313   3                              //change bank page to BANK2
 314   3                              PSBANK=0x21;
 315   3                              //GPGGA:
 316   3                              sprintf(SaveBuf,"$GPGGA,%s,395%c.%c%c%c%c,N,1161%c.%c%c%c%c,E,%c,%c,4.30,\0",\
 317   3                                      time,CBYTE[latitude+N*5],CBYTE[latitude+N*5+1],CBYTE[latitude+N*5+2],CBYTE[latitude+N*5+3],CBYTE[latit
             -ude+N*5+4],\
 318   3                                      CBYTE[longitude+N*5],CBYTE[longitude+N*5+1],CBYTE[longitude+N*5+2],CBYTE[longitude+N*5+3],CBYTE[longit
             -ude+N*5+4],\
 319   3                                      CBYTE[flag+N],CBYTE[satllite+N]);
 320   3                              length=strlen(SaveBuf);
 321   3                              if(CBYTE[height+N*2]!='0' && CBYTE[height+N*2+1]!='0')
 322   3                              sprintf(SaveBuf+length,"000%c%c,M,,M,,*\0",CBYTE[height+N*2],CBYTE[height+N*2+1]);                      
 323   3                              else
 324   3                              sprintf(SaveBuf+length,",M,,M,,*\0");
 325   3                              length=strlen(SaveBuf);
 326   3                              checksum=SaveBuf[1];
 327   3                              for(i=1;i<length-2;i++)
 328   3                              {
 329   4                                      checksum^=SaveBuf[i+1];
 330   4                              }
 331   3                              sprintf(SaveBuf+length,"%X%X\r\n\0",(unsigned int)checksum/16,(unsigned int)checksum%16);
 332   3      
 333   3                              //GPRMC:
 334   3                              length=strlen(SaveBuf);
 335   3                              if(CBYTE[flag+N]=='0')
 336   3                              AorV='V';       
 337   3                              else
 338   3                              AorV='A';
 339   3                              sprintf(SaveBuf+length,"$GPRMC,%s,%c,395%c.%c%c%c%c,N,1161%c.%c%c%c%c,E,00%c%c.%c,%c%c%c,130905,,E*\0",
             -\
 340   3                                      time,AorV,CBYTE[latitude+N*5],CBYTE[latitude+N*5+1],CBYTE[latitude+N*5+2],CBYTE[latitude+N*5+3],CBYTE[
             -latitude+N*5+4],\
 341   3                                      CBYTE[longitude+N*5],CBYTE[longitude+N*5+1],CBYTE[longitude+N*5+2],CBYTE[longitude+N*5+3],CBYTE[longit
             -ude+N*5+4],\
 342   3                                      CBYTE[speed+N*3],CBYTE[speed+N*3+1],CBYTE[speed+N*3+2],CBYTE[angle+N*3],CBYTE[angle+N*3+1],CBYTE[angle
             -+N*3+2]);
 343   3                              length2=strlen(SaveBuf);
 344   3                              checksum=SaveBuf[length+1];
 345   3                              for(i=1;i<length2-length-2;i++)
 346   3                              {
 347   4                                      checksum^=SaveBuf[length+i+1];
 348   4                              }
 349   3                              sprintf(SaveBuf+length2,"%X%X\r\n\0",(unsigned int)checksum/16,(unsigned int)checksum%16);
 350   3      
 351   3                              //GPZDA:
 352   3                              length=strlen(SaveBuf);
 353   3                              sprintf(SaveBuf+length,"$GPZDA,%s,%s,,*\0",time,date);
 354   3                              length2=strlen(SaveBuf);
 355   3                              checksum=SaveBuf[length+1];
 356   3                              for(i=1;i<length2-length-2;i++)
 357   3                              {
C51 COMPILER V7.01  GPS                                                                    06/30/2007 11:42:52 PAGE 7   

 358   4                                      checksum^=SaveBuf[length+i+1];
 359   4                              }
 360   3                              sprintf(SaveBuf+length2,"%X%X\r\n\0",(unsigned int)checksum/16,(unsigned int)checksum%16);
 361   3      
 362   3                              //change back
 363   3                              PSBANK=0x11;
 364   3      
 365   3                              N++;
 366   3                              if(N==1294)
 367   3                              N=0;
 368   3                      }
 369   2      
 370   2                      if(Key[7].pressed==1)                   //退出串口模块
 371   2                      {
 372   3                              ClearKey();                                             //清按键
 373   3                              Clear(0,240);                                   //清屏幕
 374   3                              return;
 375   3                      }
 376   2              
 377   2              }
 378   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   4404    ----
   CONSTANT SIZE    =    639    ----
   XDATA SIZE       =      8     560
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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