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

📄 bat_ctrl12_ac.lst

📁 光电控制器的源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 500   2                      Led_Ctrl(0,1);  //过充过放灯L2亮
 501   2              }
 502   1              else if(BatValue>GUOCHONG12)
 503   1              {
 504   2                      if(!StopFlag)
 505   2                      {
 506   3                              ET0 = 0;
 507   3                              enPWM = 1;      //允许PWM
 508   3                              ET0 = 1;
 509   3                      }
 510   2                      PowerFlag = 1;  //允许放电
 511   2                      if(SunValue>BatValue)
 512   2                              Led_Ctrl(1,1);  //运行状态灯L3亮
 513   2                      else
 514   2                              Led_Ctrl(1,2);
 515   2                      Led_Ctrl(0,1);  //过充过放灯L2亮
 516   2              }
 517   1              else if(BatValue>YUNFANG12)
 518   1              {
 519   2                      if(!StopFlag)
 520   2                      {
 521   3                              ET0 = 0;
 522   3                              enPWM = 0;      //禁止PWM
 523   3                              P14 = 1;        //全速充电
 524   3                              ET0 = 1;
 525   3                      }
 526   2                      PowerFlag = 1;  //允许放电
 527   2                      if(SunValue>BatValue)
 528   2                              Led_Ctrl(1,1);  //运行状态灯L3亮
 529   2                      else
 530   2                              Led_Ctrl(1,2);
 531   2                      Led_Ctrl(0,0);  //过充过放灯L2灭
 532   2              }
 533   1              else;
 534   1              
 535   1              Clr_Dog();
 536   1              
 537   1              if(BatValue<GUOFANG12)
 538   1              {
 539   2                      P04 = 0;        //关闭负荷12
 540   2                      enPWM = 0;      //禁止PWM
 541   2                      P14 = 1;        //全速充电
 542   2                      PowerFlag = 0;  //禁止放电
 543   2                      if(SunValue>BatValue)
 544   2                              Led_Ctrl(1,1);  //运行状态灯L3亮(充电)
 545   2                      else
 546   2                              Led_Ctrl(1,2);
 547   2                      Led_Ctrl(0,2);  //过充过放灯L2闪烁(过放)
 548   2              }
 549   1              else
 550   1              {
 551   2                      if(BatValue<YUNCHONG12)
C51 COMPILER V7.50   BAT_CTRL12_AC                                                         08/21/2007 19:03:52 PAGE 10  

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

 614   4                                      if(SunValue>MIEDENG12)
 615   4                                      {
 616   5                                              if(Delay_4min(1))/*延时4min*/
 617   5                                              {
 618   6                                                      if(SunValue>MIEDENG12)
 619   6                                                      {
 620   7                                                              P04 = 0;        //关闭负荷12
 621   7                                                              ClrFlag = 1;    //允许清0
 622   7                                                              CtrlFlag = 1;
 623   7                                                      }
 624   6                                              }
 625   5                                      }
 626   4                                      if(Hours >= TimeMode && ClrFlag==0)
 627   4                                      {
 628   5                                              P04 = 0;                //关闭负荷12
 629   5                                              ClrFlag = 1;    //允许清0
 630   5                                              CtrlFlag = 0;
 631   5                                      }
 632   4                              }
 633   3                      }
 634   2              }
 635   1      }
 636          /*********************************************************************/
 637          /*函数名:
 638          /*功能:
 639          /*输入参数:
 640          /*返回值:
 641          /*调用函数:
 642          /*被调用函数:
 643          /*编写日期:
 644          /*最后修改日期:
 645          /********************************************************************/ 
 646          void Clr_Dog()
 647          {
 648   1              EA = 0; //关闭中断 
 649   1              WFEED1 = 0xA5; //执行清零第一部分 
 650   1              WFEED2 = 0x5A; //执行清零第二部分 
 651   1              EA = 1; //开中断
 652   1      }
 653          /*********************************************************************/
 654          /*函数名:
 655          /*功能:
 656          /*输入参数:port=1--L3,port=0--L2;mode=0常灭--mode=1--常亮mode=2--闪烁
 657          /*返回值:
 658          /*调用函数:
 659          /*被调用函数:
 660          /*编写日期:
 661          /*最后修改日期:
 662          /********************************************************************/ 
 663          void Led_Ctrl(bit port,uchar mode)
 664          {
 665   1              Clr_Dog();
 666   1              
 667   1              if(mode == 2)
 668   1              {
 669   2                      if(port)
 670   2                              enL3 = 1;
 671   2                      else
 672   2                              enL2 = 1;
 673   2              }
 674   1              else if(mode == 1)
 675   1              {
C51 COMPILER V7.50   BAT_CTRL12_AC                                                         08/21/2007 19:03:52 PAGE 12  

 676   2                      if(port)
 677   2                      {
 678   3                              enL3 = 0;
 679   3                              P00 = 0;
 680   3                      }
 681   2                      else
 682   2                      {
 683   3                              enL2 = 0;
 684   3                              P01 = 0;
 685   3                      }
 686   2              }
 687   1              else
 688   1              {
 689   2                      if(port)
 690   2                      {
 691   3                              enL3 = 0;
 692   3                              P00 = 1;
 693   3                      }
 694   2                      else
 695   2                      {
 696   3                              enL2 = 0;
 697   3                              P01 = 1;
 698   3                      }
 699   2              }
 700   1      }
 701          /*********************************************************************/
 702          /*函数名:
 703          /*功能:
 704          /*输入参数:
 705          /*返回值:
 706          /*调用函数:
 707          /*被调用函数:
 708          /*编写日期:
 709          /*最后修改日期:
 710          /********************************************************************/
 711          bit Delay_4min(bit enDelay)
 712          {
 713   1              Clr_Dog();
 714   1              if(enDelay)
 715   1              {
 716   2                      enDelay1 = 1;
 717   2                      if(Delay4min1>=DELAY_MIN)
 718   2                      {
 719   3                              enDelay1 = 0;
 720   3                              Delay4min1 = 0;
 721   3                              return(1);
 722   3                      }       
 723   2              }
 724   1              else
 725   1              {
 726   2                      enDelay2 = 1;
 727   2                      if(Delay4min2>=DELAY_MIN)
 728   2                      {
 729   3                              enDelay2 = 0;
 730   3                              Delay4min2 = 0;
 731   3                              return(1);
 732   3                      }
 733   2              }
 734   1              return(0);
 735   1      }
 736          /********************END********************/
 737          
C51 COMPILER V7.50   BAT_CTRL12_AC                                                         08/21/2007 19:03:52 PAGE 13  



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


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

⌨️ 快捷键说明

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