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

📄 gps.lst

📁 这是用W77E58编写的控制GSM模块
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -