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

📄 send_recv.lst

📁 此程序实现无线信标定位
💻 LST
字号:
C51 COMPILER V7.06   SEND_RECV                                                             07/07/2008 21:47:22 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SEND_RECV
OBJECT MODULE PLACED IN send_recv.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE send_recv.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /***********************************************/
   2          
   3          #include<reg51.h>
   4          
   5          void port_init(void);
   6          extern unsigned char data local_lat[11];//="2446.5211N";
   7          extern unsigned char data local_lon[12];//="12100.1536E";
   8          
   9          /*
  10          unsigned char data data_buf;  //由于中断函数不接收参数,故只能用全局变量
  11          unsigned char data check_data[2];
  12          unsigned char data check_flag;  //检验开始标志
  13          unsigned char data check_right; //校验位是否正确标志,1表示正确
  14          bit int_flag=0;//中断执行标志
  15          */
  16          
  17          void recv_data(void)
  18          {
  19   1              unsigned char dflag = 0;//记录逗号的次数
  20   1              unsigned char data i = 0,j = 0,data_buf;
  21   1      
  22   1              port_init(); 
  23   1              RI = 0;
  24   1      
  25   1              while(1)
  26   1              {       
  27   2                      while(!RI)
  28   2                      {}
  29   2                      if(SBUF == 'A')
  30   2                      break;
  31   2                      RI = 0;
  32   2              }       
  33   1              RI = 0; 
  34   1      
  35   1              while(1)
  36   1              {               
  37   2                      while(!RI)
  38   2                      {}
  39   2                      data_buf = SBUF;
  40   2                      if(data_buf == '$')
  41   2                      break;
  42   2                      RI = 0;
  43   2              }
  44   1      
  45   1      /*接收数据  $GPRMC,062321,V,3537.8333,N,13944.6667,E,000.0,000.0,030222,,*0C */
  46   1              RI=0;   
  47   1              do
  48   1              {
  49   2                      while(!RI)
  50   2                      {}
  51   2                      data_buf = SBUF;
  52   2                      if(data_buf == ',') dflag++;
  53   2                      if(dflag == 3 && data_buf != ',')       
  54   2                              {
  55   3                                      local_lat[i] = data_buf;
C51 COMPILER V7.06   SEND_RECV                                                             07/07/2008 21:47:22 PAGE 2   

  56   3                                      i++;
  57   3                              }
  58   2      
  59   2                      if(dflag == 4 && data_buf != ',') 
  60   2                              {
  61   3                                      local_lat[i] = data_buf;
  62   3                                      local_lat[i+1] = '\0';          //以字符串的方式结束
  63   3                              }
  64   2      
  65   2                      if(dflag == 5 && data_buf != ',')
  66   2                              {       
  67   3                                      local_lon[j] = data_buf;
  68   3                                      j++;
  69   3                              }
  70   2      
  71   2                      if(dflag == 6 && data_buf != ',') 
  72   2                              {
  73   3                                      local_lon[j] = data_buf;
  74   3                                      local_lon[j+1] = '\0';          //以字符串的方式结束
  75   3                              }
  76   2                      RI = 0;
  77   2              }while(data_buf != 'E');
  78   1              TR1 = 0;
  79   1      }
  80          
  81          
  82          void port_init(void)
  83          {
  84   1              TMOD = 0x20;
  85   1              PCON = 0;               //SMOD=0
  86   1              SCON = 0x50;    // MODE 1       REN = 1
  87   1              TH1 = 0xCC;     //600baut 12MHz oscillator frequence,SMOD=0
  88   1              TL1 = 0xCC;
  89   1              TR1 = 1;                //Start timer 1
  90   1      }
  91          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    177    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   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 + -