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

📄 navigation.lst

📁 此程序是GPS的定位程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 268          /*****************************************************************/
 269          
 270          void    GPS_Navigation(void)
 271          {
 272   1                      CleanScreen();      // 清屏
 273   1                      delay_nus(1000);
 274   1              Show_Map();
 275   1                  while(1)
 276   1                  {
 277   2                              key= keyscan();
 278   2                              delay_nms(2000);
 279   2                              switch(key)
 280   2                              {
 281   3                                      case 0x07:      while(1)
 282   3                                                  {
 283   4                                                                CleanScreen();      // 清屏
 284   4                                            delay_nus(1000);
 285   4                                                                show_menu_DaoHang();
 286   4                                                                if(key==0x08)
 287   4                                                                break;
 288   4                                                              }
 289   3                                      case  0x06: show_menu_frist(); 
 290   3                                                  break;         
 291   3                                                  
 292   3                                      default:    break;
 293   3                              
 294   3                              }
 295   2                              
 296   2                 
 297   2                      }
 298   1      }
 299          
 300          
 301          /*****************************************************************/
C51 COMPILER V8.02   NAVIGATION                                                            05/06/2008 15:45:50 PAGE 6   

 302          /*函数名称: Navigation_End_ConstrolWord.c                       */
 303          /*函数功能: 终点地址的确定                                      */      
 304          /*有无返回: 无                                                  */
 305          /*修改记录: 无修改记录                                          */
 306          /*编写作者: t483-4-19chenyong                                   */
 307          /*编写日期: 2008-3-12                                           */
 308          /*****************************************************************/
 309          
 310          void Navigation_End_ConstrolWord(void)
 311          {
 312   1              unsigned char t;
 313   1              unsigned int sum=0;
 314   1              unsigned char i=0;
 315   1          /*xy坐标*/
 316   1          unsigned char temp_key[KeyInputN]={0};
 317   1      
 318   1              CleanScreen();
 319   1              delay_nms(10);
 320   1      
 321   1      
 322   1              while(1)
 323   1              {
 324   2                      key=keyscan();
 325   2                      delay_nms(10000);
 326   2      
 327   2                      switch(key)
 328   2                      {                       
 329   3                              case 0x00:
 330   3                                              if(i<=KeyInputN-1&&i!=0)
 331   3                                              {
 332   4                                                      Display_Char(6+i,3,0);
 333   4                                                      temp_key[i]=0;
 334   4                                                      delay_nms(1500); 
 335   4                                                      i++;
 336   4                                               }
 337   3                                              break;
 338   3                              case 0x01:
 339   3                                              if(i<=KeyInputN-1)
 340   3                                              {
 341   4                                                      Display_Char(6+i,3,1);
 342   4                                                      temp_key[i]=1;
 343   4                                                      delay_nms(1500); 
 344   4                                                      i++;
 345   4                                               }
 346   3                                              break;
 347   3                              case 0x02:
 348   3                                              if(i<=KeyInputN-1)
 349   3                                              {
 350   4                                                      Display_Char(6+i,3,2);
 351   4                                                      temp_key[i]=2;
 352   4                                                      delay_nms(1500); 
 353   4                                                      i++;
 354   4                                               }
 355   3                                              break;
 356   3                              case 0x03:
 357   3                                              if(i<=KeyInputN-1)
 358   3                                              {
 359   4                                                      Display_Char(6+i,3,3);
 360   4                                                      temp_key[i]=3;
 361   4                                                      delay_nms(1500); 
 362   4                                                      i++;
 363   4                                               }
C51 COMPILER V8.02   NAVIGATION                                                            05/06/2008 15:45:50 PAGE 7   

 364   3                                              break;
 365   3                              case 0x04:
 366   3                                              if(i<=KeyInputN-1)
 367   3                                              {
 368   4                                                      Display_Char(6+i,3,4);
 369   4                                                      temp_key[i]=4;
 370   4                                                      delay_nms(1500); 
 371   4                                                      i++;
 372   4                                               }
 373   3                                              break;
 374   3                              case 0x05:
 375   3                                              if(i<=KeyInputN-1)
 376   3                                              {
 377   4                                                      Display_Char(6+i,3,5);
 378   4                                                      temp_key[i]=5;
 379   4                                                      delay_nms(1500); 
 380   4                                                      i++;
 381   4                                               }
 382   3                                              break;
 383   3                              case 0x06:
 384   3                                              if(i<=KeyInputN-1)
 385   3                                              {
 386   4                                                      Display_Char(6+i,3,6);
 387   4                                                      temp_key[i]=6;
 388   4                                                      delay_nms(1500); 
 389   4                                                      i++;
 390   4                                               }
 391   3                                              break;
 392   3                              case 0x07:
 393   3                                              if(i<=KeyInputN-1)
 394   3                                              {
 395   4                                                      Display_Char(6+i,3,7);
 396   4                                                      temp_key[i]=7;
 397   4                                                      delay_nms(1500);
 398   4                                                      i++;
 399   4                                               }
 400   3                                              break;
 401   3                              case 0x08:
 402   3                                              if(i<=KeyInputN-1)
 403   3                                              {
 404   4                                                      Display_Char(6+i,3,8);
 405   4                                                      temp_key[i]=8;
 406   4                                                      delay_nms(1500); 
 407   4                                                      i++;
 408   4                                               }
 409   3                                              break;
 410   3                              case 0x09:
 411   3                                              if(i<=KeyInputN-1)
 412   3                                              {
 413   4                                                      Display_Char(6+i,3,9);
 414   4                                                      temp_key[i]=9;
 415   4                                                      delay_nms(1500); 
 416   4                                                      i++;
 417   4                                               }
 418   3                                              break;  
 419   3                                                                                                             /*如果输错,就重新置0,清一位*/
 420   3                              case 0x0a:                                                           
 421   3                                              if(i>=1)
 422   3                                              {
 423   4                                                      Display_Char(5+i,3,64);
 424   4                                                      delay_nms(1500);
 425   4                                              i--;
C51 COMPILER V8.02   NAVIGATION                                                            05/06/2008 15:45:50 PAGE 8   

 426   4                                              }
 427   3                                              break;                             
 428   3                              case 0x0b:                                                                /*如果输错,重新输数,清所有位*/
 429   3                                               
 430   3                                              for(i=KeyInputN;i>0;i--)
 431   3                                                      temp_key[i-1]=0;
 432   3                                              break;
 433   3                              case 0x0c:
 434   3                                              for(t=0;t<i;t++)
 435   3                                                      sum=sum+(temp_key[t])*ten_n(i-1-t);
 436   3                                              Position=sum;
 437   3                                              LCD_Print_Int(6,3,Position);
 438   3                                              delay_nms(1000);
 439   3                                              sum=0;
 440   3                                              break;
 441   3                              case 0x0d:
 442   3                                              Clear_Area(6,3,5);
 443   3                                              for(i=KeyInputN;i>0;i--)
 444   3                                                      temp_key[i-1]=0;
 445   3                                              t=0;
 446   3                                              sum=0;
 447   3                                              Position=0;
 448   3                                              break;
 449   3      /*                      case 0x0f:show_infor();
 450   3                                      delay_nms(10000);
 451   3                                              break;  */                                                                                                                              
 452   3                              default:break;               
 453   3                }
 454   2              }
 455   1      }
 456          /*****************************************************************/
 457          /*函数名称: show_menu_DaoHang.c                                 */
 458          /*函数功能: GPS导航                                             */      
 459          /*有无返回: 无                                                  */
 460          /*修改记录: 无修改记录                                          */
 461          /*入口参数: 
 462                       start_x------------------------------------起点x坐标
 463                                   start_y------------------------------------起点y坐标
 464                                   end_x  ------------------------------------终点x坐标
 465                                   end_y  ------------------------------------终点y坐标
 466                                                                                       */
 467          /*编写日期: 2008-5-01                                           */
 468          /*****************************************************************/
 469          
 470          //void show_menu_DaoHang(unsigned char start_x,unsigned char start_y,unsigned char end_x,unsigned char end
             -_y)
 471          void show_menu_DaoHang()
 472           {
 473   1           register int i,j;
 474   1       
 475   1      
 476   1        
 477   1          path_t *pHead = AStar((uint_t)1,(uint_t)1,(uint_t)6,(uint_t)5,maze);
 478   1      //  path_t *pHead = AStar((uint_t)start_x,(uint_t)start_y,(uint_t)end_x,(uint_t)end_y,maze);
 479   1       /*    path_t *p = pHead;
 480   1           path_t *bak;
 481   1        if(p)
 482   1              {
 483   1                      Display_Char(0,0,9);         // 有路径
 484   1          }
 485   1          else
 486   1              Display_Char(0,0,1);         // 无路径
C51 COMPILER V8.02   NAVIGATION                                                            05/06/2008 15:45:50 PAGE 9   

 487   1      
 488   1          pHead = p = bak = (path_t *)0;
 489   1        */     
 490   1          
 491   1          /* 打印地图 */
 492   1           for(i = 0; i < MAZE_HEIGHT; ++i) 
 493   1               {
 494   2              for(j = 0; j < MAZE_WIDTH; ++j)
 495   2      //           printf("%c",symbolic[maze[i][j]]);
 496   2      //           printf("\n");
 497   2              Display_Point(j,i,symbol[maze[i][j]]);
 498   2                      /*
 499   2                                j-------代表x方向
 500   2                                i-------代表y方向
 501   2                                symbolic-路径显示         
 502   2                      */
 503   2      
 504   2           }
 505   1       
 506   1      }
 507           
 508          void Show_Map()
 509          {
 510   1      
 511   1               register unsigned char point_x=0,point_y=0;
 512   1           for(point_y = 0; point_y < MAZE_HEIGHT; ++point_y) 
 513   1               {
 514   2              for(point_x = 0; point_x < MAZE_WIDTH; ++point_x)
 515   2      //           printf("%c",symbolic[maze[i][j]]);
 516   2      //           printf("\n");
 517   2      //         Display_Point(point_x,point_y,symbol[maze[point_y][point_x]]);
 518   2                         Display_Point(point_x,point_y,symbol[maze[point_y][point_x]]);
 519   2                      
 520   2                      /*        j-------代表x方向
 521   2                                i-------代表y方向
 522   2                                symbolic-路径显示         
 523   2                      */
 524   2      
 525   2           }
 526   1      
 527   1      }
 528            
 529              


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3465    ----
   CONSTANT SIZE    =    199    ----
   XDATA SIZE       =    302      78
   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 + -