📄 funclcd.lst
字号:
732 6 EepromWrite(tempvar1+2,Sys_D_T0[1]);
733 6 Display_Line(6,0,6,0,ShowTip[10]);//提示打铃已设置
734 6 Msingle_font_pattern (English_Offset[tempvar1/10],6,96,0);
735 6 Msingle_font_pattern (English_Offset[tempvar1%10],6,104,0);
736 6 goto ExitSet;
737 6 }
C51 COMPILER V7.50 FUNCLCD 06/10/2006 08:26:02 PAGE 13
738 5 }
739 4 Display_Line(6,16,6,0,ShowTip[7]);//提示打铃已设置
740 4 Status_Beep();
741 4 }
742 3 ExitSet: break;
743 3 case ESC:
744 3 ClearRAM(0,8);
745 3 return;
746 3 default:
747 3 if(KeyNum==0)
748 3 tempvar1=((Sys_D_T0[2]>>4)&0x0F)*10+(Sys_D_T0[2]&0x0F);
749 3 else if(KeyNum==1)
750 3 tempvar1=((Sys_D_T0[1]>>4)&0x0F)*10+(Sys_D_T0[1]&0x0F);
751 3
752 3 if(tempvar==PAGEUP)tempvar1++;
753 3 if(tempvar==PAGEDOWN&&tempvar1>0)tempvar1--;
754 3
755 3 if(KeyNum==0)
756 3 {
757 4 if(tempvar1>23)tempvar1=0;
758 4 else if(tempvar1<=0)tempvar1=23;
759 4 Sys_D_T0[2]=tempvar1/10;
760 4 Sys_D_T0[2]=(Sys_D_T0[2]<<4)&0xF0;
761 4 Sys_D_T0[2]=Sys_D_T0[2]+(tempvar1%10);
762 4 }
763 3 else if(KeyNum==1)
764 3 {
765 4 if(tempvar1>59)tempvar1=0;
766 4 else if(tempvar1<=0)tempvar1=59;
767 4 Sys_D_T0[1]=tempvar1/10;
768 4 Sys_D_T0[1]=(Sys_D_T0[1]<<4)&0xF0;
769 4 Sys_D_T0[1]=Sys_D_T0[1]+(tempvar1%10);
770 4 }
771 3 break;
772 3 }
773 2 }
774 1 }
775
776 //==========================================================
777 //日期时间菜单处理函数
778 //菜单序号:3
779 //Function: DateTime_Set
780 // Auto_Set
781 //Description: Audjst System date and time
782 //Parameters: NO.
783 //Call: DispLay_RTC,Get_TimeFromDS1302,Msingle_font_pattern
784 // HzDisplay,ClearRAM,SubMenu_Show,Calc_Week
785 //Returns: NO.
786 //=================================================
787 void TimerSetProc(void)//0
788 {
789 1 //显示时间于屏幕中间
790 1 data uint8 tempvar,keynum=0,rowno=0,tempvar1,tempvar2;
791 1 data uint8 Sys_D_T0[7];
792 1 bdata uint8 change_index=0x00;
793 1
794 1 Get_TimeFromDS1302(Sys_D_T0);
795 1
796 1 ClearRAM(0,8);
797 1 DispRTC(0,Sys_D_T0);
798 1
799 1 //交换年分与星期的位置,便于操作
C51 COMPILER V7.50 FUNCLCD 06/10/2006 08:26:02 PAGE 14
800 1 tempvar = Sys_D_T0[6];
801 1 Sys_D_T0[6] = Sys_D_T0[5];
802 1 Sys_D_T0[5] = tempvar;
803 1 //秒位置反显
804 1 tempvar=(Sys_D_T0[0]>>4)&0x0F;
805 1 Msingle_font_pattern (English_Offset[tempvar],0,Db_WZ[0],1);
806 1 tempvar=Sys_D_T0[0]&0x0F;
807 1 Msingle_font_pattern (English_Offset[tempvar],0,Db_WZ[1],1);
808 1
809 1 Sys_D_T0[4]=Sys_D_T0[4]&0x1F;
810 1
811 1 Delay_Ret(T0_6S);
812 1
813 1 while(1)
814 1 {
815 2 if (ret_Flag)
816 2 {
817 3 ClearRAM(0,8);
818 3 break;
819 3 }
820 2
821 2 tempvar=(Sys_D_T0[keynum]>>4)&0x0F;
822 2 Msingle_font_pattern (English_Offset[tempvar],rowno,Db_WZ[2*keynum],1);
823 2 tempvar=Sys_D_T0[keynum]&0x0F;
824 2 Msingle_font_pattern (English_Offset[tempvar],rowno,Db_WZ[2*keynum+1],1);
825 2
826 2 tempvar=KeyScan();
827 2
828 2 if (tempvar==NOKEY_PRESS)continue;
829 2 //亮背光
830 2 Light_On();
831 2 NoDelay_Ret();
832 2
833 2 //光标移动(下移)
834 2 if(tempvar==MOVE)
835 2 {
836 3 keynum++;
837 3
838 3 if(keynum>5)keynum=0;
839 3
840 3 if(keynum>2)
841 3 rowno=2;
842 3 else
843 3 rowno=0;
844 3
845 3 if(keynum==0)
846 3 {
847 4 tempvar=(Sys_D_T0[5]>>4)&0x0F;
848 4 Msingle_font_pattern (English_Offset[tempvar],2,Db_WZ[10],0);
849 4 tempvar=Sys_D_T0[5]&0x0F;
850 4 Msingle_font_pattern (English_Offset[tempvar],2,Db_WZ[11],0);
851 4 }
852 3 else
853 3 {
854 4 if((keynum-1)<3)
855 4 tempvar2=0;
856 4 else
857 4 tempvar2=2;
858 4 tempvar=(Sys_D_T0[keynum-1]>>4)&0x0F;
859 4 Msingle_font_pattern (English_Offset[tempvar],tempvar2,Db_WZ[2*(keynum-1)],0);
860 4 tempvar=Sys_D_T0[keynum-1]&0x0F;
861 4 Msingle_font_pattern (English_Offset[tempvar],tempvar2,Db_WZ[2*(keynum-1)+1],0);
C51 COMPILER V7.50 FUNCLCD 06/10/2006 08:26:02 PAGE 15
862 4 }
863 3 }
864 2 else if(tempvar==ENTER)
865 2 {
866 3 //保存秒分时日月星期与年
867 3
868 3 tempvar = Sys_D_T0[5];
869 3 Sys_D_T0[5] = Sys_D_T0[6];
870 3 Sys_D_T0[6] = tempvar;
871 3
872 3 change_index|=0x40;
873 3
874 3 Write_TimeToDS1302(Sys_D_T0,change_index);
875 3
876 3 tempvar = Sys_D_T0[6];
877 3 Sys_D_T0[6] = Sys_D_T0[5];
878 3 Sys_D_T0[5] = tempvar;
879 3 }
880 2 else if(tempvar==BACK)
881 2 {//返回键
882 3 ClearRAM(0,8);
883 3 return;
884 3 }
885 2 else
886 2 {//数字键
887 3 tempvar1= ((Sys_D_T0[keynum]>>4)&0x0F)*10+(Sys_D_T0[keynum]&0x0F);
888 3
889 3 if(tempvar==PAGEUP)tempvar1++;
890 3 if(tempvar==PAGEDOWN && tempvar1>0)tempvar1--;
891 3
892 3 Sys_D_T0[keynum] =tempvar1/10;
893 3 Sys_D_T0[keynum]=(Sys_D_T0[keynum]<<4) & 0xF0;
894 3 Sys_D_T0[keynum]=Sys_D_T0[keynum]+ tempvar1%10;
895 3
896 3 if(keynum<2 &&Sys_D_T0[keynum]>0x59)Sys_D_T0[keynum]=0;
897 3 else if(keynum==2 &&Sys_D_T0[keynum]>0x23)Sys_D_T0[keynum]=0;
898 3 else if(keynum==3)
899 3 {
900 4 switch(Sys_D_T0[4])
901 4 {
902 5 case 1:
903 5 case 3:
904 5 case 5:
905 5 case 7:
906 5 case 8:
907 5 case 10:
908 5 case 12:
909 5 if( Sys_D_T0[3]>0x31)Sys_D_T0[3]=1;
910 5 else if( Sys_D_T0[3]<=0)Sys_D_T0[3]=31;
911 5 break;
912 5 case 2:
913 5 tempvar=((Sys_D_T0[5]>>4)&0x0F)*10+(Sys_D_T0[5]&0x0F);
914 5 tempvar=month_n_day(tempvar+2000,2);
915 5 if( Sys_D_T0[3]>tempvar)Sys_D_T0[3]=1;
916 5 else if( Sys_D_T0[3]<=0)Sys_D_T0[3]=tempvar;
917 5 break;
918 5 default:
919 5 if( Sys_D_T0[3]>0x30)Sys_D_T0[3]=1;
920 5 else if(Sys_D_T0[3]<=0)Sys_D_T0[3]=0x30;
921 5 }
922 4 }
923 3 else if(keynum==4)
C51 COMPILER V7.50 FUNCLCD 06/10/2006 08:26:02 PAGE 16
924 3 {
925 4 if(Sys_D_T0[4]>0x12)Sys_D_T0[4]=1;
926 4 else if(Sys_D_T0[4]<=0)Sys_D_T0[4]=0x12;
927 4 }
928 3 else if(keynum==5)
929 3 {
930 4 if(Sys_D_T0[5]>0x99)Sys_D_T0[5]=0x00;
931 4 else if(Sys_D_T0[5]<=0x00)Sys_D_T0[5]=0x99;
932 4 }
933 3
934 3 if(keynum>2)
935 3 rowno=2;
936 3 else
937 3 rowno=0;
938 3
939 3 change_index|=Flag[keynum];
940 3 Sys_D_T0[6]=Calc_Week(Sys_D_T0[5],Sys_D_T0[4],Sys_D_T0[3]);
941 3
942 3 HzDisplay(Week[Sys_D_T0[6]],0,34,0);
943 3
944 3 }
945 2
946 2 }
947 1 }
948
949 //==========================================================
950 //系统信息菜单处理,菜单序号:7
951 //Function: Display_SysInfo
952 //Description: Display System infomation
953 //Parameters: NO.
954 //Call: HzDisplay,Msingle_font_pattern,Display_Pic
955 //Returns: NO.
956 //==========================================================
957 void DispInfo(void)
958 {
959 1 uint8 kk;
960 1 ClearRAM(0,8);
961 1 //版本:1.00.00
962 1 HzDisplay(ban,0,0,0);//版
963 1 HzDisplay(ben,0,16,0);//本
964 1 Msingle_font_pattern (mh,0,32,0);
965 1 Msingle_font_pattern (space1,0,40,0);
966 1 Msingle_font_pattern (English_Offset[VERSON[0]],0,48,0);
967 1 Msingle_font_pattern (Mfont_dot,0,56,0);
968 1 Msingle_font_pattern (English_Offset[(VERSON[1]>>4)&0x0F],0,64,0);
969 1 Msingle_font_pattern (English_Offset[VERSON[1]&0x0F],0,72,0);
970 1 Msingle_font_pattern (Mfont_dot,0,80,0);
971 1 Msingle_font_pattern (English_Offset[(VERSON[2]>>4)&0x0F],0,88,0);
972 1 Msingle_font_pattern (English_Offset[VERSON[2]&0x0F],0,96,0);
973 1 //-----------------------------------------------------------
974 1 //日期:06-05-30
975 1 HzDisplay(Day,2,0,0);//版
976 1 HzDisplay(Qi,2,16,0);//本
977 1 Msingle_font_pattern (mh,2,32,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -