?? bat_ctrl.lst
字號:
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_CTRL 07/22/2007 15:43:54 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_CTRL 07/22/2007 15:43:54 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_CTRL 07/22/2007 15:43:54 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_CTRL 07/22/2007 15:43:54 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 + -