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

📄 gpsdata.lst

📁 51单片机C语言应用程序设计实例精讲.rar
💻 LST
字号:
C51 COMPILER V7.02b   GPSDATA                                                              12/11/2005 16:02:49 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE GPSDATA
OBJECT MODULE PLACED IN GPSData.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE GPSData.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************/
   2          /* Copyright (c) 2004, 通信工程学院戴佳 */
   3          /* All rights reserved.                 */
   4          /* 作    者:戴佳                       */
   5          /****************************************/
   6          
   7          #include "GPSData.h"
   8          
   9          /* 延时t毫秒 */
  10          void delay(uint t)
  11          {
  12   1              uint i;
  13   1              while(t--)
  14   1              {
  15   2                      /* 对于12MHz时钟,约延时1ms */
  16   2                      for (i=0;i<125;i++)
  17   2                      {}
  18   2              }
  19   1      } 
  20          
  21          /* 串口接收中断 */
  22          serial() interrupt 4 using 1
  23          {
  24   1              RI = 0;                         // 清除中断标志位
  25   1      
  26   1              /* 判断是否收到GPRMC格式语句的第一个字符"$",其数值为0x24,
  27   1              收到后开始记录数据,并设置记录标志RecFlag。                         */
  28   1              if (SBUF == 0x24)
  29   1              {
  30   2                      RecFlag = 1;
  31   2                      i = 0;
  32   2                      IGpsLgd = 0;    // 经度数据计数变量置0
  33   2                      NumComa = 0;    // 逗号计数变量置0
  34   2              }
  35   1      
  36   1              /* 开始处理GPRMC中的数据信息 */
  37   1              if (RecFlag == 1)
  38   1              {
  39   2                      if(SBUF == 0x2c)
  40   2                              NumComa++;
  41   2      
  42   2                      /* 第5个逗号之后的字符属于经度数据 */
  43   2                      if (NumComa == 3)
  44   2                      {
  45   3                              StrGpsLgd[IGpsLgd] = SBUF;      // 存入字符串StrGps
  46   3                              IGpsLgd++;
  47   3                      }
  48   2      
  49   2                      /* 判断是否收到GPRMC格式语句的字符"*",
  50   2                      其数值为0x2a,收到则结束记录 */ 
  51   2                      if (SBUF == 0x2a)
  52   2                      {
  53   3                              StrGpsLgd[IGpsLgd] = '\0';      // 字符串的结束符
  54   3                              RecFlag = 0;
  55   3                              IGpsLgd = 0;                            // 经度数据计数变量置0
C51 COMPILER V7.02b   GPSDATA                                                              12/11/2005 16:02:49 PAGE 2   

  56   3                              NumComa = 0;                            // 逗号计数变量置0
  57   3      
  58   3                              /* 延时半秒钟后重新接收新的GPS定位信息中的经度信息 */
  59   3                              REN = 0;
  60   3                              delay(500);                                     // 延时500ms
  61   3                              REN = 1;
  62   3                      }
  63   2              }       
  64   1      }
  65          
  66          
  67          void main()
  68          {
  69   1              /* 初始化串口 */
  70   1              TMOD = 0x20;    
  71   1              TL1= 0xfd;
  72   1              TH1 = 0xfd;
  73   1              SCON = 0x40;            // 方式1:10位异步收发,波特率由定时器控制。REN=0。
  74   1              PCON = 0x00;            // SMOD = 0
  75   1              IE = 0x90;                      // EA = 1,ES = 1
  76   1              TR1 = 1;                        // 定时器1启动
  77   1      
  78   1              DisableAllOut();
  79   1              EnableGPRMC();
  80   1      
  81   1              delay(1000);            // 延时1s
  82   1      
  83   1              REN = 1;                        // REN = 1,开始接收数据
  84   1      
  85   1              while(1);       
  86   1      }
  87          
  88          /* 配置GPS模块禁用所有输出语句 */
  89          void DisableAllOut()
  90          {
  91   1              /* 发送语句:$PGRMO,,2 */
  92   1              TI = 0;
  93   1              SBUF = 0x24;                            // 发送"$"
  94   1              while(!TI);
  95   1              TI = 0;
  96   1              SBUF = 'P';                                     // 发送"P"
  97   1              while(!TI);
  98   1              TI = 0;
  99   1              SBUF = 'G';                                     // 发送"G"
 100   1              while(!TI);
 101   1              TI = 0;
 102   1              SBUF = 'R';                                     // 发送"R"
 103   1              while(!TI);
 104   1              TI = 0;
 105   1              SBUF = 'M';                                     // 发送"M"
 106   1              while(!TI);
 107   1              TI = 0;
 108   1              SBUF = 'O';                                     // 发送"O"
 109   1              while(!TI);
 110   1              TI = 0;
 111   1              SBUF = ',';                                     // 发送","
 112   1              while(!TI);
 113   1              TI = 0;
 114   1              SBUF = ',';                                     // 发送","
 115   1              while(!TI);
 116   1              TI = 0;
 117   1              SBUF = '2';                                     // 发送"2"
C51 COMPILER V7.02b   GPSDATA                                                              12/11/2005 16:02:49 PAGE 3   

 118   1              while(!TI);
 119   1              TI = 0;
 120   1              SBUF = 0x2a;                            // 发送"*"
 121   1              while(!TI);
 122   1              TI = 0;
 123   1      }
 124          
 125          /* 配置GPS模块使能$GPRMC输出语句 */
 126          void EnableGPRMC()
 127          {
 128   1              /* 发送语句:$PGRMO,GPRMC,1 */
 129   1              TI = 0;
 130   1              SBUF = 0x24;                            // 发送"$"
 131   1              while(!TI);
 132   1              TI = 0;
 133   1              SBUF = 'P';                                     // 发送"P"
 134   1              while(!TI);
 135   1              TI = 0;
 136   1              SBUF = 'G';                                     // 发送"G"
 137   1              while(!TI);
 138   1              TI = 0;
 139   1              SBUF = 'R';                                     // 发送"R"
 140   1              while(!TI);
 141   1              TI = 0;
 142   1              SBUF = 'M';                                     // 发送"M"
 143   1              while(!TI);
 144   1              TI = 0;
 145   1              SBUF = 'O';                                     // 发送"O"
 146   1              while(!TI);
 147   1              TI = 0;
 148   1              SBUF = ',';                                     // 发送","
 149   1              while(!TI);
 150   1              TI = 0;
 151   1              SBUF = 'G';                                     // 发送"G"
 152   1              while(!TI);
 153   1              TI = 0;
 154   1              SBUF = 'P';                                     // 发送"P"
 155   1              while(!TI);
 156   1              TI = 0;
 157   1              SBUF = 'R';                                     // 发送"R"
 158   1              while(!TI);
 159   1              TI = 0;
 160   1              SBUF = 'M';                                     // 发送"M"
 161   1              while(!TI);
 162   1              TI = 0;
 163   1              SBUF = 'C';                                     // 发送"C"
 164   1              while(!TI);
 165   1              TI = 0;
 166   1              SBUF = ',';                                     // 发送","
 167   1              while(!TI);
 168   1              TI = 0;
 169   1              SBUF = '1';                                     // 发送"1"
 170   1              while(!TI);
 171   1              TI = 0;
 172   1              SBUF = 0x2a;                            // 发送"*"
 173   1              while(!TI);
 174   1              TI = 0;
 175   1      }
 176          
 177          


C51 COMPILER V7.02b   GPSDATA                                                              12/11/2005 16:02:49 PAGE 4   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    401    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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