📄 jiujing.lst
字号:
C51 COMPILER V6.12 JIUJING 11/09/2005 14:43:16 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE JIUJING
OBJECT MODULE PLACED IN .\JIUJING.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\JIUJING.C DEBUG OBJECTEXTEND
stmt level source
1
2 #include<reg51.h>
3 #include<math.h>
4 #include<absacc.h>
5 #include"jiujing.h"
6
7 /*********************************************************************************************************
-/
8 void main ()
9 {
10 1 init();
11 1 CLRDOG=!CLRDOG;
12 1 EA = 1;
13 1 IT1 = 1;
14 1 EX0 = 1;
15 1 while(TIME_counter<=2000)
16 1
17 1 while(1)
18 1 {
19 2 Sampling_DC();
20 2 delay_time(10);
21 2 CLRDOG=!CLRDOG;
22 2 switch (LED)
23 2 {
24 3 case 0:
25 3 {
26 4 P1 = 0Xff;
27 4 LED9 = 1;
28 4 LED10 = 1;
29 4 }break;
30 3 case 1:
31 3 {
32 4 P1 =0Xfe;
33 4 LED9 = 1;
34 4 LED10 = 1;
35 4 delay_time(200);
36 4 P1 = 0Xff;
37 4 }break;
38 3 case 2:
39 3 {
40 4 P1 =0Xfc;
41 4 LED9 = 1;
42 4 LED10 = 1;
43 4 delay_time(200);
44 4 P1 = 0Xff;
45 4 }break;
46 3 case 3:
47 3 {
48 4 P1 =0Xf8;
49 4 LED9 = 1;
50 4 LED10 = 1;
51 4 delay_time(200);
52 4 P1 = 0Xff;
53 4 }break;
54 3 case 4:
C51 COMPILER V6.12 JIUJING 11/09/2005 14:43:16 PAGE 2
55 3 {
56 4 P1 =0Xf0;
57 4 LED9 = 1;
58 4 LED10 = 1;
59 4 delay_time(200);
60 4 P1 = 0Xff;
61 4 }
62 3 case 5:
63 3 {
64 4 P1 =0Xe0;
65 4 LED9 = 1;
66 4 LED10 = 1;
67 4 delay_time(200);
68 4 P1 = 0Xff;
69 4 }break;
70 3 case 6:
71 3 {
72 4 P1 =0Xc0;
73 4 LED9 = 1;
74 4 LED10 = 1;
75 4 delay_time(200);
76 4 P1 = 0Xff;
77 4 }break;
78 3 case 7:
79 3 {
80 4 P1 =0X80;
81 4 LED9 = 1;
82 4 LED10 = 1;
83 4 delay_time(200);
84 4 P1 = 0Xff;
85 4 }break;
86 3 case 8:
87 3 {
88 4 P1 =0X00;
89 4 LED9 = 1;
90 4 LED10 = 1;
91 4 delay_time(200);
92 4 P1 = 0Xff;
93 4 }break;
94 3 case 9:
95 3 {
96 4 P1 =0X00;
97 4 LED9 = 0;
98 4 LED10 = 1;
99 4 delay_time(200);
100 4 P1 = 0Xff;
101 4 LED9 = 1;
102 4 }break;
103 3 case 10:
104 3 {
105 4 P1 =0X00;
106 4 LED9 = 0;
107 4 LED10 = 0;
108 4 delay_time(200);
109 4 P1 = 0Xff;
110 4 LED9 = 1;
111 4 LED10 = 1;
112 4 }break;
113 3 default:break;
114 3 }
115 2 if(RXD_REDAY==1)
116 2 {
C51 COMPILER V6.12 JIUJING 11/09/2005 14:43:16 PAGE 3
117 3 if(TIME_counter>255)
118 3 {
119 4 send(0x1b);
120 4 send(23);
121 4 RXD_REDAY = 0;
122 4 }
123 3 send_comm();
124 3 RXD_REDAY = 0;
125 3 }
126 2 }
127 1 }
128
129 /****************************************************************************************************/
130
131 void init()
132 {
133 1 P0 = 0Xff;
134 1 P1 = 0Xff;
135 1 P2 = 0Xff;
136 1
137 1 init_comm();
138 1
139 1 TH0 = 0Xfb;
140 1 TL0 = 0X80;
141 1
142 1 ET0=1;
143 1 PX0=1;
144 1 return;
145 1
146 1
147 1 }
148 /**************************************************************************************************/
149
150 void Int0() interrupt 0 using 0
151 {
152 1 EX0 = 0;
153 1 END = 1;
154 1 EX0 = 1;
155 1 return;
156 1 }
157 /*************************************************************************************************/
158
159 void Timer0() interrupt 1 using 1
160 {
161 1 TH0 = 0X15;
162 1 CLRDOG=!CLRDOG;
163 1 TL0 = 0xa0;
164 1 TIME_counter++;
165 1 return;
166 1 }
167
168 /******************************************************************************************************/
169 uint Ad574(void)
170 {
171 1 uint ad;
172 1 uint Adh,Adl;
173 1 END =0;
174 1 STARTAD574 = 0;
175 1 //while(!END);
176 1
177 1 Adh = AD574H;
178 1 Adl = AD574L;
C51 COMPILER V6.12 JIUJING 11/09/2005 14:43:16 PAGE 4
179 1 Adh<<=4;
180 1 Adl<<=4;
181 1 ad = Adh|Adl;
182 1 return(ad);
183 1 }
184
185 /***************************************************************************************************/
186 void delay_time(uint k)
187 {
188 1 uchar m,n;
189 1 for( m=0;m<k;m++)
190 1 {
191 2 for(n=0;n<255;n++)
192 2 {
193 3 }
194 2 }
195 1 }
196 /******************************************************************************************************/
197 void init_comm()
198 {
199 1 TMOD = 0X21;
200 1 TH1 = 0Xfd;
201 1 TL1 = 0Xfd;
202 1 PCON = PCON&0X7f;
203 1 SCON =0X40;
204 1 REN =1;
205 1 TR1 = 1;
206 1 ES = 1;
207 1 return;
208 1 }
209 /*************************************************************************************************/
210 void serial() interrupt 4 using 3
211 {
212 1 uchar RXD_buf;
213 1 ES =0;
214 1 RXD_buf = SBUF;
215 1 switch (RXD_number)
216 1 {
217 2 case 0: if(RXD_buf == 0X1b)
218 2 {
219 3 RXD_REDAY =1;
220 3 RXD_number++;
221 3 }
222 2 else
223 2 {
224 3 RXD_number = 0;
225 3 }break;
226 2
227 2 case 1: if((RXD_buf >= 1)&&(RXD_buf<=255))
228 2 {
229 3 TIME_counter = RXD_buf;
230 3 RXD_number = 0;
231 3 }
232 2 else
233 2 {
234 3 RXD_number = 0;
235 3 TIME_counter = 200;
236 3 }break;
237 2 default:break;
238 2 }
239 1 RI = 0;
240 1 ES = 1;
C51 COMPILER V6.12 JIUJING 11/09/2005 14:43:16 PAGE 5
241 1 return;
242 1 }
243 /****************************************************************************************************/
244
245 void send(uchar i)
246 {
247 1 SBUF =i;
248 1 while(!TI);
249 1 TI = 0;
250 1 return;
251 1 }
252 /***************************************************************************************************/
253 void send_comm()
254 {
255 1 uchar message;
256 1 message = 0X1b;
257 1 send(message);
258 1 message = LED;
259 1 send(message);
260 1 return;
261 1 }
262
263
264 /******************************************************************************************************/
265 void Sampling_DC(void)
266 {
267 1 uchar i;
268 1 int value, r,big[2] = 0,sml = 4096;
269 1 DC_END= 0;
270 1 while(!DC_END)
271 1 {
272 2 for(i=0;i<2;i++)
273 2 {
274 3 r=Ad574();
275 3 if( r >= big[i]){ big[i] = r;}
276 3 if( r >= sml)
277 3 {
278 4 DC_END=1;
279 4 big[0] = big[1];
280 4 }
281 3 delay_time(10);
282 3 }
283 2 if(big[1]<=big[0])
284 2 {
285 3 DC_END = 1;
286 3 }
287 2 }
288 1 value = big[0];
289 1 if((value>0)&&(value<=409))
290 1 {
291 2 LED=1;
292 2 }
293 1
294 1 if((value>409)&&(value<=818))
295 1 {
296 2 LED=2;
297 2 }
298 1
299 1 if((value>818)&&(value<=1227))
300 1 {
301 2 LED=3;
302 2 }
C51 COMPILER V6.12 JIUJING 11/09/2005 14:43:16 PAGE 6
303 1
304 1 if((value>1227)&&(value<=1636))
305 1 {
306 2 LED=4;
307 2 }
308 1
309 1 if((value>1636)&&(value<=2045))
310 1 {
311 2 LED=5;
312 2 }
313 1
314 1 if((value>2045)&&(value<=2454))
315 1 {
316 2 LED=6;
317 2 }
318 1
319 1 if((value>2454)&&(value<=2863))
320 1 {
321 2 LED=7;
322 2 }
323 1
324 1 if((value>2863)&&(value<=3272))
325 1 {
326 2 LED=8;
327 2 }
328 1
329 1 if((value>3272)&&(value<=3681))
330 1 {
331 2 LED=9;
332 2 }
333 1
334 1 if((value>3681)&&(value<=4096))
335 1 {
336 2 LED=10;
337 2 }
338 1 else
339 1 {
340 2 LED =0;
341 2 }
342 1 return;
343 1 }
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 904 ----
CONSTANT SIZE = 4 ----
XDATA SIZE = ---- ----
C51 COMPILER V6.12 JIUJING 11/09/2005 14:43:16 PAGE 7
PDATA SIZE = ---- ----
DATA SIZE = 4 6
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -