📄 gps20080503icc.lst
字号:
3AF 9020 0169 LDS R2,y1_post
3B1 9030 016A LDS R3,y1_post+1
3B3 8228 STD Y+0,R2
3B4 8239 STD Y+1,R3
3B5 824A STD Y+2,R4
3B6 825B STD Y+3,R5
3B7 9120 016F LDS R18,x1_post+2
3B9 9130 0170 LDS R19,x1_post+3
3BB 9100 016D LDS R16,x1_post
3BD 9110 016E LDS R17,x1_post+1
3BF D4ED RCALL _Get_Area
3C0 9040 014F LDS R4,area+2
3C2 9050 0150 LDS R5,area+3
3C4 9020 014D LDS R2,area
3C6 9030 014E LDS R3,area+1
3C8 0E20 ADD R2,R16
3C9 1E31 ADC R3,R17
3CA 1E42 ADC R4,R18
3CB 1E53 ADC R5,R19
3CC 9230 014E STS area+1,R3
3CE 9220 014D STS area,R2
3D0 9250 0150 STS area+3,R5
3D2 9240 014F STS area+2,R4
(0081) //计算完成本次坐标次数前移
(0082) x1_post = x2_post;
3D4 9040 0167 LDS R4,x2_post+2
3D6 9050 0168 LDS R5,x2_post+3
3D8 9020 0165 LDS R2,x2_post
3DA 9030 0166 LDS R3,x2_post+1
3DC 9230 016E STS x1_post+1,R3
3DE 9220 016D STS x1_post,R2
3E0 9250 0170 STS x1_post+3,R5
3E2 9240 016F STS x1_post+2,R4
(0083) y1_post = y2_post;
3E4 9040 0163 LDS R4,y2_post+2
3E6 9050 0164 LDS R5,y2_post+3
3E8 9020 0161 LDS R2,y2_post
3EA 9030 0162 LDS R3,y2_post+1
3EC 9230 016A STS y1_post+1,R3
3EE 9220 0169 STS y1_post,R2
3F0 9250 016C STS y1_post+3,R5
3F2 9240 016B STS y1_post+2,R4
(0084)
(0085) x_dis = x1_post;//显示偏移坐标
3F4 9040 016F LDS R4,x1_post+2
3F6 9050 0170 LDS R5,x1_post+3
3F8 9020 016D LDS R2,x1_post
3FA 9030 016E LDS R3,x1_post+1
3FC 9230 0156 STS x_dis+1,R3
3FE 9220 0155 STS x_dis,R2
400 9250 0158 STS x_dis+3,R5
402 9240 0157 STS x_dis+2,R4
(0086) y_dis = y1_post;
404 9040 016B LDS R4,y1_post+2
406 9050 016C LDS R5,y1_post+3
408 9020 0169 LDS R2,y1_post
40A 9030 016A LDS R3,y1_post+1
40C 9230 0152 STS y_dis+1,R3
40E 9220 0151 STS y_dis,R2
410 9250 0154 STS y_dis+3,R5
412 9240 0153 STS y_dis+2,R4
(0087) if(x_dis < 0)
414 E040 LDI R20,0
415 E050 LDI R21,0
416 E060 LDI R22,0
417 E070 LDI R23,0
418 9040 0157 LDS R4,x_dis+2
41A 9050 0158 LDS R5,x_dis+3
41C 9020 0155 LDS R2,x_dis
41E 9030 0156 LDS R3,x_dis+1
420 1624 CP R2,R20
421 0635 CPC R3,R21
422 0646 CPC R4,R22
423 0657 CPC R5,R23
424 F4A4 BGE 0x0439
(0088) {
(0089) x_dis = ~(x_dis-1);
425 E041 LDI R20,1
426 E050 LDI R21,0
427 E060 LDI R22,0
428 E070 LDI R23,0
429 1A24 SUB R2,R20
42A 0A35 SBC R3,R21
42B 0A46 SBC R4,R22
42C 0A57 SBC R5,R23
42D 9420 COM R2
42E 9430 COM R3
42F 9440 COM R4
430 9450 COM R5
431 9230 0156 STS x_dis+1,R3
433 9220 0155 STS x_dis,R2
435 9250 0158 STS x_dis+3,R5
437 9240 0157 STS x_dis+2,R4
(0090) }
(0091) if(y_dis < 0)
439 E040 LDI R20,0
43A E050 LDI R21,0
43B E060 LDI R22,0
43C E070 LDI R23,0
43D 9040 0153 LDS R4,y_dis+2
43F 9050 0154 LDS R5,y_dis+3
441 9020 0151 LDS R2,y_dis
443 9030 0152 LDS R3,y_dis+1
445 1624 CP R2,R20
446 0635 CPC R3,R21
447 0646 CPC R4,R22
448 0657 CPC R5,R23
449 F4A4 BGE 0x045E
(0092) {
(0093) y_dis = ~(y_dis-1);
44A E041 LDI R20,1
44B E050 LDI R21,0
44C E060 LDI R22,0
44D E070 LDI R23,0
44E 1A24 SUB R2,R20
44F 0A35 SBC R3,R21
450 0A46 SBC R4,R22
451 0A57 SBC R5,R23
452 9420 COM R2
453 9430 COM R3
454 9440 COM R4
455 9450 COM R5
456 9230 0152 STS y_dis+1,R3
458 9220 0151 STS y_dis,R2
45A 9250 0154 STS y_dis+3,R5
45C 9240 0153 STS y_dis+2,R4
(0094) }
(0095) //Hzk_Dis_Clr();
(0096) Hzk_Dis_Data(1,1,x_dis/10,9);//显示相对坐标*0.01米
45E E089 LDI R24,0x9
45F 838C STD Y+4,R24
460 E04A LDI R20,0xA
461 E050 LDI R21,0
462 E060 LDI R22,0
463 E070 LDI R23,0
464 9120 0157 LDS R18,x_dis+2
466 9130 0158 LDS R19,x_dis+3
468 9100 0155 LDS R16,x_dis
46A 9110 0156 LDS R17,x_dis+1
46C 937A ST R23,-Y
46D 936A ST R22,-Y
46E 935A ST R21,-Y
46F 934A ST R20,-Y
470 940E 08F2 CALL div32s
472 8308 STD Y+0,R16
473 8319 STD Y+1,R17
474 832A STD Y+2,R18
475 833B STD Y+3,R19
476 E021 LDI R18,1
477 E001 LDI R16,1
478 DD2E RCALL _Hzk_Dis_Data
(0097) Hzk_Dis_Data(2,1,y_dis/10,9);
479 E089 LDI R24,0x9
47A 838C STD Y+4,R24
47B E04A LDI R20,0xA
47C E050 LDI R21,0
47D E060 LDI R22,0
47E E070 LDI R23,0
47F 9120 0153 LDS R18,y_dis+2
481 9130 0154 LDS R19,y_dis+3
483 9100 0151 LDS R16,y_dis
485 9110 0152 LDS R17,y_dis+1
487 937A ST R23,-Y
488 936A ST R22,-Y
489 935A ST R21,-Y
48A 934A ST R20,-Y
48B 940E 08F2 CALL div32s
48D 8308 STD Y+0,R16
48E 8319 STD Y+1,R17
48F 832A STD Y+2,R18
490 833B STD Y+3,R19
491 E021 LDI R18,1
492 E002 LDI R16,2
493 DD13 RCALL _Hzk_Dis_Data
(0098) }
(0099) if(flag_area == 2)
494 9180 0148 LDS R24,flag_area
496 3082 CPI R24,2
497 F009 BEQ 0x0499
498 C0C5 RJMP 0x055E
(0100) {
(0101) x2_post = (longitude - x0_longitude)*11;
499 9040 017F LDS R4,x0_longitude+2
49B 9050 0180 LDS R5,x0_longitude+3
49D 9020 017D LDS R2,x0_longitude
49F 9030 017E LDS R3,x0_longitude+1
4A1 9080 0188 LDS R8,longitude+2
4A3 9090 0189 LDS R9,longitude+3
4A5 9060 0186 LDS R6,longitude
4A7 9070 0187 LDS R7,longitude+1
4A9 1862 SUB R6,R2
4AA 0873 SBC R7,R3
4AB 0884 SBC R8,R4
4AC 0895 SBC R9,R5
4AD E04B LDI R20,0xB
4AE E050 LDI R21,0
4AF E060 LDI R22,0
4B0 E070 LDI R23,0
4B1 929A ST R9,-Y
4B2 928A ST R8,-Y
4B3 927A ST R7,-Y
4B4 926A ST R6,-Y
4B5 018A MOVW R16,R20
4B6 019B MOVW R18,R22
4B7 940E 0956 CALL empy32s
4B9 9310 0166 STS x2_post+1,R17
4BB 9300 0165 STS x2_post,R16
4BD 9330 0168 STS x2_post+3,R19
4BF 9320 0167 STS x2_post+2,R18
(0102) y2_post = (latitude - y0_latitude)*11;
4C1 9040 017B LDS R4,y0_latitude+2
4C3 9050 017C LDS R5,y0_latitude+3
4C5 9020 0179 LDS R2,y0_latitude
4C7 9030 017A LDS R3,y0_latitude+1
4C9 9080 018C LDS R8,latitude+2
4CB 9090 018D LDS R9,latitude+3
4CD 9060 018A LDS R6,latitude
4CF 9070 018B LDS R7,latitude+1
4D1 1862 SUB R6,R2
4D2 0873 SBC R7,R3
4D3 0884 SBC R8,R4
4D4 0895 SBC R9,R5
4D5 E04B LDI R20,0xB
4D6 E050 LDI R21,0
4D7 E060 LDI R22,0
4D8 E070 LDI R23,0
4D9 929A ST R9,-Y
4DA 928A ST R8,-Y
4DB 927A ST R7,-Y
4DC 926A ST R6,-Y
4DD 018A MOVW R16,R20
4DE 019B MOVW R18,R22
4DF 940E 0956 CALL empy32s
4E1 9310 0162 STS y2_post+1,R17
4E3 9300 0161 STS y2_post,R16
4E5 9330 0164 STS y2_post+3,R19
4E7 9320 0163 STS y2_post+2,R18
(0103) area += Get_Area(x2_post,y2_post,x0_post,y0_post);
4E9 9040 0173 LDS R4,y0_post+2
4EB 9050 0174 LDS R5,y0_post+3
4ED 9020 0171 LDS R2,y0_post
4EF 9030 0172 LDS R3,y0_post+1
4F1 8628 STD Y+8,R2
4F2 8639 STD Y+9,R3
4F3 864A STD Y+10,R4
4F4 865B STD Y+11,R5
4F5 9040 0177 LDS R4,x0_post+2
4F7 9050 0178 LDS R5,x0_post+3
4F9 9020 0175 LDS R2,x0_post
4FB 9030 0176 LDS R3,x0_post+1
4FD 822C STD Y+4,R2
4FE 823D STD Y+5,R3
4FF 824E STD Y+6,R4
500 825F STD Y+7,R5
501 0118 MOVW R2,R16
502 0129 MOVW R4,R18
503 8228 STD Y+0,R2
504 8239 STD Y+1,R3
505 824A STD Y+2,R4
506 825B STD Y+3,R5
507 9120 0167 LDS R18,x2_post+2
509 9130 0168 LDS R19,x2_post+3
50B 9100 0165 LDS R16,x2_post
50D 9110 0166 LDS R17,x2_post+1
50F D39D RCALL _Get_Area
510 9040 014F LDS R4,area+2
512 9050 0150 LDS R5,area+3
514 9020 014D LDS R2,area
516 9030 014E LDS R3,area+1
518 0E20 ADD R2,R16
519 1E31 ADC R3,R17
51A 1E42 ADC R4,R18
51B 1E53 ADC R5,R19
51C 9230 014E STS area+1,R3
51E 9220 014D STS area,R2
520 9250 0150 STS area+3,R5
522 9240 014F STS area+2,R4
(0104) if(area < 0)
524 E040 LDI R20,0
525 E050 LDI R21,0
526 E060 LDI R22,0
527 E070 LDI R23,0
528 1624 CP R2,R20
529 0635 CPC R3,R21
52A 0646 CPC R4,R22
52B 0657 CPC R5,R23
52C F4A4 BGE 0x0541
(0105) {
(0106) area = ~(area - 1);
52D E041 LDI R20,1
52E E050 LDI R21,0
52F E060 LDI R22,0
530 E070 LDI R23,0
531 1A24 SUB R2,R20
532 0A35 SBC R3,R21
533 0A46 SBC R4,R22
534 0A57 SBC R5,R23
535 9420 COM R2
536 9430 COM R3
537 9440 COM R4
538 9450 COM R5
539 9230 014E STS area+1,R3
53B 9220 014D STS area,R2
53D 9250 0150 STS area+3,R5
53F 9240 014F STS area+2,R4
(0107) }
(0108) Hzk_Dis_Clr();
541 DD17 RCALL _Hzk_Dis_Clr
(0109) Hzk_Dis_Data(2,1,area/100,9);
542 E089 LDI R24,0x9
543 838C STD Y+4,R24
544 E644 LDI R20,0x64
545 E050 LDI R21,0
546 E060 LDI R22,0
547 E070 LDI R23,0
548 9120 014F LDS R18,area+2
54A 9130 0150 LDS R19,area+3
54C 9100 014D LDS R16,area
54E 9110 014E LDS R17,area+1
550 937A ST R23,-Y
551 936A ST R22,-Y
552 935A ST R21,-Y
553 934A ST R20,-Y
554 940E 08F2 CALL div32s
556 8308 STD Y+0,R16
557 8319 STD Y+1,R17
558 832A STD Y+2,R18
559 833B STD Y+3,R19
55A E021 LDI R18,1
55B E002 LDI R16,2
55C DC4A RCALL _Hzk_Dis_Data
(0110) while(1);
55D CFFF RJMP 0x055D
(0111) //flag_area = 0;
(0112) }
(0113) if((flag_area == 0)||(flag_area == 1)||(flag_area == 2)||(flag_area == 3))
55E 9020 0148 LDS R2,flag_area
560 2022 TST R2
561 F039 BEQ 0x0569
562 2D82 MOV R24,R2
563 3081 CPI R24,1
564 F021 BEQ 0x0569
565 3082 CPI R24,2
566 F011 BEQ 0x0569
567 3083 CPI R24,3
568 F4E1 BNE 0x0585
(0114) {
(0115) Hzk_Dis_Data(1,7,key_dis,2);
569 E082 LDI R24,2
56A 838C STD Y+4,R24
56B 9020 007C LDS R2,key_dis
56D 2433 CLR R3
56E 2444 CLR R4
56F 2455 CLR R5
570 8228 STD Y+0,R2
571 8239 STD Y+1,R3
572 824A STD Y+2,R4
573 825B STD Y+3,R5
574 E027 LDI R18,7
575 E001 LDI R16,1
576 DC30 RCALL _Hzk_Dis_Data
(0116) Hzk_Dis_Data(2,7,flag_area,2);
577 E082 LDI R24,2
578 838C STD Y+4,R24
579 9020 0148 LDS R2,flag_area
57B 2433 CLR R3
57C 2444 CLR R4
57D 2455 CLR R5
57E 8228 STD Y+0,R2
57F 8239 STD Y+1,R3
580 824A STD Y+2,R4
581 825B STD Y+3,R5
582 E027 LDI R18,7
583 E002 LDI R16,2
584 DC22 RCALL _Hzk_Dis_Data
585 CCE8 RJMP 0x026E
586 962C ADIW R28,0xC
587 9508 RET
(0117) }
(0118) /*
(0119) if(usart_flag & BIT(SINK0_FINISH))
(0120) {
(0121) Get_GPRMC_data();
(0122) usart_flag &=~ BIT(SINK0_FINISH);
(0123) }
(0124) */
(0125) }
(0126) }
(0127)
(0128)
(0129)
(0130) void Get_Key(void)
(0131) {
(0132) if( (KEY_PIN & BIT(KEY_START)) == 0)
_Get_Key:
588 99C9 SBIC 0x19,1
589 C008 RJMP 0x0592
(0133) {
(0134) Delay_Ms(20);
58A E104 LDI R16,0x14
58B E010 LDI R17,0
58C DB90 RCALL _Delay_Ms
(0135) while((KEY_PIN & BIT(KEY_START)) == 0)
58D 9BC9 SBIS 0x19,1
58E CFFE RJMP 0x058D
(0136) ;
(0137) key = 1;
58F E081 LDI R24,1
590 9380 007D STS key,R24
(0138) }
(0139) if( (KEY_PIN & BIT(KEY_FINISH)) == 0)
592 99CB SBIC 0x19,3
593 C008 RJMP 0x059C
(0140) {
(0141) Delay_Ms(20);
594 E104 LDI R16,0x14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -