?? charge.c
字號:
void Init_All()
{
Clr_Dog();
Init_Var();
Init_IO();
Init_AD();
Init_Timer();
Init_RTC();
Init_WDT();
Init_Interrupt();
Led_Ctrl(1,2); //L3閃爍——正常運行
Led_Ctrl(0,0); //L2滅——沒有過充或過放
charge_ctrl = 0; //負荷12關
charge_ctrlB = 0; //負荷11關
charge_output = 1; //充電
}
/*********************************************************************/
/*函數名:
/*功能:
/*輸入參數:
/*返回值:
/*調用函數:
/*被調用函數:
/*編寫日期:
/*最后修改日期:
/********************************************************************/
uchar Get_Mode()
{
uchar mode;
Clr_Dog();
mode = 0;
if(!P11)
{
mode += 1;
}
if(!P10)
{
mode += 2;
}
if(!P13)
{
mode += 4;
}
if(!P12)
{
mode += 8;
}
return(mode);
}
/*********************************************************************/
/*函數名:
/*功能:
/*輸入參數:
/*返回值:
/*調用函數:
/*被調用函數:
/*編寫日期:
/*最后修改日期:
/********************************************************************/
uchar GetAd()
{
uchar i;
uint BatTmp,SunTmp;
EAD = 0;
BatTmp = 0;
SunTmp = 0;
for(i=0;i<8;i++)
{
BatTmp += AdValue.BatAd[i];
SunTmp += AdValue.SunAd[i];
}
BatValue = BatTmp/8;
SunValue = SunTmp/8;
return(BatValue);
EAD = 1;
}
/*********************************************************************/
/*函數名:
/*功能:
/*輸入參數:
/*返回值:
/*調用函數:
/*被調用函數:
/*編寫日期:
/*最后修改日期:
/********************************************************************/
void Main_Logic12(uchar TimeMode)
{
Clr_Dog();
if(BatValue>TINGCHONG12)// && charge_output==0)
{
enPWM = 0; //禁止PWM
charge_output = 0; //停止充電
PowerFlag = 1; //允許放電
Led_Ctrl(1,2); //運行狀態燈L3閃爍
Led_Ctrl(0,1); //過充過放燈L2亮
}
else if(BatValue>GUOCHONG12)
{
enPWM = 1; //允許PWM
PowerFlag = 1; //允許放電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮
else
Led_Ctrl(1,2);
Led_Ctrl(0,1); //過充過放燈L2亮
}
else if(BatValue>YUNFANG12)
{
enPWM = 0; //禁止PWM
charge_output = 1; //全速充電
PowerFlag = 1; //允許放電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮
else
Led_Ctrl(1,2);
Led_Ctrl(0,0); //過充過放燈L2滅
}
else;
Clr_Dog();
if(BatValue<GUOFANG12)
{
charge_ctrlB = 0; //關閉負荷11
charge_ctrl = 0; //關閉負荷12
enPWM = 0; //禁止PWM
charge_output = 1; //全速充電
PowerFlag = 0; //禁止放電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮(充電)
else
Led_Ctrl(1,2);
Led_Ctrl(0,2); //過充過放燈L2閃爍(過放)
}
else
{
if(BatValue<YUNCHONG12)
{
enPWM = 0; //禁止PWM
charge_output = 1; //全速充電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮(充電)
else
Led_Ctrl(1,2);
Led_Ctrl(0,0); //過充過放燈L2滅
}
if(PowerFlag)
{
if(TimeMode == 0)
{
charge_ctrlB = 1; //啟動負荷
charge_ctrl = 1; //啟動負荷
CtrlFlag = 1;
}
else
{
if(SunValue>=LIANGDENG12)
Delay4min2 = 0;
if(SunValue<=MIEDENG12)
Delay4min1 = 0; //延時清0
if(SunValue<NODELAY12)
{
charge_ctrlB = 1; //啟動負荷11
if(CtrlFlag)
{
charge_ctrl = 1; //啟動負荷12
}
if(ClrFlag)
{
Seconds = 0; //清0
Minutes = 0; //清0
Hours = 0; //啟動負荷的同時時間清0開始計數
ClrFlag = 0; //禁止清0
}
}
else if(SunValue<LIANGDENG12)
{
if(Delay_4min(0)) /*延時4min*/
{
if(SunValue<LIANGDENG12)
{
charge_ctrlB = 1; //啟動負荷
if(CtrlFlag)
{
charge_ctrl = 1; //啟動負荷
}
if(ClrFlag)
{
Seconds = 0; //清0
Minutes = 0; //清0
Hours = 0; //啟動負荷的同時時間清0開始計數
ClrFlag = 0; //禁止清0
}
}
}
}
else;
if(SunValue>MIEDENG12)
{
if(Delay_4min(1))/*延時4min*/
{
if(SunValue>MIEDENG12)
{
charge_ctrlB = 0; //關閉負荷11
charge_ctrl = 0; //關閉負荷12
ClrFlag = 1; //允許清0
CtrlFlag = 1;
}
}
}
if(Hours >= TimeMode && ClrFlag==0)
{
charge_ctrl = 0; //關閉負荷12
ClrFlag = 1; //允許清0
CtrlFlag = 0;
}
}
}
}
}
/*********************************************************************/
/*函數名:
/*功能:
/*輸入參數:
/*返回值:
/*調用函數:
/*被調用函數:
/*編寫日期:
/*最后修改日期:
/********************************************************************/
void Main_Logic24(uchar TimeMode)
{
Clr_Dog();
if(BatValue>TINGCHONG24 && charge_output==0)
{
enPWM = 0; //禁止PWM
charge_output = 0; //停止充電
PowerFlag = 1; //允許放電
Led_Ctrl(1,2); //運行狀態燈L3閃爍
Led_Ctrl(0,1); //過充過放燈L2亮
}
else if(BatValue>GUOCHONG24)
{
enPWM = 1; //允許PWM
PowerFlag = 1; //允許放電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮
else
Led_Ctrl(1,2);
Led_Ctrl(0,1); //過充過放燈L2亮
}
else if(BatValue>YUNFANG24)
{
enPWM = 0; //禁止PWM
charge_output = 1; //全速充電
PowerFlag = 1; //允許放電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮
else
Led_Ctrl(1,2);
Led_Ctrl(0,0); //過充過放燈L2滅
}
else;
Clr_Dog();
if(BatValue<GUOFANG24)
{
charge_ctrlB = 0; //關閉負荷11
charge_ctrl = 0; //關閉負荷12
enPWM = 0; //禁止PWM
charge_output = 1; //全速充電
PowerFlag = 0; //禁止放電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮(充電)
else
Led_Ctrl(1,2);
Led_Ctrl(0,2); //過充過放燈L2閃爍(過放)
}
else
{
if(BatValue<YUNCHONG24)
{
enPWM = 0; //禁止PWM
charge_output = 1; //全速充電
if(SunValue>BatValue)
Led_Ctrl(1,1); //運行狀態燈L3亮(充電)
else
Led_Ctrl(1,2);
Led_Ctrl(0,0); //過充過放燈L2滅
}
if(PowerFlag)
{
if(TimeMode == 0)
{
charge_ctrlB = 1; //啟動負荷
charge_ctrl = 1; //啟動負荷
CtrlFlag = 1;
}
else
{
if(SunValue>=LIANGDENG24)
Delay4min2 = 0;
if(SunValue<=MIEDENG24)
Delay4min1 = 0; //延時清0
if(SunValue<NODELAY24)
{
charge_ctrlB = 1; //啟動負荷11
if(CtrlFlag)
{
charge_ctrl = 1; //啟動負荷12
}
if(ClrFlag)
{
Seconds = 0; //清0
Minutes = 0; //清0
Hours = 0; //啟動負荷的同時時間清0開始計數
ClrFlag = 0; //禁止清0
}
}
else if(SunValue<LIANGDENG24)
{
if(Delay_4min(0)) /*延時4min*/
{
if(SunValue<LIANGDENG24)
{
charge_ctrlB = 1; //啟動負荷
if(CtrlFlag)
{
charge_ctrl = 1; //啟動負荷
}
if(ClrFlag)
{
Seconds = 0; //清0
Minutes = 0; //清0
Hours = 0; //啟動負荷的同時時間清0開始計數
ClrFlag = 0; //禁止清0
}
}
}
}
else;
if(SunValue>MIEDENG24)
{
if(Delay_4min(1))/*延時4min*/
{
if(SunValue>MIEDENG24)
{
charge_ctrlB = 0; //關閉負荷11
charge_ctrl = 0; //關閉負荷12
ClrFlag = 1; //允許清0
CtrlFlag = 1;
}
}
}
if(Hours >= TimeMode && ClrFlag==0)
{
charge_ctrl = 0; //關閉負荷12
ClrFlag = 1; //允許清0
CtrlFlag = 0;
}
}
}
}
}
/********************END********************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -