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