?? 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 + -