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

📄 7705.lst

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


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

stmt level    source

   1          /************************************************************************/
   2          /************************************************************************/
   3          /*                                                                      */
   4          /*			     ad7705			*/
   5          /*                                                                      */
   6          /*              Author: zhiqiang huo                                 */
   7          /*                                                      */
   8          /*                                                                      */
   9          /************************************************************************/
  10          //************************************************************************/
  11          //  set sig_coun=16, consult_con==1, gain==?, 
  12          //  self_just
  13          // 
  14          //
  15          #include "math.h"
  16          #include "reg52.h"
  17          #include "typedef.h"
  18          #include "function.h"
  19          #include "define.h"
  20          #include "varible.h"
  21          
  22          
  23          #ifdef DC_SINGAL
  24            #define MID_VIN_AD 0xbfff
  25          #endif
  26          sbit	AD_CLK = P1^3;
  27          sbit	AD_IN = P1^4;
  28          sbit	AD_OUT = P1^5;
  29          sbit    CONTROL = P3^4;         //lichi current control port
  30          
  31          
  32          
  33          
  34          //**************function declare***************
  35          
  36          void Adc_init(void);
  37          void Setup_adc_device( unsigned char adjust_mode,unsigned char gain,unsigned char polarity,unsigned char u
             -pdate_rate );
  38          void Poisitive(int value);
  39          void Add_consult( int value);
  40          void Dec_consult( int value);
  41          void Self_adjust(void);
  42          //void Ad_start(void);
  43           unsigned int Read_con_data(void);   //
  44          unsigned  char Check_drdy(void);     //
  45          void Write_reg( unsigned char reg_data);
  46           unsigned int Read_word(void);       //
  47           unsigned char Read_reg_byte(void);
  48          void Precess_con_data(void);
  49          void Delay(unsigned int timer);
  50          void Return_to_init_status(void);
  51          void Delay_1us(void);
  52          unsigned char Two_square(void);
  53          
  54          extern bit system_init_F;
C51 COMPILER V6.02  7705                                                                   09/10/2005 17:11:39 PAGE 2   

  55          /*********************************/ 
  56          
  57          
  58          //****************int0**************************/
  59          void Adc_init(void)
  60          {
  61   1       #ifndef DC_SINGAL	
                adc_gain = Read1B(0x25,0);           //get system gain
               #else
  64   1        adc_gain = ADC_GAIN_1 ;
  65   1      #endif
  66   1        Delay(DELAY3S);
  67   1        AD_CLK = 1;                          //7705-CLK high level
  68   1        AD_IN = 1;
  69   1      EA=0;
  70   1        Return_to_init_status();
  71   1        Setup_adc_device(ADC_SELF,adc_gain,ADC_BIPOLAR,ADC_200);
  72   1      EA=1;
  73   1        Delay(DELAY3S);
  74   1        
  75   1      
  76   1      //	ad_step = 0 ; 
  77   1      	start_F = 0 ;
  78   1      	consult_coun = 1 ;
  79   1      	consult = 0 ;
  80   1      	consult_1 = 0 ;
  81   1      	consult_2 = 0 ;
  82   1      	consult_3 = 0 ;
  83   1      
  84   1      return;
  85   1      }
  86          
  87          /***********************************/
  88          /***********************************/
  89          /*
  90          void Adc_init_1(void)
  91          {
  92            	
  93            adc_gain = Read1B(0x25,0);           //get system gain
  94            AD_CLK = 1;                          //7705-CLK high level
  95            AD_IN = 1;
  96            Return_to_init_status();
  97            Setup_adc_device(ADC_SELF,adc_gain,ADC_BIPOLAR,ADC_200);
  98           
  99          	ad_step = 0 ; 
 100          	start_F = 0 ;
 101          	consult_coun = 1 ;
 102          	consult_1 = 0 ;
 103          	consult_2 = 0 ;
 104          	consult_3 = 0 ;
 105              return;
 106          }
 107          */
 108          /*****************************/
 109          /*****************************/
 110          
 111          void Setup_adc_device( unsigned char adjust_mode,unsigned char gain,unsigned char polarity,unsigned char u
             -pdate_rate )
 112          {
 113   1        
 114   1       // unsigned char byte;
 115   1        
C51 COMPILER V6.02  7705                                                                   09/10/2005 17:11:39 PAGE 3   

 116   1        Write_reg(CLK_REG|WRITE|CHANEL_0);  //0X20+0X00+0X00=0X20 CLOCK REGISTER
 117   1        Write_reg(update_rate);
 118   1       // Write_reg(CLK_REG|READ|CHANEL_0);  //0X20+0X00+0X00=0X20 CLOCK REGISTER
 119   1       // byte = Read_reg_byte();
 120   1       
 121   1        Write_reg(SET_REG|WRITE|CHANEL_0);  //0X10
 122   1       
 123   1        Write_reg(adjust_mode|gain|polarity);
 124   1      // Write_reg(SET_REG|READ|CHANEL_0);  //0X10
 125   1      // byte = Read_reg_byte();
 126   1        return;
 127   1       }
 128          /************************************************/
 129          /*  interrupt 1/10ms,
 130          /*******************************/
 131          
 132          /********************************/
 133          /********************************/
 134          void Signal(void) interrupt 0
 135          //void Signal(void) interrupt 3
 136          {
 137   1      //  unsigned  int value;
 138   1         EA=1;                //mask interrupt
 139   1         EX0 = 0 ; 
 140   1         
 141   1      /* debug
 142   1         ET1 = 0 ;
 143   1         TH1 = TM10MS_H ;
 144   1         TL1 = TM10MS_L ;    
 145   1       /*  
 146   1        if(start_F != 1)
 147   1        {
 148   1           // if(ad_step == 0)
 149   1           //   Ad_start();
 150   1            ad_step++;
 151   1            if(ad_step ==16)
 152   1            {
 153   1                start_F = 1 ;
 154   1                ad_step = 0 ;
 155   1            }
 156   1               
 157   1        }
 158   1        else 
 159   1        {         */
 160   1           switch(ad_step)
 161   1           {
 162   2             case 0:                //0x00
 163   2                             CONTROL = 1;
 164   2                             
 165   2      		               ad_step++;
 166   2      		               break;
 167   2             case 1:         
 168   2                             if(system_init_F == 1)
 169   2                             {
 170   3                             		Write_reg(SET_REG|WRITE|CHANEL_0);  //0X10
 171   3                                  Write_reg(adc_gain|ADC_BIPOLAR|START_AD);  
 172   3                             }
 173   2      		               ad_step++;
 174   2      		               break;
 175   2             
 176   2      	    case 7:	 
 177   2                             if(system_init_F == 1)
C51 COMPILER V6.02  7705                                                                   09/10/2005 17:11:39 PAGE 4   

 178   2                             {
 179   3      	                       Precess_con_data();
 180   3      	                       Write_reg(SET_REG|WRITE|CHANEL_0);  //0X10
 181   3      	                   
 182   3                                 Write_reg(adc_gain|ADC_BIPOLAR|DIS_AD); 
 183   3                             }
 184   2      		               ad_step++;
 185   2      		               break;
 186   2      
 187   2             
 188   2       //      case POLAR_REVERS:              //0x08
 189   2              case 8:
 190   2                           
 191   2                            CONTROL = 0 ;
 192   2                       //     CONTROL = 1;     //test
 193   2      		              ad_step++;
 194   2      		              break;
 195   2      
 196   2      	   case 9:
 197   2      	//                   Precess_con_data();
 198   2      	           //         Write_reg(0x04);
 199   2                            if(system_init_F == 1)
 200   2                           {
 201   3      	                      Write_reg(SET_REG|WRITE|CHANEL_0);  //0X10
 202   3                                Write_reg(adc_gain|ADC_BIPOLAR|START_AD); 
 203   3                           }
 204   2                             
 205   2      	                   ad_step++;
 206   2      	                   break;
 207   2            
 208   2      	  
 209   2             
 210   2             case 15:
 211   2                          ad_step=0;
 212   2                          if(system_init_F == 1)
 213   2                          {
 214   3                                 Precess_con_data();
 215   3                          
 216   3                                 Write_reg(SET_REG|WRITE|CHANEL_0);  //0X10
 217   3                                 Write_reg(adc_gain|ADC_BIPOLAR|DIS_AD); 
 218   3                          
 219   3                          
 220   3                   		
 221   3      					      if(consult_coun == 1)
 222   3      					      {
 223   4                                    consult_coun = 2;
 224   4      		                      consult_1=consult_1/2.0;
 225   4      					       }
 226   3      					       else if(consult_coun == 2)
 227   3      					      {
 228   4      					         consult_coun = 3;
 229   4      					         consult_2 = consult_2/2.0;
 230   4      					      }
 231   3      					      else
 232   3      					     {  
 233   4      					         consult_coun = 1;
 234   4      		                     consult_3=consult_3/2.0;
 235   4      		                     consult=(consult_1+consult_2+consult_3)/3.0;
 236   4      		                     consult_1=0;
 237   4      		                     consult_2=0;
 238   4      		                     consult_3=0;
 239   4      					     } 
C51 COMPILER V6.02  7705                                                                   09/10/2005 17:11:39 PAGE 5   

 240   3                          }                 
 241   2                          break;
 242   2      		 default:
 243   2      		            ad_step++;
 244   2      					break;
 245   2      	   }
 246   1        
 247   1         
 248   1          EX0 = 1;
 249   1       // ET1 = 1 ;
 250   1       }
 251            
 252            
 253          /*************************/
 254          /*************************/
 255          /*
 256          void Poisitive(void)
 257          //{
 258          
 259           #ifdef POLARITY
 260           if (consult >= 0x7fff)                 
 261                 {
 262                   consult = consult - 0x7fff;
 263          		 if(CONTROL == 1)
 264          		   //     Add_consult(value);
 265          		      liuxiang_F = POSITIVE ;
 266          		 else
 267          		   //     Dec_consult(value);
 268          		      liuxiang_F = REVERSE ;
 269          	   }
 270            else 
 271                 {
 272                   consult = 0x7fff - consult;
 273          		 if(CONTROL == 1)
 274                       //  Dec_consult(value);
 275                        liuxiang_F = REVERSE ;
 276          		 else
 277          		    //   Add_consult(value);
 278          		      liuxiang_F = POSITIVE;
 279          		}
 280          #else
 281            if (consult >= 0x7fff)                 
 282               {
 283                   consult = consult - 0x7fff;
 284          		 if(CONTROL == 1)
 285          		  //    Dec_consult(value);
 286          		      liuxiang_F = REVERSE ;
 287          		 else
 288          		  //    Add_consult(value);
 289          		      liuxiang_F = POSITIVE; 
 290          	 }
 291            else 
 292               {
 293                   consult = 0x7fff - consult;
 294          		 if(CONTROL == 1)
 295                     //   Add_consult(value);
 296                     liuxiang_F = POSITIVE;
 297          		 else
 298          		  //    Dec_consult(value);
 299          		    liuxiang_F = REVERSE ;
 300               }
 301          #endif
C51 COMPILER V6.02  7705                                                                   09/10/2005 17:11:39 PAGE 6   

 302               da_data = consult ;               //remain for da5615 convert used 
 303          return;
 304          }   */
 305          /***********************************/
 306          
 307          void Poisitive(int value)
 308          {
 309   1      /*	
 310   1      if (value < 0)                 
 311   1          {
 312   1          	liuxiang_F = REVERSE ;
 313   1              value = abs (value);               //get abs value
 314   1      		Add_consult(value);
 315   1      	}
 316   1      	
 317   1      else if(value >= 0)
 318   1           {
 319   1           	 liuxiang_F = POSITIVE; 
 320   1           	 value = abs (value);
 321   1      		 Add_consult(value);
 322   1      	 }
 323   1         	
 324   1      return;
 325   1      } 	
 326   1      	*/
 327   1      
 328   1       #ifdef POLARITY
 329   1      
 330   1           if (value < 0)                 
 331   1           {
 332   2              value = 32768+value;               //get abs value
 333   2        //      Add_consult(value); 
 334   2           #ifndef DC_SINGAL     
              		 if(CONTROL == 1)
              		 {
              	          Add_consult(value);
              	     }
              		 else
              		 {
              	          Dec_consult(value);
              	      }
                   #else   
 344   2                    Add_consult(value);
 345   2           #endif       

⌨️ 快捷键说明

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