📄 navigation.lst
字号:
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 + -