⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.lst

📁 这是一种温度变送器的源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -