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

📄 gps20080503icc.lst

📁 ATmega128的GPS例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
     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 + -