calc.lst

来自「本文件提供各种驱动程序和汇编代码,包括温度芯片驱动等等.」· LST 代码 · 共 235 行

LST
235
字号
C51 COMPILER V7.01  CALC                                                                   06/20/2004 22:31:27 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE CALC
OBJECT MODULE PLACED IN calc.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE calc.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //**********************************************************************
   2          //功能          : 二分法查表程序
   3          //作者          : lihj
   4          //创建日期      : 2004-06-20
   5          //版本          : V1.0
   6          //修改记录      :
   7          //***********************************************************************
   8          #define TMP_STEP        10      //温度放大倍数
   9          
  10          //电阻值放大100倍
  11          //PT100阻值--温度表;
  12          code unsigned int PT100[501]=
  13          {
  14                  //1852,1938,2025,2111,2197,             //pt100,table from -200to 0
  15                  //2283,2368,2454,2539,2624,
  16                  //2710,2795,2880,2964,3049,
  17                  //3134,3218,3302,3386,3470,
  18                  //3554,3638,3722,3805,3889,
  19                  3972,4056,4139,4222,4305,
  20                  4388,4470,4553,4636,4718,
  21                  4800,4883,4965,5047,5129,
  22                  5211,5293,5375,5456,5538,
  23                  5619,5701,5782,5863,5944,
  24                  6026,6107,6188,6268,6349,
  25                  6430,6511,6591,6672,6752,
  26                  6833,6913,6993,7073,7153,
  27                  7233,7313,7393,7473,7553,
  28                  7633,7712,7792,7872,7951,
  29                  8031,8110,8189,8269,8348,
  30                  8427,8506,8585,8664,8743,
  31                  8822,8901,8980,9059,9137,
  32                  9216,9295,9373,9452,9530,
  33                  9609,9687,9765,9844,9922,
  34                  
  35                  10000,10078,10156,10234,10312,  //pt100,table from 0to 850
  36                  10390,10468,10546,10624,10702,
  37                  10779,10857,10935,11012,11090,
  38                  11167,11245,11322,11400,11477,
  39                  11554,11631,11708,11786,11863,
  40                  11940,12017,12094,12171,12247,
  41                  12324,12401,12478,12554,12631,
  42                  12708,12784,12861,12937,13013,
  43                  13090,13166,13242,13318,13395,
  44                  13471,13547,13623,13699,13775,
  45                  13851,13926,14002,14078,14154,
  46                  14229,14305,14380,14456,14531,
  47                  14607,14682,14757,14833,14908,
  48                  14983,15058,15133,15208,15283,
  49                  15358,15433,15508,15583,15658,
  50                  15733,15807,15882,15956,16031,
  51                  16105,16180,16254,16329,16403,
  52                  16477,16551,16626,16700,16774,
  53                  16848,16922,16996,17070,17143,
  54                  17217,17291,17365,17438,17512,
  55                  17586,17659,17733,17806,17879,
C51 COMPILER V7.01  CALC                                                                   06/20/2004 22:31:27 PAGE 2   

  56                  17953,18026,18099,18172,18246,
  57                  18319,18392,18465,18538,18611,
  58                  18684,18756,18829,18902,18975,
  59                  19047,19120,19192,19265,19337,
  60                  19410,19482,19555,19627,19699,
  61                  19771,19843,19915,19987,20059,
  62                  20131,20203,20275,20347,20419,
  63                  20490,20562,20634,20705,20777,
  64                  20848,20920,20991,21063,21134,
  65                  21205,21276,21348,21419,21490,
  66                  21561,21632,21703,21774,21844,
  67                  21915,21986,22057,22127,22198,
  68                  22268,22339,22409,22480,22550,
  69                  22621,22691,22761,22831,22902,
  70                  22972,23042,23112,23182,23252,
  71                  23321,23391,23461,23531,23600,
  72                  23670,23740,23809,23879,23948,
  73                  24018,24087,24156,24226,24295,
  74                  24364,24433,24502,24571,24640,
  75                  24709,24778,24847,24916,24985,
  76                  25053,25122,25191,25259,25328,
  77                  25396,25465,25533,25601,25670,
  78                  25738,25806,25874,25942,26010,
  79                  26078,26146,26214,26282,26350,
  80                  26418,26486,26553,26621,26689,
  81                  26756,26824,26891,26959,27026,
  82                  27093,27161,27228,27295,27362,
  83                  27429,27496,27563,27630,27697,
  84                  27764,27831,27898,27964,28031,
  85                  28098,28164,28231,28297,28364,
  86                  28430,28497,28563,28629,28695,
  87                  28762,28828,28894,28960,29026,
  88                  29092,29158,29224,29289,29355,
  89                  29421,29486,29552,29618,29683,
  90                  29749,29814,29880,29945,30010,
  91                  30075,30141,30206,30271,30336,
  92                  30401,30466,30531,30596,30661,
  93                  30725,30790,30855,30920,30984,
  94                  31049,31113,31178,31242,31306,
  95                  31371,31435,31499,31564,31628,
  96                  31692,31756,31820,31884,31948,
  97                  32012,32075,32139,32203,32267,
  98                  32330,32394,32457,32521,32584,
  99                  32648,32711,32774,32838,32901,
 100                  32964,33027,33090,33153,33216,
 101                  33279,33342,33405,33468,33530,
 102                  33593,33656,33718,33781,33844,
 103                  33906,33969,34031,34093,34156,
 104                  34218,34280,34342,34404,34466,
 105                  34528,34590,34652,34714,34776,
 106                  34838,34899,34961,35023,35084,
 107                  35146,35208,35269,35330,35392,
 108                  35453,35514,35576,35637,35698,
 109                  35759,35820,35881,35942,36003,
 110                  36064,36125,36185,36246,36307,
 111                  36367,36428,36489,36549,36610,
 112                  36670,36730,36791,36851,36911,
 113                  36971,37031,37091,37151,37211,
 114                  37271,37331,37391,37451,37511,
 115                  37570,37630,37690,37749,37809,
 116                  37868,37928,37987,38046,38106,
 117                  38165,38224,38283,38342,38401,
C51 COMPILER V7.01  CALC                                                                   06/20/2004 22:31:27 PAGE 3   

 118                  38460,38519,38578,38637,38696,
 119                  38755,38814,38872,38931,38990,
 120                  39048
 121          };
 122                   
 123          //Cu-50
 124          //温度范围:-50~150
 125          code unsigned int Rcu[101]=                             
 126          {
 127                  3924,3967,4010,4054,4097,
 128                  4140,4183,4227,4269,4312,
 129                  4355,4398,4441,4484,4527,
 130                  4570,4613,4656,4699,4742,
 131                  4785,4828,4871,4914,4957,
 132                  5000,5043,5086,5128,5171,
 133                  5214,5257,5300,5343,5386,
 134                  5428,5471,5514,5557,5600,
 135                  5642,5685,5728,5771,5814,
 136                  5856,5899,5942,5985,6027,
 137                  6070,6113,6156,6198,6241,
 138                  6284,6327,6370,6412,6455,
 139                  6498,6541,6583,6626,6669,
 140                  6712,6754,6797,6840,6883,
 141                  6926,6968,7011,7054,7097,
 142                  7140,7183,7225,7268,7311,
 143                  7354,7397,7440,7483,7526,
 144                  7568,7611,7654,7697,7740,
 145                  7783,7826,7869,7912,7955,
 146                  7998,8041,8084,8127,8170,
 147                  8213
 148          };
 149          
 150          //函数功能:通过查表计算温度值
 151          //输入参数:<r_value>   :电阻值,放大100倍
 152          //          <pTable>    :温度-电阻值表格(ITS-90)指针
 153          //          <length>    : 表格大小
 154          //          <down_lim>  :温度量程下限
 155          //          <up_lim>    :温度量程上限
 156          //输出参数:温度值,放大10倍
 157          int CacTemp(unsigned int r_value, unsigned int *pTable, unsigned int length, int down_lim,int up_lim)
 158          {
 159   1              int temp,j=0;
 160   1              unsigned int k1,k2;
 161   1              unsigned char k;
 162   1      
 163   1              //电阻值限幅
 164   1              if(r_value <= *pTable)
 165   1              {
 166   2                      return down_lim*TMP_STEP;
 167   2              }
 168   1              else if(r_value >= *(pTable+length-1))
 169   1              {
 170   2                      return up_lim*TMP_STEP;
 171   2              }
 172   1              
 173   1              //二分法查表
 174   1              k1 = length;
 175   1              k2 = 0;
 176   1              for(k=0;k<12;k++)
 177   1              {
 178   2                      j = (k1 + k2)>>1;
 179   2                      if(r_value < *(pTable+j))
C51 COMPILER V7.01  CALC                                                                   06/20/2004 22:31:27 PAGE 4   

 180   2                      {
 181   3                              k1 = j;                 //修改上限
 182   3                              if(r_value >= *(pTable + j - 1)) 
 183   3                              {
 184   4                                      pTable = pTable + j;
 185   4                                      j --;
 186   4                                      break;  
 187   4                              }
 188   3                      }
 189   2                      else
 190   2                      {
 191   3                              k2 = j;                 //修改下限
 192   3                              if(r_value < *(pTable + j + 1))
 193   3                              {
 194   4                                      pTable = pTable + j + 1;
 195   4                                      break;
 196   4                              }
 197   3                      }
 198   2              }
 199   1      
 200   1              j = j*2 + down_lim;
 201   1              temp = j*TMP_STEP + (unsigned long)(r_value - *(pTable-1))*2*TMP_STEP/(*pTable - *(pTable-1));
 202   1              
 203   1              return temp;
 204   1      }
 205          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    399    ----
   CONSTANT SIZE    =   1204    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      17
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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