📄 filter.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 + -