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

📄 gps.lst

📁 用avr单片机接收GPS的数据的c语言程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    02FE EB8C      LDI	R24,0xBC
    02FF E094      LDI	R25,4
    0300 93900490  STS	lcd_display_wrp+1,R25
    0302 9380048F  STS	lcd_display_wrp,R24
(0179)  	*lcd_display_wrp++='L';
    0304 E48C      LDI	R24,0x4C
    0305 91E0048F  LDS	R30,lcd_display_wrp
    0307 91F00490  LDS	R31,lcd_display_wrp+1
    0309 9381      ST	R24,Z+
    030A 93F00490  STS	lcd_display_wrp+1,R31
    030C 93E0048F  STS	lcd_display_wrp,R30
(0180)  	*lcd_display_wrp++='A';
    030E E481      LDI	R24,0x41
    030F 9381      ST	R24,Z+
    0310 93F00490  STS	lcd_display_wrp+1,R31
    0312 93E0048F  STS	lcd_display_wrp,R30
(0181)  	*lcd_display_wrp++='T';
    0314 E584      LDI	R24,0x54
    0315 9381      ST	R24,Z+
    0316 93F00490  STS	lcd_display_wrp+1,R31
    0318 93E0048F  STS	lcd_display_wrp,R30
(0182)  	*lcd_display_wrp++=':';
    031A E38A      LDI	R24,0x3A
    031B 9381      ST	R24,Z+
    031C 93F00490  STS	lcd_display_wrp+1,R31
    031E 93E0048F  STS	lcd_display_wrp,R30
(0183) 
(0184) 	*lcd_display_wrp++=latitude[0];
    0320 90200072  LDS	R2,latitude
    0322 9221      ST	R2,Z+
    0323 93F00490  STS	lcd_display_wrp+1,R31
    0325 93E0048F  STS	lcd_display_wrp,R30
(0185) 	*lcd_display_wrp++=latitude[1];
    0327 90200073  LDS	R2,latitude+1
    0329 9221      ST	R2,Z+
    032A 93F00490  STS	lcd_display_wrp+1,R31
    032C 93E0048F  STS	lcd_display_wrp,R30
(0186) 	*lcd_display_wrp++='D';
    032E E484      LDI	R24,0x44
    032F 9381      ST	R24,Z+
    0330 93F00490  STS	lcd_display_wrp+1,R31
    0332 93E0048F  STS	lcd_display_wrp,R30
(0187) 	*lcd_display_wrp++=latitude[2];
    0334 90200074  LDS	R2,latitude+2
    0336 9221      ST	R2,Z+
    0337 93F00490  STS	lcd_display_wrp+1,R31
    0339 93E0048F  STS	lcd_display_wrp,R30
(0188) 	*lcd_display_wrp++=latitude[3];
    033B 90200075  LDS	R2,latitude+3
    033D 9221      ST	R2,Z+
    033E 93F00490  STS	lcd_display_wrp+1,R31
    0340 93E0048F  STS	lcd_display_wrp,R30
(0189) 	*lcd_display_wrp++=latitude[4];
    0342 90200076  LDS	R2,0x76
    0344 9221      ST	R2,Z+
    0345 93F00490  STS	lcd_display_wrp+1,R31
    0347 93E0048F  STS	lcd_display_wrp,R30
(0190) 	*lcd_display_wrp++=latitude[5];
    0349 90200077  LDS	R2,0x77
    034B 9221      ST	R2,Z+
    034C 93F00490  STS	lcd_display_wrp+1,R31
    034E 93E0048F  STS	lcd_display_wrp,R30
(0191) 	*lcd_display_wrp++=latitude[6];
    0350 90200078  LDS	R2,0x78
    0352 9221      ST	R2,Z+
    0353 93F00490  STS	lcd_display_wrp+1,R31
    0355 93E0048F  STS	lcd_display_wrp,R30
(0192) 	*lcd_display_wrp++=latitude[7];
    0357 90200079  LDS	R2,0x79
    0359 9221      ST	R2,Z+
    035A 93F00490  STS	lcd_display_wrp+1,R31
    035C 93E0048F  STS	lcd_display_wrp,R30
(0193) 	*lcd_display_wrp++=latitude[8];
    035E 9020007A  LDS	R2,0x7A
    0360 9221      ST	R2,Z+
    0361 93F00490  STS	lcd_display_wrp+1,R31
    0363 93E0048F  STS	lcd_display_wrp,R30
(0194) 	*lcd_display_wrp++=NSind;
    0365 90200071  LDS	R2,NSind
    0367 9221      ST	R2,Z+
    0368 93F00490  STS	lcd_display_wrp+1,R31
    036A 93E0048F  STS	lcd_display_wrp,R30
(0195) 
(0196) 
(0197) 	lcd_display_wrp=&lcd_display2_buffer[0][0];
    036C E981      LDI	R24,0x91
    036D E094      LDI	R25,4
    036E 93900490  STS	lcd_display_wrp+1,R25
    0370 9380048F  STS	lcd_display_wrp,R24
(0198)  	lcd_display_rdp=&lcd_display2_buffer[0][0];
    0372 9390048E  STS	lcd_display_rdp+1,R25
    0374 9380048D  STS	lcd_display_rdp,R24
(0199)  	SEI();
    0376 9478      BSET	7
    0377 9508      RET
(0200) 
(0201) }
(0202) 
(0203) 
(0204) //write longtitude to lcd buffer
(0205) void Write_longtitude(void)
(0206) {
(0207)    
(0208) 	char*  aptr;
(0209) 	int i;
(0210) 	
(0211) 	aptr=time;
_Write_longtitude:
  i                    --> Y+1
  aptr                 --> R16
    0378 E70C      LDI	R16,0x7C
    0379 E010      LDI	R17,0
(0212) 		
(0213) 	lcd_display_wrp=&lcd_display2_buffer[3][1];
    037A ED81      LDI	R24,0xD1
    037B E094      LDI	R25,4
    037C 93900490  STS	lcd_display_wrp+1,R25
    037E 9380048F  STS	lcd_display_wrp,R24
(0214)  	*lcd_display_wrp++='L';
    0380 E48C      LDI	R24,0x4C
    0381 91E0048F  LDS	R30,lcd_display_wrp
    0383 91F00490  LDS	R31,lcd_display_wrp+1
    0385 9381      ST	R24,Z+
    0386 93F00490  STS	lcd_display_wrp+1,R31
    0388 93E0048F  STS	lcd_display_wrp,R30
(0215)  	*lcd_display_wrp++='O';
    038A E48F      LDI	R24,0x4F
    038B 9381      ST	R24,Z+
    038C 93F00490  STS	lcd_display_wrp+1,R31
    038E 93E0048F  STS	lcd_display_wrp,R30
(0216)  	*lcd_display_wrp++='N';
    0390 E48E      LDI	R24,0x4E
    0391 9381      ST	R24,Z+
    0392 93F00490  STS	lcd_display_wrp+1,R31
    0394 93E0048F  STS	lcd_display_wrp,R30
(0217)  	*lcd_display_wrp++=':';
    0396 E38A      LDI	R24,0x3A
    0397 9381      ST	R24,Z+
    0398 93F00490  STS	lcd_display_wrp+1,R31
    039A 93E0048F  STS	lcd_display_wrp,R30
(0218) 
(0219) 	*lcd_display_wrp++=longtitude[0];
    039C 90200067  LDS	R2,longtitude
    039E 9221      ST	R2,Z+
    039F 93F00490  STS	lcd_display_wrp+1,R31
    03A1 93E0048F  STS	lcd_display_wrp,R30
(0220) 	*lcd_display_wrp++=longtitude[1];
    03A3 90200068  LDS	R2,longtitude+1
    03A5 9221      ST	R2,Z+
    03A6 93F00490  STS	lcd_display_wrp+1,R31
    03A8 93E0048F  STS	lcd_display_wrp,R30
(0221) 	*lcd_display_wrp++=longtitude[2];
    03AA 90200069  LDS	R2,longtitude+2
    03AC 9221      ST	R2,Z+
    03AD 93F00490  STS	lcd_display_wrp+1,R31
    03AF 93E0048F  STS	lcd_display_wrp,R30
(0222) 	*lcd_display_wrp++='D';
    03B1 E484      LDI	R24,0x44
    03B2 9381      ST	R24,Z+
    03B3 93F00490  STS	lcd_display_wrp+1,R31
    03B5 93E0048F  STS	lcd_display_wrp,R30
(0223) 	*lcd_display_wrp++=longtitude[3];
    03B7 9020006A  LDS	R2,longtitude+3
    03B9 9221      ST	R2,Z+
    03BA 93F00490  STS	lcd_display_wrp+1,R31
    03BC 93E0048F  STS	lcd_display_wrp,R30
(0224) 	*lcd_display_wrp++=longtitude[4];
    03BE 9020006B  LDS	R2,0x6B
    03C0 9221      ST	R2,Z+
    03C1 93F00490  STS	lcd_display_wrp+1,R31
    03C3 93E0048F  STS	lcd_display_wrp,R30
(0225) 	*lcd_display_wrp++=longtitude[5];
    03C5 9020006C  LDS	R2,0x6C
    03C7 9221      ST	R2,Z+
    03C8 93F00490  STS	lcd_display_wrp+1,R31
    03CA 93E0048F  STS	lcd_display_wrp,R30
(0226) 	*lcd_display_wrp++=longtitude[6];
    03CC 9020006D  LDS	R2,0x6D
    03CE 9221      ST	R2,Z+
    03CF 93F00490  STS	lcd_display_wrp+1,R31
    03D1 93E0048F  STS	lcd_display_wrp,R30
(0227) 	*lcd_display_wrp++=longtitude[7];
    03D3 9020006E  LDS	R2,0x6E
    03D5 9221      ST	R2,Z+
    03D6 93F00490  STS	lcd_display_wrp+1,R31
    03D8 93E0048F  STS	lcd_display_wrp,R30
(0228) 	*lcd_display_wrp++=longtitude[8];
    03DA 9020006F  LDS	R2,0x6F
    03DC 9221      ST	R2,Z+
    03DD 93F00490  STS	lcd_display_wrp+1,R31
    03DF 93E0048F  STS	lcd_display_wrp,R30
(0229) 	*lcd_display_wrp++=longtitude[9];
    03E1 90200070  LDS	R2,0x70
    03E3 9221      ST	R2,Z+
    03E4 93F00490  STS	lcd_display_wrp+1,R31
    03E6 93E0048F  STS	lcd_display_wrp,R30
(0230)    	*lcd_display_wrp++=EWind;
    03E8 90200066  LDS	R2,EWind
    03EA 9221      ST	R2,Z+
    03EB 93F00490  STS	lcd_display_wrp+1,R31
    03ED 93E0048F  STS	lcd_display_wrp,R30
(0231) 
(0232) 
(0233) 	lcd_display_wrp=&lcd_display2_buffer[0][0];
    03EF E981      LDI	R24,0x91
    03F0 E094      LDI	R25,4
    03F1 93900490  STS	lcd_display_wrp+1,R25
    03F3 9380048F  STS	lcd_display_wrp,R24
(0234)  	lcd_display_rdp=&lcd_display2_buffer[0][0];
    03F5 9390048E  STS	lcd_display_rdp+1,R25
    03F7 9380048D  STS	lcd_display_rdp,R24
(0235)  	SEI();
    03F9 9478      BSET	7
    03FA 9508      RET
(0236) 
(0237) }
(0238) 
(0239) void Write_date(void)
(0240) {
(0241)    
(0242) 	char*  aptr;
(0243) 	int i;
(0244) 	
(0245) 	aptr=time;
_Write_date:
  i                    --> Y+1
  aptr                 --> R16
    03FB E70C      LDI	R16,0x7C
    03FC E010      LDI	R17,0
(0246) 		
(0247) 	lcd_display_wrp=&lcd_display2_buffer[4][1];
    03FD EE86      LDI	R24,0xE6
    03FE E094      LDI	R25,4
    03FF 93900490  STS	lcd_display_wrp+1,R25
    0401 9380048F  STS	lcd_display_wrp,R24
(0248)  	*lcd_display_wrp++='D';
    0403 E484      LDI	R24,0x44
    0404 91E0048F  LDS	R30,lcd_display_wrp
    0406 91F00490  LDS	R31,lcd_display_wrp+1
    0408 9381      ST	R24,Z+
    0409 93F00490  STS	lcd_display_wrp+1,R31
    040B 93E0048F  STS	lcd_display_wrp,R30
(0249)  	*lcd_display_wrp++='A';
    040D E481      LDI	R24,0x41
    040E 9381      ST	R24,Z+
    040F 93F00490  STS	lcd_display_wrp+1,R31
    0411 93E0048F  STS	lcd_display_wrp,R30
(0250)  	*lcd_display_wrp++='T';
    0413 E584      LDI	R24,0x54
    0414 9381      ST	R24,Z+
    0415 93F00490  STS	lcd_display_wrp+1,R31
    0417 93E0048F  STS	lcd_display_wrp,R30
(0251) 	*lcd_display_wrp++='E';
    0419 E485      LDI	R24,0x45
    041A 9381      ST	R24,Z+
    041B 93F00490  STS	lcd_display_wrp+1,R31
    041D 93E0048F  STS	lcd_display_wrp,R30
(0252)  	*lcd_display_wrp++=':';
    041F E38A      LDI	R24,0x3A
    0420 9381      ST	R24,Z+
    0421 93F00490  STS	lcd_display_wrp+1,R31
    0423 93E0048F  STS	lcd_display_wrp,R30
(0253) 
(0254) 	*lcd_display_wrp++=date[4];//year
    0425 90200064  LDS	R2,0x64
    0427 9221      ST	R2,Z+
    0428 93F00490  STS	lcd_display_wrp+1,R31
    042A 93E0048F  STS	lcd_display_wrp,R30
(0255) 	*lcd_display_wrp++=date[5];
    042C 90200065  LDS	R2,0x65
    042E 9221      ST	R2,Z+
    042F 93F00490  STS	lcd_display_wrp+1,R31
    0431 93E0048F  STS	lcd_display_wrp,R30
(0256) 	*lcd_display_wrp++='-';
    0433 E28D      LDI	R24,0x2D
    0434 9381      ST	R24,Z+
    0435 93F00490  STS	lcd_display_wrp+1,R31
    0437 93E0048F  STS	lcd_display_wrp,R30
(0257) 	*lcd_display_wrp++=date[2];//month
    0439 90200062  LDS	R2,date+2
    043B 9221      ST	R2,Z+
    043C 93F00490  STS	lcd_display_wrp+1,R31
    043E 93E0048F  STS	lcd_display_wrp,R30
(0258) 	*lcd_display_wrp++=date[3];
    0440 90200063  LDS	R2,date+3
    0442 9221      ST	R2,Z+
    0443 93F00490  STS	lcd_display_wrp+1,R31
    0445 93E0048F  STS	lcd_display_wrp,R30
(0259) 	*lcd_display_wrp++='-';
    0447 9381      ST	R24,Z+
    0448 93F00490  STS	lcd_display_wrp+1,R31
    044A 93E0048F  STS	lcd_display_wrp,R30
(0260) 	*lcd_display_wrp++=date[0];//day
    044C 90200060  LDS	R2,date
    044E 9221      ST	R2,Z+
    044F 93F00490  STS	lcd_display_wrp+1,R31
    0451 93E0048F  STS	lcd_display_wrp,R30
(0261) 	*lcd_display_wrp++=date[1];
    0453 90200061  LDS	R2,date+1
    0455 9221      ST	R2,Z+
    0456 93F00490  STS	lcd_display_wrp+1,R31
    0458 93E0048F  STS	lcd_display_wrp,R30
(0262)     
(0263)  	lcd_display_wrp=&lcd_display2_buffer[0][0];
    045A E981      LDI	R24,0x91
    045B E094      LDI	R25,4
    045C 93900490  STS	lcd_display_wrp+1,R25
    045E 9380048F  STS	lcd_display_wrp,R24
(0264)  	lcd_display_rdp=&lcd_display2_buffer[0][0];
    0460 9390048E  STS	lcd_display_rdp+1,R25
    0462 9380048D  STS	lcd_display_rdp,R24
(0265)  	SEI();
    0464 9478      BSET	7
    0465 9508      RET
_lcd_wr1_ins:
  lcd_wr_temp          --> R20
  lcd_wr_buffer        --> R16
    0466 940E0726  CALL	push_gset1
(0266) 
(0267) }
(0268) /*****************************************************
(0269)               LCD  function
(0270)   inclue 
(0271) 
(0272) *****************************************************/
(0273) 
(0274) //写lcd的cs1命令寄存器函数
(0275) void lcd_wr1_ins (unsigned char lcd_wr_buffer)
(0276) {
(0277)     unsigned char lcd_wr_temp;
(0278)  	e_off;										  //读lcd状态
    0468 9897      CBI	0x12,7
(0279)  	rw_on;
    0469 9A93      SBI	0x12,3
(0280)  	di_off;
    046A 9894      CBI	0x12,4
(0281)  	cs1_on;
    046B 9AAF      SBI	0x15,7
(0282)  	DDRA&=0x03;
    046C B38A      IN	R24,0x1A
    046D 7083      ANDI	R24,3
    046E BB8A      OUT	0x1A,R24
(0283)  	PORTA&=0x03;
    046F B38B      IN	R24,0x1B
    0470 7083      ANDI	R24,3
    0471 BB8B      OUT	0x1B,R24
(0284) 	DDRC&=0xFC;
    0472 B384      IN	R24,0x14
    0473 7F8C      ANDI	R24,0xFC
    0474 BB84      OUT	0x14,R24
(0285)  	PORTC&=0xFC;
    0475 B385      IN	R24,0x15
    0476 7F8C      ANDI	R24,0xFC
    0477 BB85      OUT	0x15,R24
(0286)  	e_on;
    0478 9A97      SBI	0x12,7
(0287)  	NOP();
    0479 0000      NOP
(0288)  	NOP();
    047A 0000      NOP
(0289)  	NOP();
    047B 0000      NOP
(0290)  	lcd_wr_temp=(PINA&0xfc);
    047C B349      IN	R20,0x19
    047D 7F4C      ANDI	R20,0xFC
(0291) 	lcd_wr_temp|=(PINC&0x03);
    047E B383      IN	R24,0x13
    047F 7083      ANDI	R24,3
    0480 2B48      OR	R20,R24
(0292)  	e_off;
    0481 9897      CBI	0x12,7
(0293)  	cs1_off;
    0482 98AF      CBI	0x15,7
    0483 C01B      RJMP	0x049F
(0294)  	while(lcd_wr_temp&0x90)
(0295)  	{
(0296)         e_off;					  				  //读lcd状态
    0484 9897      CBI	0x12,7
(0297) 	 	rw_on;
    0485 9A93      SBI	0x12,3
(0298) 	 	di_off;
    0486 9894      CBI	0x12,4
(0299)  	 	cs1_on;	 
    0487 9AAF      SBI	0x15,7
(0300)  	 	DDRA&=0x03;
    0488 B38A      IN	R24,0x1A
    0489 7083      ANDI	R24,3
    048A BB8A      OUT	0x1A,R24
(0301)  		PORTA&=0x03;
    048B B38B      IN	R24,0x1B
    048C 7083      ANDI	R24,3
    048D BB8B      OUT	0x1B,R24
(0302) 		DDRC&=0xFC;
    048E B384      IN	R24,0x14
    048F 7F8C      ANDI	R24,0xFC
    0490 BB84      OUT	0x14,R24
(0303)  		PORTC&=0xFC;
    0491 B385      IN	R24,0x15
    0492 7F8C      ANDI	R24,0xFC
    0493 BB85      OUT	0x15,R24
(0304)  		e_on;
    0494 9A97      SBI	0x12,7
(0305)  		NOP();
    0495 0000      NOP
(0306)  		NOP();
    0496 0000      NOP
(0307)  		NOP();
    0497 0000      NOP
(0308)  		lcd_wr_temp=(PINA&0xfc);

⌨️ 快捷键说明

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