📄 water.lst
字号:
287 2 CX = 0x88;
288 2 halfLineCnt = 32;
289 2 }
290 1 lcdPosX = CX + CY;
291 1
292 1 for (; halfLineCnt != 0; halfLineCnt--)
293 1 {
294 2 basicBlock = width;
295 2 wrPosition();
296 2
297 2 for (;basicBlock != 0; basicBlock--)
298 2 {
299 3 if (halfLineCnt > 16)
300 3 {
301 4 LCD_SendData(0x00);
302 4 }
303 3 else
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 6
304 3 {
305 4 LCD_SendData (0xff);
306 4 }
307 3 }
308 2 lcdPosY++;
309 2 }
310 1
311 1 LCD_SendComm(SFunDrawOn);
312 1 LCD_SendComm(SFunSetB);
313 1
314 1 }
315
316 //---------------------------------------------------------
317 //函数原形:void lcd_LineChoose (uchar line)
318 //函数功能:选中某行反白显示
319 //输入参数:
320 //返回值 :
321 //---------------------------------------------------------
322
323 void lcd_LineChoose (uchar line)
324 {
325 1 if (line<4)
326 1 {
327 2 lcd_ConvertChar(line,0,16);
328 2 Set_Cursor(line,7);
329 2 }
330 1
331 1 }
332
333
334
335
336
337 //初始化
338 void LCD_init(void)
339 {
340 1 SCS=0;
341 1 lcd_DelayMs(30);
342 1 SCS=1;
343 1 SCS=1;
344 1 SCLK=0;
345 1 lcd_DelayMs(40);
346 1 LCD_SendComm(SFunSetE); //功能设置,一次送8位数据,基本指令集
347 1 delay(300);
348 1 LCD_SendComm(SFunSetB); //功能设置,一次送8位数据,基本指令集
349 1 delay(300);
350 1 LCD_SendComm(SDispOn); //0000,1100 整体显示,游标off,游标位置off
351 1 delay(300);
352 1 LCD_SendComm(SClear); //0000,0001 清DDRAM
353 1 delay(300);
354 1 lcd_DelayMs(1);
355 1 LCD_SendComm(SEntryMode); //0000,0010 DDRAM地址归位
356 1 lcd_DelayMs(1);
357 1 LCD_SendComm(SOrigin); //1000,0000 设定DDRAM 7位地址000,0000到地址计数器AC
358 1 lcd_DelayMs(1);
359 1 //LCD_SendComm(0x04); //点设定,显示字符/光标从左到右移位,DDRAM地址加 一
360 1 lcd_DelayMs(1);
361 1 // LCD_SendComm(0x0f); //显示设定,开显示,显示光标,当前显示位反白闪动
362 1 lcd_DelayMs(5);
363 1 }
364
365
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 7
366 /*****************************************按键和显示****************************************/
367 void DispPage(uchar page)
368 {
369 1 char xdata buffer[20];
370 1 lcd_Clear();
371 1 switch (page)
372 1 {
373 2 case 0:
374 2 {
375 3 sprintf(buffer,"Tout: %5.2f C",Tout/100.0);
376 3 lcd_DispString(0,0,buffer);
377 3
378 3 sprintf(buffer,"FlowRate: %3.1f L" ,Rate/100.0);
379 3 lcd_DispString(1,0,buffer);
380 3
381 3 sprintf(buffer,"Tset: %5.2f C" ,Tset/100.0);
382 3 lcd_DispString(2,0,buffer);
383 3
384 3 lcd_DispString(3,0,"Status:");
385 3 FaultDisp();
386 3 }
387 2 break;
388 2 /* case 1:
389 2 {
390 2 sprintf(buffer,"Tset: %.2f C" ,Tset/100.0);
391 2 lcd_DispString(0,0,buffer);
392 2 sprintf(buffer,"Pout: %.2f" ,Pout/100.0);
393 2 lcd_DispString(1,0,buffer);
394 2
395 2 sprintf(buffer,"FlowLim: %.1fL/M" ,Lim/100.0);
396 2 lcd_DispString(2,0,buffer);
397 2
398 2 lcd_DispString(3,0,"Fault:");
399 2 FaultDisp();
400 2
401 2 } break;*/
402 2 default: break;
403 2 }
404 1 }
405
406 void ScreenFresh()
407 {
408 1 char xdata buffer[20];
409 1 switch (Page)
410 1 {
411 2 case 0:
412 2 {
413 3 sprintf(buffer,"Tout: %5.2f C",Tout/100.0);
414 3 lcd_DispString(0,0,buffer);
415 3
416 3 sprintf(buffer,"FlowRate: %3.1f L" ,Rate/100.0);
417 3 lcd_DispString(1,0,buffer);
418 3
419 3 sprintf(buffer,"Tset: %5.2f C" ,Tset/100.0);
420 3 lcd_DispString(2,0,buffer);
421 3
422 3 lcd_DispString(3,0,"Status:");
423 3 FaultDisp();
424 3 }
425 2 break;
426 2 /* case 1:
427 2 {
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 8
428 2 sprintf(buffer,"Tset: %.2f C" ,Tset/100.0);
429 2 lcd_DispString(0,0,buffer);
430 2
431 2 sprintf(buffer,"Pout: %.2f" ,Pout/100.0);
432 2 lcd_DispString(1,0,buffer);
433 2
434 2 sprintf(buffer,"FlowLim: %.1fL/M" ,Lim/100.0);
435 2 lcd_DispString(2,0,buffer);
436 2
437 2 lcd_DispString(3,0,"Fault:");
438 2 FaultDisp();
439 2
440 2 } break;*/
441 2 default: break;
442 2 }
443 1
444 1 }
445
446 void SubProcess(void)
447 {
448 1 xdata char buffer[10];
449 1 if(Option == 0) //ISet
450 1 {
451 2 if(Tset > TsetL)
452 2 {
453 3 Tset-=10;
454 3 if(Tset < TsetL)
455 3 {
456 4 Tset = TsetL;
457 4 }
458 3 }
459 2 sprintf(buffer,"%.2f C" ,Tset/100.0);
460 2 lcd_DispString(2,3,buffer);
461 2 }
462 1 /* else if(Option == 1) //Tset
463 1 {
464 1 if(Lim > LimL)
465 1 {
466 1 Lim = Lim-10;
467 1 if (Lim < LimL)
468 1 {
469 1 Lim = LimL;
470 1 }
471 1 }
472 1 sprintf(buffer," %.1f L/M" ,Lim/100.0);
473 1 lcd_DispString(2,3,buffer);
474 1 }
475 1 */
476 1 }
477
478 void AddProcess(void)
479 {
480 1 xdata char buffer[10];
481 1 if(Option == 0) //Iset
482 1 {
483 2 if(Tset < TsetH)
484 2 {
485 3 Tset+=10;
486 3 if(Tset > TsetH)
487 3 {
488 4 Tset = TsetH;
489 4 }
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 9
490 3 }
491 2 sprintf(buffer,"%.2f C" ,Tset/100.0);
492 2 lcd_DispString(2,3,buffer);
493 2 }
494 1 /* else if(Option == 1)
495 1 {
496 1 if(Lim < LimH)
497 1 {
498 1 Lim += 10;
499 1 if (Lim > LimH)
500 1 {
501 1 Lim = LimH;
502 1 }
503 1 }
504 1 sprintf(buffer," %.1f L/M" ,Lim/100.0);
505 1 lcd_DispString(2,3,buffer);
506 1 }
507 1 */
508 1 }
509
510 void key_process(uchar key_number)
511 {
512 1 switch(key_number)
513 1 {
514 2 case KEY_STANDBY:
515 2 {
516 3 if(Moder==0)
517 3 {
518 4 nop();
519 4 if(WATER==1)
520 4 {
521 5 WATER=0;
522 5 Ldelay();
523 5 Fault();
524 5 }
525 4 }
526 3 if(Moder==1)
527 3 {
528 4 begin=!begin;
529 4 if(begin==0)
530 4 {
531 5 write7279(SEGOFF, LED_Standby);
532 5 }
533 4 if(begin==1)
534 4 {
535 5 if(WATER==1)
536 5 {
537 6 WATER=0;
538 6 Ldelay();
539 6 Fault();
540 6 }
541 5 write7279(SEGON, LED_Standby);
542 5 }
543 4 }
544 3 }
545 2 case KEY_SUB:
546 2 {
547 3 if(DataChflag)
548 3 {
549 4 SubProcess();
550 4 }
551 3 }break;
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 10
552 2 case KEY_ADD:
553 2 {
554 3 if(DataChflag)
555 3 {
556 4 AddProcess();
557 4 }
558 3 }break;
559 2 /* case KEY_DISPLAY:
560 2 {
561 2 DataChflag=0;
562 2 write7279(SEGOFF, LED_Enter);
563 2 Option=2;
564 2 if(Page >=1)
565 2 {
566 2 Page = 0;
567 2 }
568 2 else
569 2 {
570 2 Page++;
571 2 }
572 2 DispPage(Page);
573 2
574 2 }break;*/
575 2 case KEY_ENTER:
576 2 {
577 3 if(Moder==1)
578 3 {
579 4 if(DataChflag>=1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -