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

📄 weight.lst

📁 RM0038红外传感器接收电视机摇控的源码
💻 LST
字号:
C51 COMPILER V7.00  WEIGHT                                                                 07/18/2007 12:16:50 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE WEIGHT
OBJECT MODULE PLACED IN Weight.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Weight.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "Weight.h"
   2          #include "CS5460A.h"
   3          #include "Math.h"
   4          
   5          #define StateIO StateIO_4
   6          #define m_bStabilization m_bStabilization_4
   7          char bdata StateIO _at_ 0x20;
   8          sbit m_bStabilization = StateIO^0;
   9          
  10          #define COUNT_WEIGHT 30
  11          xdata long lWeightList[COUNT_WEIGHT];
  12          xdata uchar listi = 0;
  13          xdata long lWeight = 0;
  14          xdata uchar AvgCount = 0;
  15          xdata long lCountWeight;
  16          xdata long lTemp;
  17          xdata float g_xScale = 30;
  18          //上一次称重值
  19          xdata long g_lPrvWeight = 0;
  20          //零位值
  21          xdata long g_lZero = 0;
  22          //上一个真实重量值,包括零位
  23          xdata long g_lTrueWeight = 0;
  24          bit bZero;
  25          
  26          long Weight(void)
  27          {
  28   1              static DWORD dPrvConversionTime = 0;
  29   1              uchar i;
  30   1              while((GetTickCount() - dPrvConversionTime) < 100);
  31   1              {
  32   2                      dPrvConversionTime = GetTickCount();
  33   2                      lWeight = GetWeight();
  34   2      
  35   2                      lWeightList[listi] = lWeight;
  36   2                      listi++;
  37   2                      
  38   2                      if(listi > AvgCount)
  39   2                      {
  40   3                              AvgCount = listi;
  41   3                      }
  42   2                      if(listi >= COUNT_WEIGHT)
  43   2                      {
  44   3                              listi = 0;
  45   3                      }
  46   2                      lCountWeight = 0;
  47   2                      for(i = 0; i < AvgCount; i++)
  48   2                      {
  49   3                              lCountWeight += lWeightList[i];
  50   3                      }
  51   2                      
  52   2                      if(AvgCount > 5)
  53   2                      {
  54   3                              //去掉一个最大值
  55   3                              for(i = 0; i < AvgCount; i++)
C51 COMPILER V7.00  WEIGHT                                                                 07/18/2007 12:16:50 PAGE 2   

  56   3                              {
  57   4                                      if(lWeightList[i] > lTemp)
  58   4                                              lTemp = lWeightList[i];
  59   4                              }
  60   3                              if(lWeight == lTemp)//最大值是我
  61   3                              {
  62   4                                      bZero = 0;
  63   4                              }
  64   3                              lCountWeight -= lTemp;
  65   3              
  66   3                              //去掉一个最小值
  67   3                              for(i = 0; i < AvgCount; i++)
  68   3                              {
  69   4                                      if(lWeightList[i] < lTemp)
  70   4                                              lTemp = lWeightList[i];
  71   4                              }
  72   3                              if(lWeight == lTemp)//最小值是我
  73   3                              {
  74   4                                      bZero = 0;
  75   4                              }
  76   3                              lCountWeight -= lTemp;
  77   3                              lCountWeight /= (AvgCount - 2);
  78   3      
  79   3                              m_bStabilization = 1;
  80   3                      }else
  81   2                      {
  82   3                              m_bStabilization = 0;
  83   3                              lCountWeight /= AvgCount;
  84   3                      }
  85   2                      
  86   2                      if(AvgCount > 3)
  87   2                      {
  88   3                              lTemp = (lCountWeight - g_lZero)/g_xScale;
  89   3                              if((labs(g_lPrvWeight - lTemp) > 5/*uLbbuf[sEprom.uLb]*/))
  90   3                              {
  91   4                                      lWeightList[0] = lWeight;
  92   4                                      for(i = 1; i < COUNT_WEIGHT; i++)
  93   4                                      {
  94   5                                              lWeightList[i] = 0;
  95   5                                      }
  96   4                                      AvgCount = listi = 1;
  97   4                              }
  98   3                              g_lPrvWeight = lTemp;
  99   3                      }
 100   2                      g_lTrueWeight = lCountWeight;
 101   2      
 102   2                      lCountWeight = lCountWeight - g_lZero;
 103   2                      lCountWeight /= g_xScale;
 104   2              }
 105   1              return lCountWeight;
 106   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1049    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    150    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.

C51 COMPILER V7.00  WEIGHT                                                                 07/18/2007 12:16:50 PAGE 3   


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

⌨️ 快捷键说明

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