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

📄 bat_ctrl_12v_24v.lst

📁 光电控制器的源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 466          /********************************************************************/ 
 467          void GetAd()
 468          {
 469   1              uchar i;
 470   1              uint BatTmp,SunTmp;
 471   1              Clr_Dog();
 472   1              
 473   1              EAD = 0;
 474   1              BatTmp = 0;
 475   1              SunTmp = 0;
 476   1              for(i=0;i<AD_NUM;i++)
 477   1              {
 478   2                      BatTmp += AdValue.BatAd[i];
 479   2                      SunTmp += AdValue.SunAd[i];
 480   2              }
 481   1              BatValue = BatTmp/AD_NUM;
 482   1              SunValue = SunTmp/AD_NUM;
 483   1              EAD = 1;
 484   1      }
 485          /*********************************************************************/
 486          /*函数名:
 487          /*功能:
 488          /*输入参数:
 489          /*返回值:
C51 COMPILER V7.50   BAT_CTRL_12V_24V                                                      12/27/2008 14:12:22 PAGE 9   

 490          /*调用函数:
 491          /*被调用函数:
 492          /*编写日期:
 493          /*最后修改日期:
 494          /********************************************************************/ 
 495          void Main_Logic12(uchar TimeMode)
 496          {
 497   1              Clr_Dog();
 498   1      
 499   1              if(BatValue>TINGCHONG12)// && P14==0)
 500   1              {
 501   2                      if(!StopFlag)
 502   2                      {
 503   3                              ET0 = 0;
 504   3                              enPWM = 0;      //禁止PWM
 505   3                              P14 = 0;        //停止充电
 506   3                              StopFlag = 1;   //停止充电
 507   3                              ET0 = 1;
 508   3                      }
 509   2                      PowerFlag = 1;  //允许放电
 510   2                      Led_Ctrl(1,2);  //运行状态灯L3闪烁
 511   2                      Led_Ctrl(0,1);  //过充过放灯L2亮
 512   2              }
 513   1              else if(BatValue>GUOCHONG12)
 514   1              {
 515   2                      if(!StopFlag)
 516   2                      {
 517   3                              ET0 = 0;
 518   3                              enPWM = 1;      //允许PWM
 519   3                              ET0 = 1;
 520   3                      }
 521   2                      PowerFlag = 1;  //允许放电
 522   2                      if(SunValue>BatValue)
 523   2                              Led_Ctrl(1,1);  //运行状态灯L3亮
 524   2                      else
 525   2                              Led_Ctrl(1,2);
 526   2                      Led_Ctrl(0,1);  //过充过放灯L2亮
 527   2              }
 528   1              else if(BatValue>YUNFANG12)
 529   1              {
 530   2                      if(!StopFlag)
 531   2                      {
 532   3                              ET0 = 0;
 533   3                              enPWM = 0;      //禁止PWM
 534   3                              P14 = 1;        //全速充电
 535   3                              ET0 = 1;
 536   3                      }
 537   2                      PowerFlag = 1;  //允许放电
 538   2                      if(SunValue>BatValue)
 539   2                              Led_Ctrl(1,1);  //运行状态灯L3亮
 540   2                      else
 541   2                              Led_Ctrl(1,2);
 542   2                      Led_Ctrl(0,0);  //过充过放灯L2灭
 543   2              }
 544   1              else;
 545   1              
 546   1              Clr_Dog();
 547   1              
 548   1              if(BatValue<GUOFANG12)
 549   1              {
 550   2                      P05 = 0;        //关闭负荷11
 551   2                      P04 = 0;        //关闭负荷12
C51 COMPILER V7.50   BAT_CTRL_12V_24V                                                      12/27/2008 14:12:22 PAGE 10  

 552   2                      enPWM = 0;      //禁止PWM
 553   2                      P14 = 1;        //全速充电
 554   2                      PowerFlag = 0;  //禁止放电
 555   2                      if(SunValue>BatValue)
 556   2                              Led_Ctrl(1,1);  //运行状态灯L3亮(充电)
 557   2                      else
 558   2                              Led_Ctrl(1,2);
 559   2                      Led_Ctrl(0,2);  //过充过放灯L2闪烁(过放)
 560   2              }
 561   1              else
 562   1              {
 563   2                      if(BatValue<YUNCHONG12)
 564   2                      {
 565   3                              enPWM = 0;      //禁止PWM
 566   3                              P14 = 1;        //全速充电
 567   3                              StopFlag = 0;   //允许再次充电
 568   3                              if(SunValue>BatValue)
 569   3                                      Led_Ctrl(1,1);  //运行状态灯L3亮(充电)
 570   3                              else
 571   3                                      Led_Ctrl(1,2);
 572   3                              Led_Ctrl(0,0);  //过充过放灯L2灭
 573   3                      }
 574   2                      if(PowerFlag)
 575   2                      {
 576   3                              if(TimeMode == 0)
 577   3                              {
 578   4                                      P05 = 1;        //启动负荷
 579   4                                      P04 = 1;                //启动负荷
 580   4                                      CtrlFlag = 1;
 581   4                              }
 582   3                              else
 583   3                              {
 584   4                                      Clr_Dog();
 585   4                                      
 586   4                                      if(SunValue>=LIANGDENG12)
 587   4                                              Delay4min2 = 0;
 588   4                                      if(SunValue<=MIEDENG12)
 589   4                                              Delay4min1 = 0;                                                 //延时清0
 590   4                                      
 591   4                                      if(SunValue<NODELAY12)
 592   4                                      {
 593   5                                              P05 = 1;        //启动负荷11
 594   5                                              if(CtrlFlag)
 595   5                                              {
 596   6                                                      P04 = 1;                //启动负荷12
 597   6                                              }
 598   5                                              if(ClrFlag)
 599   5                                              {
 600   6                                                      Seconds = 0;    //清0
 601   6                                                      Minutes = 0;    //清0
 602   6                                                      Hours = 0;              //启动负荷的同时时间清0开始计数
 603   6                                                      ClrFlag = 0;    //禁止清0
 604   6                                              }
 605   5                                      }
 606   4                                      else if(SunValue<LIANGDENG12)
 607   4                                      {
 608   5                                              if(Delay_4min(0))       /*延时4min*/
 609   5                                              {
 610   6                                                      if(SunValue<LIANGDENG12)
 611   6                                                      {
 612   7                                                              P05 = 1;        //启动负荷
 613   7                                                              if(CtrlFlag)
C51 COMPILER V7.50   BAT_CTRL_12V_24V                                                      12/27/2008 14:12:22 PAGE 11  

 614   7                                                              {
 615   8                                                                      P04 = 1;                //启动负荷
 616   8                                                              }
 617   7                                                              if(ClrFlag)
 618   7                                                              {
 619   8                                                                      Seconds = 0;    //清0
 620   8                                                                      Minutes = 0;    //清0
 621   8                                                                      Hours = 0;              //启动负荷的同时时间清0开始计数
 622   8                                                                      ClrFlag = 0;    //禁止清0
 623   8                                                              }
 624   7                                                      }
 625   6                                              }
 626   5                                      }
 627   4                                      else;
 628   4                                      Clr_Dog();
 629   4                                      if(SunValue>MIEDENG12)
 630   4                                      {
 631   5                                              if(Delay_4min(1))/*延时4min*/
 632   5                                              {
 633   6                                                      if(SunValue>MIEDENG12)
 634   6                                                      {
 635   7                                                              P05 = 0;        //关闭负荷11
 636   7                                                              P04 = 0;        //关闭负荷12
 637   7                                                              ClrFlag = 1;    //允许清0
 638   7                                                              CtrlFlag = 1;
 639   7                                                      }
 640   6                                              }
 641   5                                      }
 642   4                                      if(Hours >= TimeMode && ClrFlag==0)
 643   4                                      {
 644   5                                              P04 = 0;                //关闭负荷12
 645   5                                              ClrFlag = 1;    //允许清0
 646   5                                              CtrlFlag = 0;
 647   5                                      }
 648   4                              }
 649   3                      }
 650   2              }
 651   1      }
 652          /*********************************************************************/
 653          /*函数名:
 654          /*功能:
 655          /*输入参数:
 656          /*返回值:
 657          /*调用函数:
 658          /*被调用函数:
 659          /*编写日期:
 660          /*最后修改日期:
 661          /********************************************************************/ 
 662          void Main_Logic24(uchar TimeMode)
 663          {
 664   1              Clr_Dog();
 665   1      
 666   1              if(BatValue>TINGCHONG24)// && P14==0)
 667   1              {
 668   2                      if(!StopFlag)
 669   2                      {
 670   3                              ET0 = 0;
 671   3                              enPWM = 0;      //禁止PWM
 672   3                              P14 = 0;        //停止充电
 673   3                              StopFlag = 1;   //停止充电
 674   3                              ET0 = 1;
 675   3                      }
C51 COMPILER V7.50   BAT_CTRL_12V_24V                                                      12/27/2008 14:12:22 PAGE 12  

 676   2                      PowerFlag = 1;  //允许放电
 677   2                      Led_Ctrl(1,2);  //运行状态灯L3闪烁
 678   2                      Led_Ctrl(0,1);  //过充过放灯L2亮
 679   2              }
 680   1              else if(BatValue>GUOCHONG24)
 681   1              {
 682   2                      if(!StopFlag)
 683   2                      {
 684   3                              ET0 = 0;
 685   3                              enPWM = 1;      //允许PWM
 686   3                              ET0 = 1;
 687   3                      }
 688   2                      PowerFlag = 1;  //允许放电
 689   2                      if(SunValue>BatValue)
 690   2                              Led_Ctrl(1,1);  //运行状态灯L3亮
 691   2                      else
 692   2                              Led_Ctrl(1,2);
 693   2                      Led_Ctrl(0,1);  //过充过放灯L2亮
 694   2              }
 695   1              else if(BatValue>YUNFANG24)
 696   1              {
 697   2                      if(!StopFlag)
 698   2                      {
 699   3                              ET0 = 0;
 700   3                              enPWM = 0;      //禁止PWM
 701   3                              P14 = 1;        //全速充

⌨️ 快捷键说明

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