📄 menu.lst
字号:
558
559 void SetAttribTime()
560 {
561 1 //输入:MenuID,返回:无
562 1 //显示当前
563 1 unsigned char xdata kv,hang;
564 1 unsigned int xdata t,t1,t2,t3;
565 1 LcdInit();
566 1 hang=0;
567 1 if((MenuID&0x000f)==0x0001)
568 1 t1=ADDR_GENARAL_SCH;
569 1 else if((MenuID&0x000f)==0x0002)
570 1 t1=ADDR_HOLIDAY_SCH;
571 1 else
572 1 return;
573 1 t=MenuID&0x00f0;
574 1 t>>=4;
575 1 t-=1;
576 1 t1=t1+t*PHASE_GROUP_LEN;
577 1
578 1 t=MenuID&0x0f00;
579 1 t>>=8;
580 1 t-=1;
581 1 t=t1+t*PHASE_LEN;//t指向当前相位
582 1 //输入
583 1 kv=KEY_NOTKEY;
584 1 while(1)
585 1 {
586 2 while(kv==KEY_NOKEY)
587 2 {
588 3 kv=GetKey();
589 3 if(SecondFlag)
590 3 {
591 4 SecondCheck();
592 4 AutoLockCnt--;
593 4 SecondFlag=0;
594 4 if(AutoLockCnt<SYS_AUTO_LOCK_TIME)
595 4 {
596 5 DeskTopFlag=1;
597 5 PswLock=1;
598 5 return;
599 5 }
C51 COMPILER V7.50 MENU 04/03/2007 10:38:50 PAGE 11
600 4 }
601 3 }
602 2 AutoLockCnt=SYS_LCD_OFF_TIME;
603 2 switch(kv)
604 2 {
605 3 case KEY_UP:
606 3 case KEY_LEFT:
607 3 LcdChar(hang,0,0x20);
608 3 if(hang>=1)
609 3 hang--;
610 3 LcdChar(hang,0,CHOSEN_CH);
611 3 break;
612 3 case KEY_DOWN:
613 3 case KEY_RIGHT:
614 3 LcdChar(hang,0,0x20);
615 3 if(hang<3)
616 3 hang++;
617 3 LcdChar(hang,0,CHOSEN_CH);
618 3 break;
619 3 case KEY_ENTER:
620 3 t1=Get256Key(hang,5);
621 3 if(t1!=255)
622 3 {
623 4 if(hang==1)//绿闪
624 4 t2=(unsigned int)EPR_Read(t+GT_ADJ);//GT
625 4 if(t1>=t2)
626 4 {
627 5 LcdInit();
628 5 LcdCnString(0,3,"警告");
629 5 LcdCnString(2,1,"绿灯时间必需大");
630 5 LcdCnString(3,0,"于绿闪时间");
631 5 kv=KEY_NOKEY;
632 5 while(kv==KEY_NOKEY)
633 5 kv=GetKey();
634 5 }
635 4 EPR_Page_0();
636 4 Write(t+3+hang,t1);
637 4 EPR_Page_1();
638 4 PrintNum(hang,5,t1);
639 4 }
640 3 return;
641 3 case KEY_MENU:
642 3 DeskTopFlag=1;
643 3 MenuID=0x0000;
644 3 case KEY_CANCEL:
645 3 return;
646 3 default:
647 3 ;
648 3 }
649 2 t1=(unsigned int)EPR_Read(t+GT_ADJ);//GT
650 2 PrintNum(0,5,t1);
651 2 t1=(unsigned int)EPR_Read(t+GST_ADJ);//GST
652 2 PrintNum(1,5,t1);
653 2 t1=(unsigned int)EPR_Read(t+YT_ADJ);//YT
654 2 PrintNum(2,5,t1);
655 2 t1=(unsigned int)EPR_Read(t+RT_ADJ);//RT
656 2 PrintNum(3,5,t1);
657 2 LcdChar(hang,0,CHOSEN_CH);
658 2 kv=KEY_NOKEY;
659 2 }
660 1 }
661
C51 COMPILER V7.50 MENU 04/03/2007 10:38:50 PAGE 12
662 void CopyPhaseGroup()
663 {//复制时段
664 1 //输入:MenuID
665 1 //
666 1 unsigned int xdata t,t1;
667 1 unsigned char xdata i,k;
668 1 LcdInit();
669 1 if((MenuID&0x000f)==0x0001)
670 1 {
671 2 t1=ADDR_GENARAL_SCH;
672 2 LcdCnString(0,2,"平时设置");
673 2 }
674 1 else if((MenuID&0x000f)==0x0001)
675 1 {
676 2 t1=ADDR_HOLIDAY_SCH;
677 2 LcdCnString(0,2,"节日设置");
678 2 }
679 1 else
680 1 return;
681 1 t=MenuID&0x00f0;
682 1 t>>=4;
683 1 t-=1;
684 1 t=t1+t*PHASE_GROUP_LEN;//t指向当前相组
685 1
686 1 LcdCnString(2,0,"来自时段:");
687 1 t2=Get44Key(2,5);
688 1 if(t2<12)
689 1 {
690 2 t2=t1+t2*PHASE_GROUP_LEN;//源相组
691 2 EPR_Page_0();
692 2 for(i=0;i<8*7;i++)
693 2 {
694 3 k=EPR_Read(t2+i);
695 3 EPR_Write(t+i,k);
696 3 }
697 2 EPR_Page_1();
698 2 }
699 1 }
700
701 void SetSysTime()
702 {
703 1 //输入:无,返回:无
704 1 unsigned char xdata kv,i,k;
705 1
706 1 kv=KEY_NOTKEY;
707 1 while(1)
708 1 {
709 2 while(kv==KEY_NOKEY)
710 2 {
711 3 kv=GetKey();
712 3 if(SecondFlag)
713 3 {
714 4 SecondCheck();
715 4 AutoLockCnt--;
716 4 SecondFlag=0;
717 4 if(AutoLockCnt<SYS_AUTO_LOCK_TIME)
718 4 {
719 5 DeskTopFlag=1;
720 5 PswLock=1;
721 5 return;
722 5 }
723 4 }
C51 COMPILER V7.50 MENU 04/03/2007 10:38:50 PAGE 13
724 3 }
725 2 AutoLockCnt=SYS_LCD_OFF_TIME;
726 2 switch(kv)
727 2 {
728 3 case KEY_ENTER:
729 3 LcdInit();
730 3 LcdCnString(1,0,"小时:");
731 3 k=Get256Key(1,3);
732 3 if(k<24)
733 3 XBYTE[RTC_BASE+RegHours]=k;
734 3 LcdCnString(1,0,"分钟:");
735 3 k=Get256Key(1,3);
736 3 if(k<60)
737 3 XBYTE[RTC_BASE+RegMinutes]=k;
738 3 LcdCnString(1,0,"秒:");
739 3 k=Get256Key(1,3);
740 3 if(k<60)
741 3 XBYTE[RTC_BASE+RegSeconds]=k;
742 3 return;
743 3 case KEY_MENU:
744 3 DeskTopFlag=1;
745 3 MenuID=0x0000;
746 3 case KEY_CANCEL:
747 3 return;
748 3 default:
749 3 ;
750 3 }
751 2 LcdInit();
752 2 {//显示当前时间
753 3 LcdCnString(0,2,"当前时间");
754 3 k=XBYTE[RTC_BASE+RegHours];//小时
755 3 i=0;
756 3 while(k>=10)
757 3 {
758 4 k-=10;
759 4 i++;
760 4 }
761 3 i+='0';
762 3 LcdChar(1,2,i);
763 3 k+='0';
764 3 LcdAddChar(k);
765 3 LcdAddChar(':');
766 3 k=XBYTE[RTC_BASE+RegMinutes];//分钟
767 3 i=0;
768 3 while(k>=10)
769 3 {
770 4 k-=10;
771 4 i++;
772 4 }
773 3 i+='0';
774 3 LcdAddChar(i);
775 3 k+='0';
776 3 LcdAddChar(k);
777 3 LcdAddChar(':');
778 3 k=XBYTE[RTC_BASE+RegSeconds];//秒
779 3 i=0;
780 3 while(k>=10)
781 3 {
782 4 k-=10;
783 4 i++;
784 4 }
785 3 i+='0';
C51 COMPILER V7.50 MENU 04/03/2007 10:38:50 PAGE 14
786 3 LcdAddChar(i);
787 3 k+='0';
788 3 LcdAddChar(k);
789 3 }
790 2 kv=KEY_NOKEY;
791 2 }
792 1
793 1 }
794
795 void SetSysDate()
796 {
797 1 //输入:无,返回:无
798 1 unsigned char xdata kv,i,k;
799 1
800 1 kv=KEY_NOTKEY;
801 1 while(1)
802 1 {
803 2 while(kv==KEY_NOKEY)
804 2 {
805 3 kv=GetKey();
806 3 if(SecondFlag)
807 3 {
808 4 SecondCheck();
809 4 AutoLockCnt--;
810 4 SecondFlag=0;
811 4 if(AutoLockCnt<SYS_AUTO_LOCK_TIME)
812 4 {
813 5 DeskTopFlag=1;
814 5 PswLock=1;
815 5 return;
816 5 }
817 4 }
818 3 }
819 2 AutoLockCnt=SYS_LCD_OFF_TIME;
820 2 switch(kv)
821 2 {
822 3 case KEY_ENTER:
823 3 LcdInit();
824 3 LcdCnString(1,0,"年:");
825 3 k=Get256Key(1,2);
826 3 if(k<100)
827 3 XBYTE[RTC_BASE+RegYear]=k;
828 3 LcdCnString(1,0,"月:");
829 3 k=Get256Key(1,2);
830 3 if(k<=12)
831 3 XBYTE[RTC_BASE+RegMonth]=k;
832 3 LcdCnString(1,0,"日:");
833 3 k=Get256Key(1,2);
834 3 if(k<=31)
835 3 XBYTE[RTC_BASE+RegDate]=k;
836 3 return;
837 3 case KEY_MENU:
838 3 DeskTopFlag=1;
839 3 MenuID=0x0000;
840 3 case KEY_CANCEL:
841 3 return;
842 3 default:
843 3 ;
844 3 }
845 2 LcdInit();
846 2 {//显示当前时间
847 3 LcdCnString(0,2,"当前日期");
C51 COMPILER V7.50 MENU 04/03/2007 10:38:50 PAGE 15
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -