📄 gps.lst
字号:
297 2
298 2 sprintf(cmd,"%d %d'%d\"",i,j,k);
299 2
300 2
C51 COMPILER V7.50 GPS 04/04/2007 15:49:17 PAGE 6
301 2 }
302 1 strcat(TP_UD, cmd);
303 1 strcat(TP_UD, "\r\n");
304 1 strcat(TP_UD, "Long:");
305 1
306 1 if(JWDMode==JWD_DU) //度,如114。573124度
307 1 {
308 2 i= LonDeg;
309 2 j= (LonMin1*10000+LonMin2)/60; //33.4264 ==> 33*10000=330000+4264=334264/60=5571
310 2 k= (LonMin1*10000+LonMin2-j*60); //(334264-5571X60)=4/60
311 2 k=k*100/6;
312 2 if(k>=100)
313 2 sprintf(cmd,"%d.%d%d",i,j,k);
314 2 else
315 2 {
316 3 sprintf(cmd,"%d.%d0%d",i,j,k);
317 3
318 3 }
319 2 }
320 1 else
321 1 if(JWDMode==JWD_DMS) //度分秒 如114。27'34"
322 1 {
323 2 i= LonDeg;
324 2 j= LonMin1; //MIN
325 2 k= LonMin2*60/10000; //SEC
326 2 sprintf(cmd,"%d %d'%d\"",i,j,k);
327 2
328 2 }
329 1
330 1 strcat(TP_UD, cmd);
331 1 strcat(TP_UD, "\r\n");
332 1 strcat(TP_UD, "Speed:");
333 1
334 1 i= (Speed/10);
335 1 j= Speed%10;
336 1 sprintf(cmd,"%d.%d",i,j);
337 1 strcat(TP_UD, cmd);
338 1 strcat(TP_UD, "\r\n");
339 1
340 1 sprintf(cmd,"%d-%d-%d",(int)xYear+2000,(int)xMonth,(int)xDay);
341 1 strcat(TP_UD, cmd);
342 1 strcat(TP_UD, "\r\n");
343 1
344 1
345 1 sprintf(cmd,"%d:%d:%d",(int)xHour+8,(int)xMin,(int)xSec);
346 1 strcat(TP_UD, cmd);
347 1 strcat(TP_UD, "\r\n");
348 1
349 1
350 1
351 1 GPSns = ((GprmcBuff[i+10]=='N')? 1:0);
352 1 GPSew = ((GprmcBuff[i+23]=='E')? 1:0);
353 1
354 1 GPSReady = TRUE;
355 1
356 1 }
*** WARNING C280 IN LINE 113 OF GPS.C: 'Longitude': unreferenced local variable
*** WARNING C280 IN LINE 114 OF GPS.C: 'Latitude': unreferenced local variable
357
358
359 void ParseNMEA0183(uchar* GpsBuff)
360 {
C51 COMPILER V7.50 GPS 04/04/2007 15:49:17 PAGE 7
361 1
362 1
363 1 if(strncmp(GpsBuff, "$GPRMC",5)==0)
364 1 {
365 2
366 2 /*jiuwang data format:*/
367 2 /* $GPRMC,090058.01,A,2233.4264,N,11406.1970,E,000.0,000.0,041206,002.1,W,A*29*/
368 2 if(GpsBuff[6]==',')
369 2 {
370 3 ParseGPRMC(GpsBuff);
371 3 }
372 2
373 2 }
374 1
375 1
376 1 }
377
378
379
380 void ReadGPS(void)
381 {
382 1 int i;
383 1 uchar retry;
384 1 #ifdef DEBUG_GPS
385 1 ParseNMEA0183(debug_gps);
386 1
387 1 #else
//if(GPS_UART1_RDY==FALSE) return NULL;
retry=250;
i=0;
while(retry--)
{
if((m_Buffer[i]=getdp310())=='$') break;
}
if(retry!=0)
{
while(1)
{
m_Buffer[++i]=getbyte1();
if(m_Buffer[i-1]=='\r' && m_Buffer[i]=='\n') break;
else if(i>100)break;
}
}
if(m_Buffer[0]=='$')
{
ParseNMEA0183(m_Buffer);
//gsmSendMessage();
#ifdef DEBUG
for(i=0;i<100;i++)
{
if(m_Buffer[i-1]=='\r' && m_Buffer[i]=='\n')
{
m_Buffer[i+1]=0;
putstring(m_Buffer);
break;
C51 COMPILER V7.50 GPS 04/04/2007 15:49:17 PAGE 8
}
}
#endif
m_Buffer[0]=NULL;
}
#endif
431 1
432 1
433 1 }
*** WARNING C280 IN LINE 382 OF GPS.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 383 OF GPS.C: 'retry': unreferenced local variable
434
435
436
437
438
439
C51 COMPILER V7.50 GPS 04/04/2007 15:49:17 PAGE 9
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _Split (BEGIN)
; SOURCE LINE # 59
0000 8B00 R MOV str,R3
0002 8A00 R MOV str+01H,R2
0004 8900 R MOV str+02H,R1
0006 8D00 R MOV dot,R5
; SOURCE LINE # 60
; SOURCE LINE # 64
0008 E4 CLR A
0009 F500 R MOV dot_count,A
; SOURCE LINE # 66
;---- Variable 'i' assigned to Register 'R6/R7' ----
000B FF MOV R7,A
000C FE MOV R6,A
000D ?C0001:
; SOURCE LINE # 67
; SOURCE LINE # 68
000D AB00 R MOV R3,str
000F AA00 R MOV R2,str+01H
0011 A900 R MOV R1,str+02H
0013 8F82 MOV DPL,R7
0015 8E83 MOV DPH,R6
0017 120000 E LCALL ?C?CLDOPTR
001A FD MOV R5,A
001B B42C02 CJNE A,#02CH,?C0004
; SOURCE LINE # 69
; SOURCE LINE # 70
001E 0500 R INC dot_count
; SOURCE LINE # 71
0020 ?C0004:
; SOURCE LINE # 72
0020 ED MOV A,R5
0021 B40D12 CJNE A,#0DH,?C0005
0024 AB00 R MOV R3,str
0026 AA00 R MOV R2,str+01H
0028 A900 R MOV R1,str+02H
002A 8F82 MOV DPL,R7
002C 8E83 MOV DPH,R6
002E A3 INC DPTR
002F 120000 E LCALL ?C?CLDOPTR
0032 640A XRL A,#0AH
0034 6011 JZ ?C0002
0036 ?C0005:
; SOURCE LINE # 73
0036 E500 R MOV A,dot_count
0038 B50001 R CJNE A,dot,?C0003
003B 22 RET
; SOURCE LINE # 75
003C ?C0003:
003C 0F INC R7
003D BF0001 CJNE R7,#00H,?C0066
0040 0E INC R6
0041 ?C0066:
0041 EF MOV A,R7
0042 64FA XRL A,#0FAH
0044 4E ORL A,R6
0045 70C6 JNZ ?C0001
0047 ?C0002:
; SOURCE LINE # 76
C51 COMPILER V7.50 GPS 04/04/2007 15:49:17 PAGE 10
0047 E4 CLR A
0048 FE MOV R6,A
0049 FF MOV R7,A
; SOURCE LINE # 78
004A ?C0007:
004A 22 RET
; FUNCTION _Split (END)
; FUNCTION GPSModule_init (BEGIN)
; SOURCE LINE # 83
; SOURCE LINE # 84
; SOURCE LINE # 86
0000 D2B5 SETB GPS_EN
; SOURCE LINE # 87
0002 7F14 MOV R7,#014H
0004 120000 E LCALL _delay_ms
; SOURCE LINE # 88
0007 D293 SETB GPS_RESET
; SOURCE LINE # 89
0009 7F14 MOV R7,#014H
000B 120000 E LCALL _delay_ms
; SOURCE LINE # 90
000E C293 CLR GPS_RESET
; SOURCE LINE # 91
0010 7F64 MOV R7,#064H
0012 120000 E LCALL _delay_ms
; SOURCE LINE # 92
0015 D293 SETB GPS_RESET
; SOURCE LINE # 94
0017 22 RET
; FUNCTION GPSModule_init (END)
; FUNCTION _GetGpsInfoDmm (BEGIN)
; SOURCE LINE # 97
0000 8F00 R MOV degree+03H,R7
0002 8E00 R MOV degree+02H,R6
0004 8D00 R MOV degree+01H,R5
0006 8C00 R MOV degree,R4
; SOURCE LINE # 98
; SOURCE LINE # 100
0008 E500 R MOV A,mode
000A B40152 CJNE A,#01H,?C0009
; SOURCE LINE # 101
000D E4 CLR A
000E 7F10 MOV R7,#010H
0010 7E27 MOV R6,#027H
0012 FD MOV R5,A
0013 FC MOV R4,A
0014 AB00 R MOV R3,minute1+03H
0016 AA00 R MOV R2,minute1+02H
0018 A900 R MOV R1,minute1+01H
001A A800 R MOV R0,minute1
001C 120000 E LCALL ?C?LMUL
001F C004 PUSH AR4
0021 C005 PUSH AR5
0023 C006 PUSH AR6
0025 C007 PUSH AR7
0027 7FC0 MOV R7,#0C0H
0029 7E27 MOV R6,#027H
002B 7D09 MOV R5,#09H
002D 7C00 MOV R4,#00H
002F AB00 R MOV R3,degree+03H
C51 COMPILER V7.50 GPS 04/04/2007 15:49:17 PAGE 11
0031 AA00 R MOV R2,degree+02H
0033 A900 R MOV R1,degree+01H
0035 A800 R MOV R0,degree
0037 120000 E LCALL ?C?LMUL
003A D003 POP AR3
003C D002 POP AR2
003E D001 POP AR1
0040 D000 POP AR0
0042 EF MOV A,R7
0043 2B ADD A,R3
0044 FF MOV R7,A
0045 EE MOV A,R6
0046 3A ADDC A,R2
0047 FE MOV R6,A
0048 ED MOV A,R5
0049 39 ADDC A,R1
004A FD MOV R5,A
004B EC MOV A,R4
004C 38 ADDC A,R0
004D FC MOV R4,A
004E EF MOV A,R7
004F 2500 R ADD A,minute2+03H
0051 FF MOV R7,A
0052 EE MOV A,R6
0053 3500 R ADDC A,minute2+02H
0055 FE MOV R6,A
0056 ED MOV A,R5
0057 3500 R ADDC A,minute2+01H
0059 FD MOV R5,A
005A EC MOV A,R4
005B 3500 R ADDC A,minute2
005D FC MOV R4,A
005E 22 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -