📄 menu.lst
字号:
818 1 char xdata * data byte;
819 1 byte=ref_table+add;//指针计算
*** WARNING C182 IN LINE 819 OF MENU.C: pointer to different objects
820 1 SMbus_24c02_write(2*add,*byte);
821 1 byte++;
822 1 SMbus_24c02_write(2*add+1,*byte);
823 1 }
824 /********************************************
825 函数名: load_ref
826 功能: 加载参数值
827 形式参数:无
828 返回值:无
829 ********************************************/
830 void load_ref(void)
831 {
832 1 unsigned char i;
833 1 char xdata * data byte;
834 1 SMbus_24c02_read(0x7f);
835 1 if(Dat_24C02!=0xaa)
836 1 { //24c02未初始化
837 2 for(i=0;i<16;i++)
838 2 {
839 3 ref_table[i]=default_ref_table[i];
840 3 SMbus_24c02_write(i,ref_table[i]);
841 3 }
842 2 SMbus_24c02_write(0x7f,0xaa);//设置初始化标志
843 2 }
844 1 else
845 1 { //24C02已初始化
846 2 byte=ref_table;
*** WARNING C182 IN LINE 846 OF MENU.C: pointer to different objects
847 2 for(i=0;i<82;i++)
848 2 {
849 3 SMbus_24c02_read(i);
850 3 *byte=Dat_24C02;
851 3 byte++;
852 3 }
853 2 }
854 1 }
855 /********************************************
856 函数名: mnu_return
857 功能: 返回主菜单
858 形式参数:无
859 返回值:无
C51 COMPILER V7.06 MENU 01/03/2008 17:28:43 PAGE 15
860 ********************************************/
861 void mnu_return(void)
862 {
863 1 point_pos=0;
864 1 dis_flag=1;
865 1 page_point=mnu_main;
866 1 mod_value=mod_bak;
867 1 display_num(mod_value);
868 1 renew_page_low(mnu_null);
869 1 }
870 /********************************************
871 函数名: display_num
872 功能: 显示数字
873 形式参数:num-数字值
874 返回值:无
875 ********************************************/
876 void display_num(int num)
877 {
878 1 bit bdata pos_flag;
879 1 unsigned int num_temp,i,j;
880 1 unsigned char num_display[4];
881 1 if(num<0)
882 1 {
883 2 pos_flag=0; //正负号标志 1-正号 0-负号
884 2 num_temp=~num;
885 2 num_temp+=1;
886 2 }
887 1 else
888 1 {
889 2 pos_flag=1;
890 2 num_temp=num;
891 2 }
892 1 for(i=0;i<4;i++)
893 1 {
894 2 num_display[i]=num_temp%10;
895 2 num_temp/=10;
896 2 }
897 1 zero_flag=0;
898 1 if(dis_flag)
899 1 {//高4位
900 2 for(j=0;j<3;j++)
901 2 {
902 3 if((num_display[3-j]==0)&&(zero_flag==0))
903 3 {
904 4 if(point_pos<(4-j))
905 4 display[7-j]=0xff;
906 4 else
907 4 {
908 5 zero_flag=1;
909 5 if((point_pos==4)&&(num_display[3]==0)&&(pos_flag==0))
910 5 {
911 6 display[7]=0xff;
912 6 continue;
913 6 }
914 5 else
915 5 display[7-j]=num_code[num_display[3-j]];
916 5 }
917 4 }
918 3 else
919 3 {
920 4 zero_flag=1;
921 4 display[7-j]=num_code[num_display[3-j]];
C51 COMPILER V7.06 MENU 01/03/2008 17:28:43 PAGE 16
922 4 }
923 3 }
924 2 if(point_pos!=0)display[3+point_pos]&=chr_dot; //显示小数点
925 2 display[4]=num_code[num_display[0]]; //最后一位
926 2 if(!pos_flag)display[7]&=chr_sub; //显示负号
927 2 }
928 1 else
929 1 {//低4位
930 2 for(j=0;j<3;j++)
931 2 {
932 3 if((num_display[3-j]==0)&&(zero_flag==0))
933 3 {
934 4 if(point_pos<(4-j))
935 4 display[3-j]=0xff;
936 4 else
937 4 {
938 5 zero_flag=1;
939 5 if((point_pos==4)&&(num_display[3]==0)&&(pos_flag==0))
940 5 {
941 6 display[3]=0xff;
942 6 continue;
943 6 }
944 5 else
945 5 display[3-j]=num_code[num_display[3-j]];
946 5 }
947 4 }
948 3 else
949 3 {
950 4 zero_flag=1;
951 4 display[3-j]=num_code[num_display[3-j]];
952 4 }
953 3 }
954 2 if(point_pos!=0)display[point_pos-1]&=chr_dot; //显示小数点
955 2 display[0]=num_code[num_display[0]]; //最后一位
956 2 if(dem_flag&&point_pos==1)display[0]&=chr_dot;
957 2 if(!pos_flag)display[3]&=chr_sub; //显示负号
958 2 }
959 1
960 1 }
961
962
963 /********************************************
964 函数名: renew_disp_high
965 功能: 更新高四位显示
966 形式参数:item-显示字段索引号
967 返回值:无
968 ********************************************/
969 void renew_page_high(unsigned char item)
970 {
971 1 unsigned char i;
972 1 for(i=0;i<4;i++)
973 1 {
974 2 display[7-i]=Tab_Menu_Item[item][i];
975 2 }
976 1 }
977 /********************************************
978 函数名: renew_disp_low
979 功能: 更新低四位显示
980 形式参数:item-显示字段索引号
981 返回值:无
982 ********************************************/
983 void renew_page_low(unsigned char item)
C51 COMPILER V7.06 MENU 01/03/2008 17:28:43 PAGE 17
984 {
985 1 unsigned char i;
986 1 for(i=0;i<4;i++)
987 1 {
988 2 display[3-i]=Tab_Menu_Item[item][i];
989 2 }
990 1 }
991 /*************************************************
992 函数名 get_pos
993 功能 根据目前的分度,判断小数点位置
994 参数 void
995 影响资源 point_pos
996 调用函数
997 *************************************************/
998 void get_pos(void)
999 {
1000 1 if(ref_table[ref_sn]<rt_start)
1001 1 {
1002 2 point_pos=0; ////////送显十进制数时 小数点的位置1~4 右->左 为函数lcd_show_dec的参数
1003 2 }
1004 1 else
1005 1 point_pos=2;
1006 1 }
1007
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2549 ----
CONSTANT SIZE = 288 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 14
IDATA SIZE = ---- ----
BIT SIZE = 7 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -