📄 bat_ctrl12_ac.lst
字号:
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 + -