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

📄 init.lst

📁 湖北水文信息系统水位雨量采集器的C51源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 200          * 函 数 名: void level_conditions_init(void)
 201          * 功能描述: 水位门限初始化
 202          * 函数说明: 
 203          * 调用函数: 无
 204          * 全局变量:无
 205          * 输 入: 无
 206          * 返 回: 无
 207          * 设 计 者:
 208          ***********************************************************************/
 209          void level_conditions_init(void)
 210          {
 211   1                      unsigned char i,j;
 212   1                      unsigned char xdata cd_config[11][10],new_cd[11][10];
 213   1                      
 214   1                      for(i=0;i<11;i++)
 215   1                for(j=0;j<10;j++)
 216   1          {
 217   2                                      new_cd[i][j]=0x00;
 218   2                }
 219   1              
 220   1                      R_block(WPAGE2,RPAGE3,i2c_addr_lvct,&cd_config[0][0],110);       
 221   1                      if(cd_config[0][0]==0xff)
 222   1          {                           
 223   2                                      R_block(WPAGE3,RPAGE3,i2c_addr_lvct,&cd_config[0][0],110);       
 224   2                                      if(cd_config[0][0]==0xff)
 225   2                                      {
 226   3                                                              W_block(WPAGE3,i2c_addr_lvct,&new_cd[0][0],110);
 227   3                                      }
 228   2                                      
 229   2                                      new_cd[0][0]|=0x80; 
 230   2                                      W_block(WPAGE2,i2c_addr_lvct,&new_cd[0][0],110);
 231   2                                      
 232   2                                      for(i=0;i<11;i++)
 233   2                              for(j=0;j<10;j++)
 234   2                      {
 235   3                                                      cd_config[i][j]=new_cd[i][j];
 236   3                              }
 237   2                }
 238   1                
 239   1                      if((cd_config[0][0]&0x80)!=0x80)
 240   1                      {   
 241   2                                      R_block(WPAGE3,RPAGE3,i2c_addr_lvct,&cd_config[0][0],110);              
C51 COMPILER V7.50   INIT                                                                  10/08/2006 08:51:40 PAGE 5   

 242   2                      }
 243   1                      cd_config[0][0]&=0x7f;
 244   1              for(i=0;i<11;i++)
 245   1                      {
 246   2                                      level_cd[i].cd_time=CHAR_TO_LONG(&cd_config[i][0],4);
 247   2                                      level_cd[i].cd_data=CHAR_TO_LONG(&cd_config[i][4],6);
 248   2                      }
 249   1      }
 250          
 251          
 252          /*********************************************************************
 253          * 函 数 名: void rainfall_5min_init(void)
 254          * 功能描述: 初始化读取每5分钟的雨量
 255          * 函数说明: 
 256          * 调用函数: 无
 257          * 全局变量:无
 258          * 输 入: 无
 259          * 返 回: 无
 260          * 设 计 者:
 261          ***********************************************************************/
 262          void rainfall_5min_init(void)
 263          {
 264   1                      unsigned char i,j;
 265   1                              
 266   1                      R_block(WPAGE4,RPAGE4,i2c_addr_rainfall,&RainFall_5Min[0][0],rf_dlen*2);
 267   1                      if((RainFall_5Min[0][0]==0xff)||(RainFall_5Min[0][1]==0xff))
 268   1                      {
 269   2                                      for(i=0;i<rf_dlen;i++)
 270   2                                      for(j=0;j<2;j++)
 271   2                                                      RainFall_5Min[i][j]=0; 
 272   2                                      W_block(WPAGE4,i2c_addr_rainfall,&RainFall_5Min[0][0],rf_dlen*2); 
 273   2                      }        
 274   1      }
 275          
 276          /*********************************************************************
 277          * 函 数 名: void Rd_i2c_init(void)
 278          * 功能描述: 读I2C初始化数据
 279          * 函数说明: 
 280          * 调用函数: 无
 281          * 全局变量:无
 282          * 输 入: 无
 283          * 返 回: 无
 284          * 设 计 者:
 285          ***********************************************************************/
 286          void Rd_i2c_init(void)
 287          {
 288   1                      mult_rainfall_init();
 289   1                      basiclevel_init();
 290   1                      rainfall_config_init();
 291   1                      waterlevel_config_init();
 292   1                      rain_conditions_init();
 293   1                      level_conditions_init();
 294   1                      rainfall_5min_init();
 295   1      }
 296          
 297          
 298          /*********************************************************************
 299          * 函 数 名: init
 300          * 功能描述: 初始化
 301          * 函数说明: 
 302          * 调用函数: 无
 303          * 全局变量:无
C51 COMPILER V7.50   INIT                                                                  10/08/2006 08:51:40 PAGE 6   

 304          * 输 入: 无
 305          * 返 回: 无
 306          * 设 计 者:
 307          ***********************************************************************/
 308          void init(void)
 309          {
 310   1                      unsigned char i,j;
 311   1      
 312   1                      for(i=0;i<5;i++)
 313   1                                      Scan_WaterLevel[i]=0; //水位初始化
 314   1      
 315   1                      rfcd_1min=0;
 316   1                      for(j=0;j<11;j++)
 317   1                      {
 318   2                                      rfcd_time[j]=0;  //雨量门限定时
 319   2                      }
 320   1                      save_time=0;            
 321   1      
 322   1                      new_cfg=0; //新门限配置初始化
 323   1      
 324   1              //      sum_rf=0; //门限雨量和初始化
 325   1      
 326   1                      RainFall=0; //雨量初始化
 327   1                      WaterLevel=0; //平均水位初始化
 328   1                      Scan_RainFall=0;   //雨量门限累加初始化
 329   1              
 330   1                      rain_1min=0;
 331   1                      r_time=0;  //雨量采集初始化
 332   1      
 333   1                      level_1min=0;
 334   1                      l_time=0;  //水位采集初始化     
 335   1      }
 336          
 337          /*********************************************************************
 338          * 函 数 名: sys_init
 339          * 功能描述: 系统初始化
 340          * 函数说明: 定时器1产生通信波特率9600
 341          * 调用函数: 无
 342          * 全局变量:无
 343          * 输 入: 无
 344          * 返 回: 无
 345          * 设 计 者:
 346          ***********************************************************************/
 347          
 348          void sys_init(void)
 349          {
 350   1                      con_485=R_CON;
 351   1      
 352   1          TMOD=0x21;        // 设置定时器1工作方式 2 
 353   1          TH0=0xfc;         // 定时1MS
 354   1          TL0=0x66; 
 355   1          TR0=1;
 356   1          ET0=1;
 357   1          
 358   1          TH1=0xfd;         // 设置波特率9600bps
 359   1          TL1=0xfd;
 360   1          PCON&=0x00;       // SMOD=0
 361   1          TR1=1;                // 开启定时器 
 362   1          SCON=0x40;        // 设置串行口工作方式 1
 363   1          REN=1;            // 允许接收
 364   1          EA=1;             // 总中断允许 
 365   1          ES=1;             // 串行口中断允许
C51 COMPILER V7.50   INIT                                                                  10/08/2006 08:51:40 PAGE 7   

 366   1      
 367   1          SCONF=0x02;       // 片内扩展ram使能
 368   1              
 369   1                      RCAP2H=0xb8;      // 重装值
 370   1                      RCAP2L=0x00;
 371   1          TH2=0xb8;         //定时器2定时20ms  
 372   1                      TL2=0x00;                             
 373   1          ET2= 1;           // 允许T2中断
 374   1                      T2CON= 0x00;
 375   1          TR2= 1;
 376   1              
 377   1                      WDTKEY=0x1E;
 378   1                      WDTKEY=0xE1;
 379   1                      WDTC=0x85;        // 看门狗定时器使能,溢出时间为65.536ms
 380   1                      WDTKEY=0xE1;
 381   1                      WDTKEY=0x1E;
 382   1      
 383   1          EX0=1;            // INT0中断开
 384   1          IT0=0;            // INT0低电平触发
 385   1      
 386   1          P4=0x0f;
 387   1                      init(); 
 388   1                      Rd_i2c_init();
 389   1      
 390   1      }
 391          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1625    ----
   CONSTANT SIZE    =      6    ----
   XDATA SIZE       =   ----     440
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      22
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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