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

📄 filter.lst

📁 在STC51上开发的一个电子称程序 KEILUV3环境开发
💻 LST
字号:
C51 COMPILER V8.02   FILTER                                                                03/31/2008 17:24:47 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE FILTER
OBJECT MODULE PLACED IN filter.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE filter.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "hardware.h"
   2          #include "uart.h"
   3          #include "lcd1621.h"
   4          
   5          extern ulong ReadCs5460 (uchar command_);
   6          
   7          
   8          ulong GetCode(void)
   9          {
  10   1      ulong idata sum1=0;
  11   1      sum1=ReadCs5460(0x0e);
  12   1      return (sum1);
  13   1      }
  14          //去极值平均
  15          ulong GetAvr(void)
  16          {
  17   1      uchar idata i,j,k,cnt1;
  18   1      ulong idata data2,temp;
  19   1      ulong idata data1[10];
  20   1      for(i=0;i<10;i++)
  21   1        {
  22   2        data1[i]=GetCode();
  23   2        }
  24   1      for(j=0;j<10;j++)
  25   1          {
  26   2              for(k=0;k<10-j;k++)
  27   2                {
  28   3                if(data1[k]>data1[k+1])
  29   3                  {
  30   4                      temp=data1[k];
  31   4                      data1[k]=data1[k+1];
  32   4                      data1[k+1]=temp;
  33   4                      }
  34   3                }
  35   2              }
  36   1        for(cnt1=1;cnt1<9;cnt1++)
  37   1          {
  38   2              data2+=data1[cnt1];
  39   2              }
  40   1        data2/=8;
  41   1        return data2;
  42   1      }         
  43          
  44          //滑动分组滤波
  45          #define N  16
  46          ulong PushOut()
  47          {
  48   1              ulong idata value_buf[N];
  49   1              uchar i=0;
  50   1              uchar count;
  51   1              ulong sum=0;
  52   1              value_buf[i++]=GetAvr();
  53   1              if(i == N)
  54   1              i = 0;
  55   1              for( count=0;count<N;count++)
C51 COMPILER V8.02   FILTER                                                                03/31/2008 17:24:47 PAGE 2   

  56   1              sum += value_buf[count];
  57   1              sum /= N;
  58   1              return sum;
  59   1      }
  60          
  61          //得到滤波后AD值
  62          void GetResult()
  63          {
  64   1      
  65   1        ulong result;
  66   1        //ulong zzz=0;
  67   1        result = PushOut();
  68   1        //result-= 2344;
  69   1        //result = result*500/2725;
  70   1        DispResult(result);
  71   1        ShowK();
  72   1        //ShowG();
  73   1        //ShowHi();
  74   1        Prints("G.W.  : ");
  75   1        PrintResult(result);
  76   1        Prints(" Kg");
  77   1        Prints("\r\n");
  78   1        //PrintEnter();
  79   1        /*
  80   1        delay10ms();
  81   1        xxxz[0] = (result / 65536);
  82   1        xxxz[1] = (result % 65536 / 256);
  83   1        xxxz[2] = (result % 256);
  84   1        Write24c02(xxxz,0x01,3);
  85   1        delay10ms();
  86   1        Read24c02(xxxz,0x01,3);
  87   1        zzz = (xxxz[0]*65536 + xxxz[1]*256 + xxxz[2]);
  88   1        PrintEnter();
  89   1        PrintEnter();
  90   1        PrintResult(zzz);
  91   1        PrintEnter(); PrintEnter(); PrintEnter();
  92   1        */
  93   1      }
  94          /*
  95          void  GetResult(void)
  96          {
  97            ulong idata data_record[8];
  98            ulong idata data_temp[8];
  99            uchar idata i;
 100            uchar idata j;
 101            ulong temp;
 102            ulong temp1;
 103            uchar count;
 104            uchar cnt1;
 105            uchar cnt2;
 106            ulong sum_record=0;
 107            ulong sum_temp=0;
 108          
 109          temp=GetAvr();  //取第一个平均值
 110          for(count=0;count<8;count++)
 111              {
 112                   temp1=GetAvr();
 113             if(temp1!=temp)
 114                   {
 115                    data_temp[i++]=temp1;  //有变化存临时组
 116                    if(i==4)                               //临时组滑动滤波
 117                          {i=0;}
C51 COMPILER V8.02   FILTER                                                                03/31/2008 17:24:47 PAGE 3   

 118                    for(cnt1=0;cnt1<4;cnt1++)
 119                          sum_temp+=data_temp[cnt1];
 120                          DispResult((ulong)(sum_temp/4));
 121                    temp1=0;
 122                     }
 123             else data_record[j++]=temp1; //无变化存现有组
 124                      if(j==4)                            //现有组滑动滤波
 125                            {j=0;}
 126                          for(cnt2=0;cnt2<4;cnt2++)
 127                            sum_record+=data_record[cnt2];
 128                            DispResult((ulong)(sum_record/4)); 
 129                          temp1=0;
 130              }
 131          
 132            }*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    415    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       9
   IDATA SIZE       =   ----     120
   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 + -