📄 main.lst
字号:
220 3 jia_shui();
221 3 display_shuiwei();
222 3 while(Hign_shui<8);
223 3 }
224 2 if(Hign_shui>8)
225 2 {
226 3 jian_shui();
227 3 display_shuiwei11();
228 3 while(Hign_shui>8);
229 3 }
230 2 if(Hign_shui==8) display_shuiwei22();
231 2 break;
232 2 case 9: display_jianzhi();
233 2 clear_disppanel();
234 2 display_shuiwei();
235 2 if(Hign_shui<9)
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 5
236 2 {
237 3 jia_shui();
238 3 display_shuiwei();
239 3 while(Hign_shui<9);
240 3 }
241 2 if(Hign_shui>9)
242 2 {
243 3 jian_shui();
244 3 display_shuiwei11();
245 3 while(Hign_shui>9);
246 3 }
247 2 if(Hign_shui==9) display_shuiwei22();
248 2 break;
249 2
250 2 case 10: display_jianzhi();
251 2 clear_disppanel();
252 2 display_shuiwei();
253 2 if(Hign_shui<10)
254 2 {
255 3 jia_shui();
256 3 display_shuiwei();
257 3 while(Hign_shui<10);
258 3 }
259 2 if(Hign_shui>10)
260 2 {
261 3 jian_shui();
262 3 display_shuiwei11();
263 3 while(Hign_shui>10);
264 3 }
265 2 if(Hign_shui==10) display_shuiwei22();
266 2 break;
267 2 case 11: display_jianzhi();
268 2 clear_disppanel();
269 2 display_shuiwei();
270 2 if(Hign_shui<11)
271 2 {
272 3 jia_shui();
273 3 display_shuiwei();
274 3 while(Hign_shui<11);
275 3 }
276 2 if(Hign_shui>11)
277 2 {
278 3 jian_shui();
279 3 display_shuiwei11();
280 3 while(Hign_shui>11);
281 3 }
282 2 if(Hign_shui==11) display_shuiwei22();
283 2 break;
284 2
285 2 case 12: display_jianzhi();
286 2 clear_disppanel();
287 2 display_shuiwei();
288 2 if(Hign_shui<12)
289 2 {
290 3 jia_shui();
291 3 display_shuiwei();
292 3 while(Hign_shui<12);
293 3 }
294 2 if(Hign_shui>12)
295 2 {
296 3 jian_shui();
297 3 display_shuiwei11();
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 6
298 3 while(Hign_shui>12);
299 3 }
300 2 if(Hign_shui==12) display_shuiwei22();
301 2 break;
302 2
303 2 case 13: display_jianzhi();
304 2 clear_disppanel();
305 2 display_shuiwei();
306 2 if(Hign_shui<13)
307 2 {
308 3 jia_shui();
309 3 display_shuiwei();
310 3 while(Hign_shui<13);
311 3 }
312 2 if(Hign_shui>13)
313 2 {
314 3 jian_shui();
315 3 display_shuiwei11();
316 3 while(Hign_shui>13);
317 3 }
318 2 if(Hign_shui==13) display_shuiwei22();
319 2 break;
320 2 case 14: display_jianzhi();
321 2 clear_disppanel();
322 2 display_shuiwei();
323 2 if(Hign_shui<14)
324 2 {
325 3 jia_shui();
326 3 display_shuiwei();
327 3 while(Hign_shui<14);
328 3 }
329 2 if(Hign_shui>14)
330 2 {
331 3 jian_shui();
332 3 display_shuiwei11();
333 3 while(Hign_shui>14);
334 3 }
335 2 if(Hign_shui==14) display_shuiwei22();
336 2 break;
337 2
338 2 case 15: display_jianzhi();
339 2 clear_disppanel();
340 2 display_shuiwei();
341 2 if(Hign_shui<15)
342 2 {
343 3 jia_shui();
344 3 display_shuiwei();
345 3 while(Hign_shui<15);
346 3 }
347 2 if(Hign_shui>15)
348 2 {
349 3 jian_shui();
350 3 display_shuiwei11();
351 3 while(Hign_shui>15);
352 3 }
353 2 if(Hign_shui==15) display_shuiwei22();
354 2 break;
355 2
356 2 default: //display_jianzhi();
357 2 //delay11(200);
358 2 break;
359 2 }
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 7
360 1 }
361
362 void setto_12864()
363 {
364 1 while(kbscan()!=15)
365 1 {
366 2 key_change_xianshi();
367 2 }
368 1 }
369
370
371
372 main()
373 {
374 1 reset_lcd();
375 1 clear_disppanel();
376 1 while(1)
377 1 {
378 2 reset_lcd();
379 2 Pinlv=get_f();//外部取频率
380 2 pinlv_panduan();//判断频率
381 2 get_Hign();//取对应频率的水的高度
382 2 I2cByteRead_24C64(0xa0,0x00);//从24C64读出水位
383 2 display_shuiwei(); //显示水位
384 2 keyport=0xf0;
385 2 if(keyport-0xf0)//对有按键的处理
386 2 {
387 3 kbscan();
388 3 Hign_shui=get_Hign();
389 3 display_jianzhi();
390 3 setto_12864();
391 3 delay11(2);
392 3 }
393 2 }
394 1 }
395
396 void intt1_time()interrupt 3//T1作为门控时间产生器200US中断一次
397 {
398 1 if (yichu_count>=50000)//50000
399 1 {
400 2 TR0=0;//频率停止计数
401 2 TR1=0;//时间停止计数
402 2 EA=0;//关中断
403 2 count_over=1;
404 2 yichu_count=0;
405 2 return;
406 2 }
407 1 yichu_count=yichu_count+1;
408 1 }
409
410 unsigned long get_f()
411 {
412 1 unsigned long f;
413 1 count_over=0;
414 1 TMOD=0X25;
415 1 TH1=TL1=0X38;//设置T1计数初值,可以100US中断一次
416 1 f_h=TH0=TL0=0;//频率值清零
417 1 count_over=0;//清零计数完成标志
418 1 EA=1;//开所有中断
419 1 ET0=1;
420 1 ET1=1;
421 1 TR0=1;//频率计数器开始计数
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 8
422 1 TR1=1;//时间计数器开始计时
423 1 wait_count_over:
424 1 if(count_over!=1)
425 1 goto wait_count_over;
426 1 f=(TL0+TH0*256+f_h*65535)/5;
427 1 return (f);
428 1 }
429 //******************************测频率子程序*******************/
430 //******************************测频率子程序*******************
431 void intt0_f()interrupt 1//T0作为频率值最高八位,频率值共24位
432 {
433 1 f_h=f_h+1;
434 1 }
435
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2374 ----
CONSTANT SIZE = 444 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 4
IDATA SIZE = ---- 68
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 6 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -