📄 12ad.lst
字号:
131 1 _nop_();_nop_();_nop_();
132 1 _nop_();_nop_();_nop_();
133 1 _nop_();_nop_();_nop_();
134 1 _nop_();_nop_();_nop_();
135 1 _nop_();_nop_();_nop_();
136 1 _nop_();_nop_();_nop_();
137 1 _nop_();_nop_();_nop_();
138 1 _nop_();_nop_();_nop_();
139 1
140 1 _CS=0; //开始取数
141 1 _nop_();_nop_();_nop_();
142 1
143 1 for (i=0;i<2;i++) //取D9,D8
144 1 {
145 2 D_OUT=1;CLOCK=1;
146 2 ah<<=1;
147 2 if (D_OUT) ah|=0x01;
148 2 CLOCK=0;
149 2 }
150 1
151 1 for (i=0;i<8;i++) //取D7--D0
152 1 {
153 2 D_OUT=1;CLOCK=1;
154 2 al<<=1;
155 2 if (D_OUT) al|=0x01;
156 2 CLOCK=0;
157 2 }
158 1 _CS=1;
159 1
160 1 ad=(uint)ah;ad<<=8;ad|=al; //得到AD值
161 1 return (ad);
162 1 }
163
164 /*********第t轮采样子程序****************************/
C51 COMPILER V6.12 12AD 07/28/2005 17:26:06 PAGE 7
165
166 void Getad(uchar t)
167 {
168 1 // char xdata *xdp;
169 1 uchar i,j,k;
170 1 uchar ch=0; //选择读哪一个1543通道
171 1 for(i=0;i<2;i++)
172 1 {
173 2 //if(i==0)
174 2 //xdp=0xfffd; //选4067片子
175 2 //else
176 2 //xdp=0xffbf;
177 2 //else if(i==2) xdp=0xbfff;
178 2 //else xdp=0x7fff;
179 2 k=0;
180 2 for(j=0;j<16;j++)
181 2 {
182 3 //k<<=2; //选4067通道
183 3 if(i==0) P0=k|0x20;
184 3 else P0=k|0x10;
185 3 //_nop_();_nop_();_nop_();//*xdp=k;
186 3 //Read1543(ch);
187 3 adresult[16*i+j][t]=Read1543(ch);
188 3 //k>>=2;
189 3 k++;
190 3 }
191 2 if(i==1)
192 2 {
193 3 //Read1543(0x09);
194 3 adresult[32][t]=Read1543(0x08);
195 3 adresult[33][t]=Read1543(0x09);
196 3 //Read1543(0x0a);
197 3 adresult[34][t]=Read1543(0x0a);
198 3 }
199 2 }
200 1 }
201
202 /**********************排序子程序****************************/
203
204 void Sort(uchar n)
205 {
206 1 uint temp;
207 1 uchar i,j,k;
208 1 for(i=0;i<34;i++) //共34路
209 1 {for(j=0;j<n;j++) //n个数排序
210 2 for(k=0;k<n-j;k++)
211 2 if (adresult[i][k]>adresult[i][k+1])
212 2 {temp=adresult[i][k];adresult[i][k]=adresult[i][k+1];adresult[i][k+1]=temp;}
213 2 }
214 1 }
215
216
217 /***********************平均值滤波子程序*************************/
218
219 void Filter(uchar n)
220 {
221 1 uint sum;
222 1 uchar i,j;
223 1 for(i=0;i<34;i++)
224 1 {
225 2 sum=0;
226 2 for(j=(Times-n)/2;j<=n+1;j++)
C51 COMPILER V6.12 12AD 07/28/2005 17:26:06 PAGE 8
227 2 sum+=adresult[i][j];
228 2 Result[i]=sum/n;
229 2 }
230 1 }
231
232
233 /**************************Delay********************************/
234
235 void Delay(void)
236 {
237 1 uint i;
238 1 for(i=0;i<550;i++);
239 1 }
240 /***********************主程序***********************************/
241
242 main()
243 {
244 1 uchar T;
245 1 Times=10;
246 1 AUXR=AUXR&0xfd;
247 1 AUXR=AUXR|0x01;
248 1
249 1 WriteSR(0x00); //禁止看门狗
250 1 Init();
251 1
252 1 Begin:
253 1 for(T=0;T<Times;T++)
254 1 {Getad(T);
255 2 Delay();
256 2 }
257 1 Sort(Times);
258 1 Filter(6);
259 1 X5045_CS=1;
260 1 _nop_();
261 1 X5045_CS=0;
262 1 _nop_();_nop_();_nop_();
263 1 X5045_CS=1;
264 1 //P0=0x20;
265 1 goto Begin;
266 1
267 1 }
268
C51 COMPILER V6.12 12AD 07/28/2005 17:26:06 PAGE 9
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Read8 (BEGIN)
; SOURCE LINE # 55
; SOURCE LINE # 56
; SOURCE LINE # 58
;---- Variable 'i' assigned to Register 'R7' ----
0000 E4 CLR A
0001 FF MOV R7,A
0002 ?C0001:
; SOURCE LINE # 59
; SOURCE LINE # 60
0002 D292 SETB X5045_SCK
; SOURCE LINE # 61
0004 C292 CLR X5045_SCK
; SOURCE LINE # 62
0006 E500 R MOV A,data_x5045
0008 25E0 ADD A,ACC
000A F500 R MOV data_x5045,A
; SOURCE LINE # 63
000C A291 MOV C,X5045_SO
000E 9200 R MOV x5045_data0,C
; SOURCE LINE # 64
0010 0F INC R7
0011 BF08EE CJNE R7,#08H,?C0001
0014 ?C0002:
; SOURCE LINE # 65
0014 AF00 R MOV R7,data_x5045
; SOURCE LINE # 66
0016 ?C0004:
0016 22 RET
; FUNCTION Read8 (END)
; FUNCTION _Write8 (BEGIN)
;---- Variable 'cData' assigned to Register 'R7' ----
; SOURCE LINE # 70
; SOURCE LINE # 71
; SOURCE LINE # 73
0000 8F00 R MOV data_x5045,R7
; SOURCE LINE # 74
;---- Variable 'i' assigned to Register 'R7' ----
0002 E4 CLR A
0003 FF MOV R7,A
0004 ?C0005:
; SOURCE LINE # 75
; SOURCE LINE # 76
0004 C292 CLR X5045_SCK
; SOURCE LINE # 77
0006 A200 R MOV C,x5045_data7
0008 9293 MOV X5045_SI,C
; SOURCE LINE # 78
000A D292 SETB X5045_SCK
; SOURCE LINE # 79
000C E500 R MOV A,data_x5045
000E 25E0 ADD A,ACC
0010 F500 R MOV data_x5045,A
; SOURCE LINE # 80
0012 0F INC R7
0013 BF08EE CJNE R7,#08H,?C0005
; SOURCE LINE # 81
0016 ?C0008:
C51 COMPILER V6.12 12AD 07/28/2005 17:26:06 PAGE 10
0016 22 RET
; FUNCTION _Write8 (END)
; FUNCTION ReadSR (BEGIN)
; SOURCE LINE # 85
; SOURCE LINE # 86
; SOURCE LINE # 88
0000 C290 CLR X5045_CS
; SOURCE LINE # 89
0002 7F05 MOV R7,#05H
0004 120000 R LCALL _Write8
; SOURCE LINE # 90
0007 120000 R LCALL Read8
;---- Variable 'cData' assigned to Register 'R7' ----
; SOURCE LINE # 91
000A D290 SETB X5045_CS
; SOURCE LINE # 92
; SOURCE LINE # 93
000C ?C0009:
000C 22 RET
; FUNCTION ReadSR (END)
; FUNCTION _WriteSR (BEGIN)
;---- Variable 'cData' assigned to Register 'R6' ----
0000 AE07 MOV R6,AR7
; SOURCE LINE # 97
; SOURCE LINE # 98
0002 ?C0010:
; SOURCE LINE # 99
0002 120000 R LCALL ReadSR
0005 EF MOV A,R7
0006 20E0F9 JB ACC.0,?C0010
0009 ?C0011:
; SOURCE LINE # 100
0009 C290 CLR X5045_CS
; SOURCE LINE # 101
000B 7F06 MOV R7,#06H
000D 120000 R LCALL _Write8
; SOURCE LINE # 102
0010 D290 SETB X5045_CS
; SOURCE LINE # 103
0012 C290 CLR X5045_CS
; SOURCE LINE # 104
0014 7F01 MOV R7,#01H
0016 120000 R LCALL _Write8
; SOURCE LINE # 105
0019 AF06 MOV R7,AR6
001B 120000 R LCALL _Write8
; SOURCE LINE # 106
001E D290 SETB X5045_CS
; SOURCE LINE # 107
0020 22 RET
; FUNCTION _WriteSR (END)
; FUNCTION _Read1543 (BEGIN)
;---- Variable 'port' assigned to Register 'R7' ----
; SOURCE LINE # 112
; SOURCE LINE # 113
; SOURCE LINE # 115
;---- Variable 'al' assigned to Register 'R5' ----
0000 E4 CLR A
0001 FD MOV R5,A
C51 COMPILER V6.12 12AD 07/28/2005 17:26:06 PAGE 11
;---- Variable 'ah' assigned to Register 'R6' ----
0002 FE MOV R6,A
; SOURCE LINE # 117
0003 C2A7 CLR CLOCK
0005 C2A2 CLR _CS
; SOURCE LINE # 118
0007 EF MOV A,R7
0008 C4 SWAP A
0009 54F0 ANL A,#0F0H
000B FF MOV R7,A
; SOURCE LINE # 119
;---- Variable 'i' assigned to Register 'R2/R3' ----
000C E4 CLR A
000D FB MOV R3,A
000E FA MOV R2,A
000F ?C0013:
; SOURCE LINE # 120
; SOURCE LINE # 121
000F EF MOV A,R7
0010 33 RLC A
0011 92A6 MOV D_IN,C
0013 D2A7 SETB CLOCK
0015 C2A7 CLR CLOCK
; SOURCE LINE # 122
0017 EF MOV A,R7
0018 25E0 ADD A,ACC
001A FF MOV R7,A
; SOURCE LINE # 123
001B 0B INC R3
001C BB0001 CJNE R3,#00H,?C0065
001F 0A INC R2
0020 ?C0065:
0020 EB MOV A,R3
0021 6404 XRL A,#04H
0023 4A ORL A,R2
0024 70E9 JNZ ?C0013
0026 ?C0014:
; SOURCE LINE # 124
0026 E4 CLR A
0027 FA MOV R2,A
0028 FB MOV R3,A
0029 ?C0016:
; SOURCE LINE # 125
; SOURCE LINE # 126
0029 D2A7 SETB CLOCK
002B C2A7 CLR CLOCK
; SOURCE LINE # 127
002D 0B INC R3
002E BB0001 CJNE R3,#00H,?C0066
0031 0A INC R2
0032 ?C0066:
0032 EB MOV A,R3
0033 6406 XRL A,#06H
0035 4A ORL A,R2
0036 70F1 JNZ ?C0016
0038 ?C0017:
; SOURCE LINE # 129
0038 D2A2 SETB _CS
; SOURCE LINE # 131
003A 00 NOP
003B 00 NOP
003C 00 NOP
C51 COMPILER V6.12 12AD 07/28/2005 17:26:06 PAGE 12
; SOURCE LINE # 132
003D 00 NOP
003E 00 NOP
003F 00 NOP
; SOURCE LINE # 133
0040 00 NOP
0041 00 NOP
0042 00 NOP
; SOURCE LINE # 134
0043 00 NOP
0044 00 NOP
0045 00 NOP
; SOURCE LINE # 135
0046 00 NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -