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

📄 dataprc.lst

📁 电磁流量计的源程序。将流体流量用电磁转换方式变换成弱电信号
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  DATAPRC                                                                09/10/2005 17:35:06 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE DATAPRC
OBJECT MODULE PLACED IN D:\2005_09\Dataprc.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE D:\2005_09\Dataprc.c SMALL DB OE CO OT(SIZE) 

stmt level    source

   1          #include "MATH.H"
   2          #include "reg52.h"
   3          #include "typedef.h"
   4          #include "function.h"
   5          #include "define.h"
   6          #include "varible.h"
   7          
   8          /****************************/
   9          
  10          void System_data_init(void);
  11          void Data_prc(void);
  12          void Ad_data_prc(void);
  13          float Get_lchen_data(unsigned char address,unsigned char point);
  14          float Get_alarmup_data(void);
  15          float Get_alarmdm_data(void);
  16          float Get_pn_data(unsigned char start_address);
  17           unsigned long int Get_high_data(float fdata);
  18           unsigned int Get_low_data(float fdata);
  19          void Modify_adc_gain(unsigned char gain);
  20          
  21          /********************************/
  22          /********************************/
  23          void System_data_init(void)
  24          { 
  25   1      
  26   1        dp_point = Read1B(0x0e,0);
  27   1        
  28   1        if(dp_point > 3)
  29   1           {
  30   2           	dp_point = 2 ;          //system moren de xiaosudin
  31   2              Write1B(dp_point,0x0e,0);
  32   2           }
  33   1        pulse_dp = Read1B(0x2a,0);
  34   1        if(pulse_dp > 3)
  35   1           {
  36   2           	pulse_dp = 2 ;
  37   2              Write1B(pulse_dp,0x2a,0);
  38   2          }
  39   1        sensor_dp = Read1B(0x34,0) ;
  40   1        if(sensor_dp > 3)
  41   1          {
  42   2           sensor_dp = 2 ;
  43   2           Write1B(sensor_dp,0x34,0);
  44   2          }
  45   1      /*  add zero offset set */
  46   1             
  47   1        sensor_k = Get_lchen_data(0x30,sensor_dp);    
  48   1      //get liangchen
  49   1        lchen_data = Get_lchen_data(0x18,dp_point);
  50   1        lchen_data_old = lchen_data ;
  51   1      //get disp xisu
  52   1       // system_k = sensor_k*lchen_data*1.5/0x7fff ; //system_k is designed to sensor_k and lchen 2003-12-10
  53   1        system_k = sensor_k*lchen_data/0x7fff ;
  54   1      
  55   1        zero_dp = Read1B(0x3d,0);
C51 COMPILER V6.02  DATAPRC                                                                09/10/2005 17:35:06 PAGE 2   

  56   1        zero_symbol = Read1B(0x38,0);
  57   1        if(zero_dp > 3)
  58   1         {
  59   2            zero_dp = 2 ;
  60   2            Write1B(zero_dp,0xd,0);
  61   2         }
  62   1       // zero_offset = Get_lchen_data(0x39,zero_dp);
  63   1         
  64   1        zero_code = (unsigned int)( Get_lchen_data(0x39,zero_dp)/10.0*32767); 
  65   1        pulse_danlan = Get_lchen_data(0x26,pulse_dp);               //calculator danlan 
  66   1      //get filter zhisu
  67   1        filter_data = Read1B(0x1c,0);
  68   1      //get xiaoliuliang value
  69   1      
  70   1        cut_slope = Read1B(0x1d,0);      //xiaoliuliang cut value
  71   1        cut_data = (cut_slope/100.0)*lchen_data ;   //this cut_data is used for compare with moment_data 
  72   1      //get alarm_up_data
  73   1        alarm_up_data = Get_alarmup_data();
  74   1      
  75   1      //get alarm_dm_data
  76   1        alarm_dm_data = Get_alarmdm_data();
  77   1        data_prc_time = 0 ;
  78   1        sec_time = 0;
  79   1        adjust_time = 0 ;
  80   1       
  81   1        system_dp = Read1B(0x24,0);
  82   1        system_lchen = Get_lchen_data(0x20,system_dp);
  83   1      
  84   1        page1_start_addr = Read1B(0x10,0);   //get need baochen address
  85   1        p_count_data = Get_pn_data(page1_start_addr);
  86   1        
  87   1        n_count_data = Get_pn_data(page1_start_addr+4);
  88   1        net_count_data = p_count_data - n_count_data ;
  89   1        net_count_data_old = net_count_data ;
  90   1        net_cha = 0;
  91   1      
  92   1      //  consult = 0x4fff;          //test
  93   1      }
  94          
  95          /********************************/
  96          /********************************/
  97          
  98          void Data_prc(void)
  99          {
 100   1        EE_BUFFER write_data;
 101   1        
 102   1      //  float compare_k;
 103   1      //  if(data_prc_time != 0)
 104   1      //     data_prc_time--;
 105   1      //  else
 106   1      //  { 
 107   1                
 108   1      		  //judge lchen change
 109   1      		 if(lchen_data != lchen_data_old)     //if change lianchen range
 110   1      	        {
 111   2      	                 lchen_data_old = lchen_data ;
 112   2                //           system_k = sensor_k*lchen_data*1.5/0x7fff ;
 113   2                           system_k = sensor_k*lchen_data/0x7fff ;         //2003-12-10
 114   2                           
 115   2      	                 cut_data = (cut_slope/100.0)*lchen_data;
 116   2      
 117   2                           alarm_up_data = Get_alarmup_data();
C51 COMPILER V6.02  DATAPRC                                                                09/10/2005 17:35:06 PAGE 3   

 118   2                            //get alarm_dm_data
 119   2                           alarm_dm_data = Get_alarmdm_data();
 120   2                 /*          
 121   2      					 compare_k = lchen_data/system_lchen ;            //calculate lchen changed how much???
 122   2      					 if((compare_k > 1.5)&&(compare_k < 3))           //lchen range expand one time
 123   2      					   {
 124   2      					                                
 125   2                                Modify_adc_gain(ADC_GAIN_8);                //adc_gain from 16 to 8
 126   2                               
 127   2                             }
 128   2      					 else if(compare_k < 0.67)                        //if //lchen range reduce one timer
 129   2      					   {
 130   2      					                          
 131   2      						  Modify_adc_gain(ADC_GAIN_32);               //changed adc_gain from 16 to 32
 132   2      						}
 133   2      					else
 134   2      					   {
 135   2      					   	  Modify_adc_gain(ADC_GAIN_16);
 136   2      					   }                     */                    //update:2003-09-20
 137   2      	          }
 138   1      		  
 139   1          if(adjust_time != 0)
 140   1      	   adjust_time--;
 141   1      	else if(data_prc_time != 0)
 142   1      	   {
 143   2      	     self_adj_F = 0;
 144   2      	     data_prc_time--;
 145   2      		}
 146   1      	else
 147   1      	{
 148   2          data_prc_time = TM500MS ;
 149   2          Ad_data_prc();                     //500ms precess once
 150   2          sec_time++;
 151   2          if(sec_time >= 2)                  //1s time up
 152   2             { 
 153   3      	     hour_time++;
 154   3               sec_time = 0;
 155   3                
 156   3      //		 page1_start_addr = Read1B(0x10,0);   //get need baochen address
 157   3           
 158   3                    
 159   3                    net_count_data_old = net_count_data ;
 160   3                     if(liuxiang_F == POSITIVE)         //baochen zhenxiang leiji liuliang
 161   3                     {
 162   4      //                    p_count_data = p_count_data +moment_data*1.025/3600.0;
 163   4                         p_count_data = p_count_data +moment_data*1.012/3600.0;
 164   4                          if(hour_time%60 == 0)
 165   4                          {
 166   5                          	write_data.ad_data = p_count_data;
 167   5                          	Write1B(write_data.set_data.first_data,page1_start_addr,1);    //save 
 168   5      				    	Write1B(write_data.set_data.second_data,page1_start_addr+1,1);
 169   5      				    	Write1B(write_data.set_data.third_data,page1_start_addr+2,1);
 170   5      				    	Write1B(write_data.set_data.fouth_data,page1_start_addr+3,1);
 171   5      				    }
 172   4                      }
 173   3                     else                              //baochen fanxiang leiji liuliang
 174   3                     {
 175   4      //                    n_count_data +=((moment_data*1.025)/3600.0);
 176   4                          n_count_data +=((moment_data*1.012)/3600.0);
 177   4                          if(hour_time%60 == 0)
 178   4                          {
 179   5                          	write_data.ad_data = n_count_data ;
C51 COMPILER V6.02  DATAPRC                                                                09/10/2005 17:35:06 PAGE 4   

 180   5                          	Write1B(write_data.set_data.first_data,page1_start_addr+4,1);
 181   5      				    	Write1B(write_data.set_data.second_data,page1_start_addr+5,1);
 182   5      				    	Write1B(write_data.set_data.third_data,page1_start_addr+6,1);
 183   5      				    	Write1B(write_data.set_data.fouth_data,page1_start_addr+7,1);
 184   5      				    }
 185   4                      }
 186   3                     net_count_data = (p_count_data - n_count_data) ;
 187   3                     //net_cha += (net_count_data - net_count_data_old)*1.004; 
 188   3                     net_cha += (net_count_data - net_count_data_old) ;  
 189   3                     
 190   3                  
 191   3               
 192   3           
 193   3                 
 194   3      		 	
 195   3      	     
 196   3      		       
 197   3      		       
 198   3      		 
 199   3      		 if(hour_time >= ONE_HOUR)       //one hour time up
 200   3      		     {
 201   4      		        hour_time = 0;     
 202   4      				Write1B(page1_start_addr+8,0x10,0);     //save xianzhai dizhi
 203   4                      page1_start_addr += 8 ;
 204   4      		//		Self_adjust();
 205   4      		//		adjust_time = 4 ;
 206   4                   }
 207   3               }
 208   2      	  }
 209   1          
 210   1      
 211   1        }
 212             
 213          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -