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

📄 bat_ctrl24.lst

📁 光电控制器的源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 470   2                      if(SunValue>BatValue)
 471   2                              Led_Ctrl(1,1);  //运行状态灯L3亮
 472   2                      else
 473   2                              Led_Ctrl(1,2);
 474   2                      Led_Ctrl(0,1);  //过充过放灯L2亮
 475   2              }
 476   1              else if(BatValue>YUNFANG)
 477   1              {
 478   2                      enPWM = 0;      //禁止PWM
 479   2                      P14 = 1;        //全速充电
 480   2                      PowerFlag = 1;  //允许放电
 481   2                      if(SunValue>BatValue)
 482   2                              Led_Ctrl(1,1);  //运行状态灯L3亮
 483   2                      else
 484   2                              Led_Ctrl(1,2);
 485   2                      Led_Ctrl(0,0);  //过充过放灯L2灭
 486   2              }
 487   1              else;
 488   1              
 489   1              Clr_Dog();
C51 COMPILER V7.50   BAT_CTRL24                                                            07/30/2007 18:37:04 PAGE 9   

 490   1              
 491   1              if(BatValue<GUOFANG)
 492   1              {
 493   2                      P05 = 0;        //关闭负荷11
 494   2                      P04 = 0;        //关闭负荷12
 495   2                      enPWM = 0;      //禁止PWM
 496   2                      P14 = 1;        //全速充电
 497   2                      PowerFlag = 0;  //禁止放电
 498   2                      if(SunValue>BatValue)
 499   2                              Led_Ctrl(1,1);  //运行状态灯L3亮(充电)
 500   2                      else
 501   2                              Led_Ctrl(1,2);
 502   2                      Led_Ctrl(0,2);  //过充过放灯L2闪烁(过放)
 503   2              }
 504   1              else
 505   1              {
 506   2                      if(BatValue<YUNCHONG)
 507   2                      {
 508   3                              enPWM = 0;      //禁止PWM
 509   3                              P14 = 1;        //全速充电
 510   3                              if(SunValue>BatValue)
 511   3                                      Led_Ctrl(1,1);  //运行状态灯L3亮(充电)
 512   3                              else
 513   3                                      Led_Ctrl(1,2);
 514   3                              Led_Ctrl(0,0);  //过充过放灯L2灭
 515   3                      }
 516   2                      if(PowerFlag)
 517   2                      {
 518   3                              if(TimeMode == 0)
 519   3                              {
 520   4                                      P05 = 1;        //启动负荷
 521   4                                      P04 = 1;                //启动负荷
 522   4                                      CtrlFlag = 1;
 523   4                              }
 524   3                              else
 525   3                              {
 526   4                                      if(SunValue>=LIANGDENG)
 527   4                                              Delay4min2 = 0;
 528   4                                      if(SunValue<=MIEDENG)
 529   4                                              Delay4min1 = 0;                                                 //延时清0
 530   4                                      
 531   4                                      if(SunValue<NODELAY)
 532   4                                      {
 533   5                                              P05 = 1;        //启动负荷11
 534   5                                              if(CtrlFlag)
 535   5                                              {
 536   6                                                      P04 = 1;                //启动负荷12
 537   6                                              }
 538   5                                              if(ClrFlag)
 539   5                                              {
 540   6                                                      Seconds = 0;    //清0
 541   6                                                      Minutes = 0;    //清0
 542   6                                                      Hours = 0;              //启动负荷的同时时间清0开始计数
 543   6                                                      ClrFlag = 0;    //禁止清0
 544   6                                              }
 545   5                                      }
 546   4                                      else if(SunValue<LIANGDENG)
 547   4                                      {
 548   5                                              if(Delay_4min(0))       /*延时4min*/
 549   5                                              {
 550   6                                                      if(SunValue<LIANGDENG)
 551   6                                                      {
C51 COMPILER V7.50   BAT_CTRL24                                                            07/30/2007 18:37:04 PAGE 10  

 552   7                                                              P05 = 1;        //启动负荷
 553   7                                                              if(CtrlFlag)
 554   7                                                              {
 555   8                                                                      P04 = 1;                //启动负荷
 556   8                                                              }
 557   7                                                              if(ClrFlag)
 558   7                                                              {
 559   8                                                                      Seconds = 0;    //清0
 560   8                                                                      Minutes = 0;    //清0
 561   8                                                                      Hours = 0;              //启动负荷的同时时间清0开始计数
 562   8                                                                      ClrFlag = 0;    //禁止清0
 563   8                                                              }
 564   7                                                      }
 565   6                                              }
 566   5                                      }
 567   4                                      else;
 568   4                                      if(SunValue>MIEDENG)
 569   4                                      {
 570   5                                              if(Delay_4min(1))/*延时4min*/
 571   5                                              {
 572   6                                                      if(SunValue>MIEDENG)
 573   6                                                      {
 574   7                                                              P05 = 0;        //关闭负荷11
 575   7                                                              P04 = 0;        //关闭负荷12
 576   7                                                              ClrFlag = 1;    //允许清0
 577   7                                                              CtrlFlag = 1;
 578   7                                                      }
 579   6                                              }
 580   5                                      }
 581   4                                      if(Hours >= TimeMode && ClrFlag==0)
 582   4                                      {
 583   5                                              P04 = 0;                //关闭负荷12
 584   5                                              ClrFlag = 1;    //允许清0
 585   5                                              CtrlFlag = 0;
 586   5                                      }
 587   4                              }
 588   3                      }
 589   2              }
 590   1      }
 591          /*********************************************************************/
 592          /*函数名:
 593          /*功能:
 594          /*输入参数:
 595          /*返回值:
 596          /*调用函数:
 597          /*被调用函数:
 598          /*编写日期:
 599          /*最后修改日期:
 600          /********************************************************************/ 
 601          void Clr_Dog()
 602          {
 603   1              EA = 0; //关闭中断 
 604   1              WFEED1 = 0xA5; //执行清零第一部分 
 605   1              WFEED2 = 0x5A; //执行清零第二部分 
 606   1              EA = 1; //开中断
 607   1      }
 608          /*********************************************************************/
 609          /*函数名:
 610          /*功能:
 611          /*输入参数:port=1--L3,port=0--L2;mode=0常灭--mode=1--常亮mode=2--闪烁
 612          /*返回值:
 613          /*调用函数:
C51 COMPILER V7.50   BAT_CTRL24                                                            07/30/2007 18:37:04 PAGE 11  

 614          /*被调用函数:
 615          /*编写日期:
 616          /*最后修改日期:
 617          /********************************************************************/ 
 618          void Led_Ctrl(bit port,uchar mode)
 619          {
 620   1              if(mode == 2)
 621   1              {
 622   2                      if(port)
 623   2                              enL3 = 1;
 624   2                      else
 625   2                              enL2 = 1;
 626   2              }
 627   1              else if(mode == 1)
 628   1              {
 629   2                      if(port)
 630   2                      {
 631   3                              enL3 = 0;
 632   3                              P00 = 0;
 633   3                      }
 634   2                      else
 635   2                      {
 636   3                              enL2 = 0;
 637   3                              P01 = 0;
 638   3                      }
 639   2              }
 640   1              else
 641   1              {
 642   2                      if(port)
 643   2                      {
 644   3                              enL3 = 0;
 645   3                              P00 = 1;
 646   3                      }
 647   2                      else
 648   2                      {
 649   3                              enL2 = 0;
 650   3                              P01 = 1;
 651   3                      }
 652   2              }
 653   1      }
 654          /*********************************************************************/
 655          /*函数名:
 656          /*功能:
 657          /*输入参数:
 658          /*返回值:
 659          /*调用函数:
 660          /*被调用函数:
 661          /*编写日期:
 662          /*最后修改日期:
 663          /********************************************************************/
 664          bit Delay_4min(bit enDelay)
 665          {
 666   1              Clr_Dog();
 667   1              if(enDelay)
 668   1              {
 669   2                      enDelay1 = 1;
 670   2                      if(Delay4min1>=DELAY_MIN)
 671   2                      {
 672   3                              enDelay1 = 0;
 673   3                              Delay4min1 = 0;
 674   3                              return(1);
 675   3                      }       
C51 COMPILER V7.50   BAT_CTRL24                                                            07/30/2007 18:37:04 PAGE 12  

 676   2              }
 677   1              else
 678   1              {
 679   2                      enDelay2 = 1;
 680   2                      if(Delay4min2>=DELAY_MIN)
 681   2                      {
 682   3                              enDelay2 = 0;
 683   3                              Delay4min2 = 0;
 684   3                              return(1);
 685   3                      }
 686   2              }
 687   1              return(0);
 688   1      }
 689          /********************END********************/
 690          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    934    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     28       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      8       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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