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

📄 send_lla.lst

📁 单片机C源程序souce
💻 LST
字号:
C51 COMPILER V7.06   SEND_LLA                                                              11/19/2006 12:35:42 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SEND_LLA
OBJECT MODULE PLACED IN send_lla.OBJ
COMPILER INVOKED BY: E:\keil\C51\BIN\C51.EXE send_lla.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "ext_temp.h"
   2          
   3          extern senddsp(void);
   4          extern unsigned char toasc(unsigned char m);
   5          extern unsigned char *long_to_asc(long p);
   6          extern unsigned char *char_to_asc(unsigned char m,bit ch);
   7          extern wdt(void);
   8          extern WriteCont(unsigned char CMD,unsigned char addr,unsigned char DataArray[],unsigned char offset);
   9          
  10          extern send_lla(void)
  11              {
  12   1               unsigned char temp,i,*b;
  13   1               long p;
  14   1           unsigned char a[16];
  15   1               char j;
  16   1           wdt();
  17   1      
  18   1                      rdata[0]='$';rdata[1]='B';
  19   1                      rdata[2]='D';rdata[3]='L';
  20   1                      rdata[4]='L';rdata[5]='A';
  21   1                      rdata[6]=',';
  22   1                      //**纬度
  23   1      //      for (i=7;i<=40;i++)
  24   1      
  25   1                      if (lat_par>=0)
  26   1                              p=lat_par;
  27   1                      else
  28   1                              {
  29   2                              p=lat_par^0xffffffff;
  30   2                              p+=1;
  31   2                              }
  32   1                      temp=p/3600000;  //纬度度部分(度)
  33   1                      b=char_to_asc(temp,0);
  34   1                      rdata[7]=*b++;
  35   1                      rdata[8]=*b;
  36   1      /*              rdata[7]=toasc(temp/10); //十位
  37   1                      rdata[8]=toasc(temp%10); //个位*/
  38   1                      /***********************/
  39   1                      temp=(p/60000)%60;//纬度分部分
  40   1                      b=char_to_asc(temp,0);
  41   1                      rdata[9]=*b++;
  42   1                      rdata[10]=*b;
  43   1      /*              rdata[9]=toasc(temp/10); //十位
  44   1                      rdata[10]=toasc(temp%10); //个位*/
  45   1                      for (i=0;i<4;i++)
  46   1                           lat_asc[i]=rdata[i+7]; //存取纬度ASCII值
  47   1      
  48   1                      rdata[11]='.';
  49   1                      /**********************/
  50   1                      b= long_to_asc(p);
  51   1                      for(i=12;i<=16;i++)//纬度分小数部分
  52   1                         {
  53   2                         rdata[i]=*b++;
  54   2                         }
  55   1                      /************************/
C51 COMPILER V7.06   SEND_LLA                                                              11/19/2006 12:35:42 PAGE 2   

  56   1                      rdata[17]=','; 
  57   1                      if (lat_par >=0)
  58   1                              rdata[18]='N'; //北纬
  59   1                      else
  60   1                          rdata[18]='S'; //南纬
  61   1                      //**经度
  62   1                      rdata[19]=',';
  63   1                      /******************************/
  64   1                      if (long_par>=0)
  65   1                              p=long_par;
  66   1                      else
  67   1                              {
  68   2                              p=long_par^0xffffffff;
  69   2                              p+=1;
  70   2                              }
  71   1                      //p=long_par;
  72   1                      temp=p/360000000; //经度 度
  73   1                      rdata[20]=toasc(temp); //百
  74   1                      temp=p/3600000%100;
  75   1      
  76   1                      b=char_to_asc(temp,0);
  77   1                      rdata[21]=*b++;
  78   1                      rdata[22]=*b;
  79   1                      /*****************************/
  80   1                      temp=(p/60000)%60;//经度 分
  81   1                      b=char_to_asc(temp,0);
  82   1                      rdata[23]=*b++;
  83   1                      rdata[24]=*b;
  84   1                      for(i=0;i<4;i++)
  85   1                          long_asc[i]=rdata[i+21];//存取经度ASCII值
  86   1      
  87   1                      rdata[25]='.';
  88   1                      /************************/
  89   1                      b= long_to_asc(p);
  90   1                      for(i=26;i<=30;i++)//经度分小数部分
  91   1                         {
  92   2                         rdata[i]=*b++;
  93   2                         }
  94   1                      rdata[31]=',';
  95   1                      if (long_par >=0)
  96   1                              rdata[32]='E'; //东经
  97   1                      else
  98   1                          rdata[32]='W'; //西经
  99   1                      rdata[33]=',';
 100   1                      /***************高度***********/
 101   1              //      p=high_par/100; //整数部分
 102   1                      if ((high_par&0x80000000)!=0)
 103   1                              {
 104   2                              p=high_par^0xffffffff; //取反
 105   2                              p+=1;rdata[34]='-';}
 106   1                      else
 107   1                          {
 108   2                              p=high_par%1000000;
 109   2                              rdata[34]=toasc(high_par/1000000);
 110   2      
 111   2                              } //取最高位
 112   1                      temp=p/10000; //千百
 113   1                      b=char_to_asc(temp,0);
 114   1                      rdata[35]=*b++;
 115   1                      rdata[36]=*b;
 116   1              temp=p/100%100;//十个
 117   1                      b=char_to_asc(temp,0);
C51 COMPILER V7.06   SEND_LLA                                                              11/19/2006 12:35:42 PAGE 3   

 118   1                      rdata[37]=*b++;
 119   1                      rdata[38]=*b;
 120   1      
 121   1                      rdata[39]='.';
 122   1                      temp=p%100;
 123   1                      b=char_to_asc(temp,0);
 124   1                      rdata[40]=*b++;
 125   1                      rdata[41]=*b;//小数
 126   1      
 127   1                      rdata[42]=0x0d;
 128   1                      rdata[43]=0x0a;
 129   1                      RXLen =44;
 130   1      /****************************存取LLA帧***/
 131   1                  WriteCont(0x02,0x00,rdata,0);
 132   1                  WriteCont(0x02,0x10,rdata,16);
 133   1                  WriteCont(0x02,0x20,rdata,32);
 134   1                  WriteCont(0x02,0x30,rdata,48);
 135   1      /********************************/
 136   1              p=lat_par;
 137   1              for(j=3;j>=0;j--)
 138   1                         {
 139   2                         a[j] =p;
 140   2                         p=p>>8;
 141   2                         }
 142   1                      p=long_par;
 143   1                 for (j=7;j>=4;j--)
 144   1                     {
 145   2                         a[j] =p;
 146   2                         p=p>>8;                 
 147   2                         }
 148   1                 p=high_par;
 149   1                 for (j=11;j>=8;j--)
 150   1                     {
 151   2                         a[j] =p;
 152   2                         p=p>>8;                 
 153   2                         }
 154   1                  WriteCont(0x02,0x90,a,0);
 155   1                      senddsp();      
 156   1              }
 157          


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