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