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

📄 process.lst

📁 湖北水文信息系统水位雨量采集器的C51源代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
 244   1                      switch(len)
 245   1                      {
 246   2                              case 0:
 247   2                                                      SenBuf[6]=0x05; 
 248   2      
 249   2                                                      for(i=0;i<5;i++)
 250   2                                                                      SenBuf[7+i]=Send_WaterLevel[i];
 251   2                                                      break;                  
 252   2                                                      
 253   2                              case 1:
 254   2                                                      SenBuf[6]=0x07; 
 255   2      
 256   2                                                      SenBuf[8]=0x30; 
 257   2                                                      
 258   2                                                      for(i=0;i<5;i++)
 259   2                                                                      SenBuf[8+len+i]=Send_WaterLevel[i];
 260   2                                                      break;
 261   2                                                      
 262   2                        case 2 :      
 263   2                                                      //add by jxf    060807                                                                  
 264   2                                                      SenBuf[6]=0x0b; 
 265   2                                                      SenBuf[7]=0x32;  
 266   2      
 267   2                                                      for(i=0;i<5;i++)
 268   2                                                                      SenBuf[8+i]=Send_WaterLevel[i];
 269   2                                                                      
 270   2                                                      for(i=0;i<5;i++)
 271   2                                                                      SenBuf[13+i]=last_waterlevel[i];        
 272   2                                                                      
 273   2                                                      for(i=0;i<5;i++)
 274   2                                                                      last_waterlevel[i]=Send_WaterLevel[i];                          
 275   2                                                                      
 276   2                                                      break;                  
 277   2                      }
 278   1      
 279   1          
 280   1                      for(i=0;i<SenBuf[6]+7;i++)
 281   1                                      cs+=SenBuf[i];
 282   1      
 283   1                      SenBuf[7+SenBuf[6]]=cs;
 284   1                      
 285   1                      SenBuf[8+SenBuf[6]]=FRAME_END_CHAR;
 286   1                      Senlen=SenBuf[6]+9;   
 287   1                      
 288   1                      return 1;
 289   1      }
 290          
 291          
 292          /*******************************************************************
 293                               召测数据函数               
 294          函数原型: char Rd_collect(void)
 295          功  能:       
 296            
 297          ********************************************************************/
 298          char Rd_collect(void)
 299          {  
 300   1              char ii=0,i=0;
 301   1      
 302   1              switch(RecBuf[3])
 303   1              {
C51 COMPILER V7.50   PROCESS                                                               10/08/2006 08:51:41 PAGE 6   

 304   2                case 1 : 
 305   2                                       ii=RainFall_Process(RecBuf[5],Scan_RainFall,i);//将RainFall 换为Scan_RainFall  by xupeng
 306   2                                       //去掉了RainFall=0;
 307   2                                       return ii; 
 308   2      
 309   2                case 2 :                              
 310   2                                      ii=Waterlevel(RecBuf[5],i);
 311   2                                      return ii;
 312   2              }        
 313   1                
 314   1      }
 315          
 316          
 317          /*******************************************************************
 318                               自报雨量函数               
 319          函数原型: void Rep_rainfall(void)
 320          功  能:       
 321            
 322          ********************************************************************/
 323          void Rep_rainfall(void)
 324          {
 325   1         unsigned char fc,i=2;
 326   1         
 327   1              SenBuf[0]=FRAME_START_CHAR;
 328   1              SenBuf[1]=add[0];
 329   1              SenBuf[2]=add[1];       
 330   1              SenBuf[4]=FRAME_START_CHAR;
 331   1               
 332   1              fc=0x03;
 333   1              RainFall_Process(fc,RainFall,i);
 334   1          
 335   1              RainFall=0;
 336   1      
 337   1              Rec_to_Send();
 338   1      }
 339          
 340          
 341          /*******************************************************************
 342                               自报水位函数               
 343          函数原型: void Rep_waterlevel(void)
 344          功  能: 
 345            
 346          ********************************************************************/
 347          void Rep_waterlevel(void)
 348          {
 349   1         unsigned char fc,i=2;
 350   1            
 351   1               SenBuf[0]=FRAME_START_CHAR;
 352   1               SenBuf[1]=add[0];
 353   1               SenBuf[2]=add[1];      
 354   1               SenBuf[4]=FRAME_START_CHAR;
 355   1         
 356   1         fc=0x03;
 357   1         Waterlevel(fc,i);
 358   1         
 359   1         Rec_to_Send();
 360   1      }
 361          
 362          /*******************************************************************
 363                               加报雨量函数               
 364          函数原型: void Add_rainfall(unsigned long int sum_rainfall,unsigned char add_data)
 365          功  能:       
C51 COMPILER V7.50   PROCESS                                                               10/08/2006 08:51:41 PAGE 7   

 366            
 367          ********************************************************************/
 368          
 369          void Add_rainfall(unsigned long int sum_rainfall,unsigned char add_data)
 370          {
 371   1          unsigned char fc,k;
 372   1          k=1;
 373   1         
 374   1                      SenBuf[0]=FRAME_START_CHAR;
 375   1                      SenBuf[1]=add[0];
 376   1                      SenBuf[2]=add[1];       
 377   1                      SenBuf[4]=FRAME_START_CHAR;
 378   1              
 379   1                      SenBuf[7]=add_data+0x30;
 380   1      
 381   1                      if(add_data>9)
 382   1                              SenBuf[7]=SenBuf[7]+0x07;
 383   1               
 384   1                      fc=0x08;
 385   1                      RainFall_Process(fc,sum_rainfall,k);
 386   1         
 387   1                      Rec_to_Send();
 388   1      }
 389          
 390          
 391          /*******************************************************************
 392                               加报水位函数               
 393          函数原型: void Add_waterlevel(unsigned char add_data)
 394          功  能: 
 395            
 396          ********************************************************************/
 397          
 398          void Add_waterlevel(unsigned char add_data)
 399          {
 400   1         unsigned char fc,k;
 401   1         
 402   1          k=1;
 403   1            
 404   1                      SenBuf[0]=FRAME_START_CHAR;
 405   1                      SenBuf[1]=add[0];
 406   1                      SenBuf[2]=add[1];       
 407   1                      SenBuf[4]=FRAME_START_CHAR;
 408   1              
 409   1              SenBuf[7]=add_data+0x30;
 410   1          
 411   1                      if(add_data>9)
 412   1                      SenBuf[7]=SenBuf[7]+0x07;
 413   1         
 414   1              fc=0x08;
 415   1              Waterlevel(fc,k);
 416   1         
 417   1              Rec_to_Send();
 418   1      }
 419          
 420          /*******************************************************************
 421                               配置基本水位函数               
 422          函数原型: char config_basic_waterlevel(void)
 423          功  能:       
 424            
 425          ********************************************************************/
 426          char config_basic_waterlevel(void)
 427          {
C51 COMPILER V7.50   PROCESS                                                               10/08/2006 08:51:41 PAGE 8   

 428   1              unsigned char i;
 429   1              unsigned char xdata b_level[5];
 430   1              
 431   1              cs=0;
 432   1      
 433   1              for(i=0;i<5;i++)
 434   1              {
 435   2                                      b_level[i]=0;
 436   2              }       
 437   1              
 438   1              if((RecBuf[7]>=0x30)&&(RecBuf[7]<=0x39)&&(RecBuf[8]>=0x30)&&(RecBuf[8]<=0x39)&&
 439   1                       (RecBuf[9]>=0x30)&&(RecBuf[9]<=0x39)&&(RecBuf[10]>=0x30)&&(RecBuf[10]<=0x39)&&
 440   1                       (RecBuf[11]>=0x30)&&(RecBuf[11]<=0x39)&&(RecBuf[6]==0x05))
 441   1        {
 442   2                              for(i=0;i<5;i++)
 443   2                                      b_level[i]=RecBuf[7+i]; 
 444   2                                      
 445   2                              Basic_WaterLevel=CHAR_TO_LONG(b_level,5);                       
 446   2                      
 447   2                              W_block(WPAGE5,i2c_addr_basic_level,&b_level,5);
 448   2                              
 449   2                              cl_ack_ct(RecBuf[5],RecBuf[3],1); 
 450   2               }
 451   1               else
 452   1                              cl_ack_ct(RecBuf[5],RecBuf[3],0); 
 453   1               
 454   1               return 1;
 455   1      }
 456          
 457          
 458          /*******************************************************************
 459                               配置雨量倍数函数               
 460          函数原型: char config_Multiplier_rainfall(void)
 461          功  能:       
 462            
 463          ********************************************************************/
 464          char config_Multiplier_rainfall(void)
 465          {
 466   1              cs=0;
 467   1              
 468   1              if((RecBuf[7]>=0x30)&&(RecBuf[7]<=0x39)&&(RecBuf[6]==0x01)&&(RecBuf[3]==0x01))
 469   1        {
 470   2                              Mult_Rainfall=CHAR_TO_LONG(&RecBuf[7],1);                       
 471   2                      
 472   2                              W_block(WPAGE5,i2c_addr_mult_rainfall,&Mult_Rainfall,1);
 473   2                              
 474   2                              cl_ack_ct(RecBuf[5],RecBuf[3],1); 
 475   2               }
 476   1               else
 477   1                              cl_ack_ct(RecBuf[5],RecBuf[3],0); 
 478   1               
 479   1               return 1;
 480   1      }
 481          
 482          /*******************************************************************
 483                               写配置函数               
 484          函数原型: char Wr_cfg(void)
 485          功  能:       
 486            
 487          ********************************************************************/
 488          char Wr_cfg(void)
 489          {
C51 COMPILER V7.50   PROCESS                                                               10/08/2006 08:51:41 PAGE 9   

 490   1              unsigned char i;
 491   1              unsigned char xdata cr_cfg[3],new_cfg[3];
 492   1              
 493   1              cs=0;
 494   1      
 495   1              for(i=0;i<3;i++)

⌨️ 快捷键说明

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