📄 w014.lst
字号:
515 void SetTHMenu()
516 {
517 1 uchar code dis_code5[ ] = {" SET THE TH ? "} ;
518 1 uchar code dis_code6[ ] = {" NOW TH = C "} ;
519 1
520 1 LCD_DisplayLine(dis_code5,dis_code6);
521 1
522 1 LCD_WriteMytab() ;
523 1 Delay(10) ;
524 1 LCD_DisplayPosit(0x4d) ;
525 1 LCD_WriteDate(0x00) ;
526 1 }
527
528 /*******************************************************************/
529 /* */
530 /* 温度上限值设置时显示 */
531 /* */
532 /*******************************************************************/
533 void SetTH()
534 {
535 1 uchar key_v = 0x07;
536 1 uchar a = 1;
537 1 SetTHMenu();
538 1 DisplayTH();
539 1 while(a==1)
540 1 {
541 2 uchar key;
542 2 key = KeyworthScan();
543 2
544 2 if(key!=key_v)
545 2 {
546 3 Delayms(10);
547 3 key = KeyworthScan();
548 3 DisplayTH();
549 3
550 3 if(key!=key_v)
C51 COMPILER V8.02 W014 06/07/2007 21:46:16 PAGE 10
551 3 {
552 4 key_v = key;
553 4 if(key_v==0x05)
554 4 {
555 5 TH++;
556 5 if(TH>99)TH=99;
557 5 Keyset_Flag = 2;
558 5 }
559 4 else if(key_v==0x06)
560 4 {
561 5 TH--;
562 5 if(TH<0)TH=0;
563 5 Keyset_Flag = 2;
564 5 }
565 4 else if(key_v==0x03&&Keyset_Flag == 2)
566 4 {
567 5 a = 0;
568 5 }
569 4 }
570 3
571 3 }
572 2
573 2 }
574 1 }
575
576 /*******************************************************************/
577 /* */
578 /* 温度下限设置界面显示 */
579 /* */
580 /*******************************************************************/
581 void SetTLMenu()
582 {
583 1 uchar code dis_code5[ ] = {" SET THE TL ? "} ;
584 1 uchar code dis_code6[ ] = {" NOW TL = C "} ;
585 1
586 1 LCD_DisplayLine(dis_code5,dis_code6);
587 1
588 1 LCD_WriteMytab() ;
589 1 Delay(10) ;
590 1 LCD_DisplayPosit(0x4d) ;
591 1 LCD_WriteDate(0x00) ;
592 1 }
593
594 /*******************************************************************/
595 /* */
596 /* 温度下限设置界面下限值显示 */
597 /* */
598 /*******************************************************************/
599 void DisplayTL()
600 {
601 1 display_TL[0] = TL/10+0x30;
602 1 display_TL[1] = TL%10+0x30;
603 1
604 1 LCD_DisplayPosit(0x4b) ;
605 1 LCD_WriteDate(display_TL[0]) ;
606 1 LCD_DisplayPosit(0x4c) ;
607 1 LCD_WriteDate(display_TL[1]) ;
608 1 }
609
610 /*******************************************************************/
611 /* */
612 /* 温度下限值设置时显示 */
C51 COMPILER V8.02 W014 06/07/2007 21:46:16 PAGE 11
613 /* */
614 /*******************************************************************/
615 void SetTL()
616 {
617 1 uchar key_v = 0x07;
618 1 uchar a=1;
619 1
620 1 SetTLMenu();
621 1 DisplayTL();
622 1 while(a==1)
623 1 {
624 2 uchar key_s;
625 2 key_s = KeyworthScan();
626 2
627 2 if(key_s!=key_v)
628 2 {
629 3 Delayms(10);
630 3 key_s = KeyworthScan();
631 3 DisplayTL();
632 3
633 3 if(key_s!=key_v)
634 3 {
635 4 key_v = key_s;
636 4 if(key_v==0x05)
637 4 {
638 5 TL++;
639 5 if(TL>99)TL=99;
640 5 Keyset_Flag = 3;
641 5 }
642 4 else if(key_v==0x06)
643 4 {
644 5 TL--;
645 5 if(TL<0)TL=0;
646 5 Keyset_Flag = 3;
647 5 }
648 4 else if(key_v==0x03&&Keyset_Flag == 3)
649 4 {
650 5 a=0;
651 5 }
652 4 }
653 3
654 3 }
655 2
656 2 }
657 1 }
658
659 /*******************************************************************/
660 /* */
661 /* 温度上下限设置 */
662 /* */
663 /*******************************************************************/
664 void SetTH_TL()
665 {
666 1 SetTH();
667 1 Delay(100);
668 1 SetTL();
669 1 Keyset_Flag=0;
670 1 DS18B20_OkMenu();
671 1 }
672 /*******************************************************************/
673 /* */
674 /* 主函数 */
C51 COMPILER V8.02 W014 06/07/2007 21:46:16 PAGE 12
675 /* */
676 /*******************************************************************/
677
678 void main()
679 {
680 1 do
681 1 {
682 2 if((presence==0)&&(dis_data[4]<TH)&&(dis_data[4]>=TL)) //温度正常
683 2 {
684 3 DS18B20_OkMenu() ;
685 3
686 3 while((dis_data[4]<TH)&&(dis_data[4]>=TL))
687 3 {
688 4 ReadTemperature() ;
689 4 TemperatureDisplay() ;
690 4
691 4 BEEP_Flag=0;
692 4 RED_Light=1;
693 4
694 4 SetKeyScan();
695 4 if(Keyset_Flag==1)
696 4 {
697 5 SetTH_TL();
698 5 Delayms(500);
699 5 }
700 4 }
701 3 }
702 2
703 2 if((presence==0)&&(dis_data[4]>=TH)) //温度高于上限
704 2 {
705 3 DisplayTHMenu();
706 3
707 3 while(dis_data[4]>=TH)
708 3 {
709 4 ReadTemperature() ;
710 4 TemperatureDisplay() ;
711 4
712 4 if(BEEP_Flag==0)Beep();
713 4 BEEP_Flag=1;
714 4 RED_Light=0;
715 4
716 4 SetKeyScan();
717 4 if(Keyset_Flag==1)
718 4 {
719 5 SetTH_TL();
720 5 Delayms(500);
721 5 }
722 4 }
723 3 }
724 2
725 2 if((presence==0)&&(dis_data[4]<TL)) //温度低于下限
726 2 {
727 3 DisplayTLMenu();
728 3
729 3 while(dis_data[4]<TL)
730 3 {
731 4 ReadTemperature() ;
732 4 TemperatureDisplay() ;
733 4
734 4 if(BEEP_Flag==0)Beep();
735 4 BEEP_Flag=1;
736 4 RED_Light=0;
C51 COMPILER V8.02 W014 06/07/2007 21:46:16 PAGE 13
737 4
738 4 SetKeyScan();
739 4 if(Keyset_Flag==1)
740 4 {
741 5 SetTH_TL();
742 5 Delayms(500);
743 5 }
744 4 }
745 3 }
746 2 }
747 1 while(!presence);
748 1
749 1
750 1 DS18B20_ErrorMenu() ; //未检测到DS18B20
751 1
752 1 do
753 1 {
754 2 DS18B20_Init() ;
755 2
756 2 if(BEEP_Flag==0)Beep();
757 2 BEEP_Flag=1;
758 2 }
759 1 while(presence);
760 1 }
761 /*******************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1389 ----
CONSTANT SIZE = 228 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 10
IDATA SIZE = ---- ----
BIT SIZE = 1 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -