/*******************************************************************************
* 函 数 名 :BeepControl
* 函数功能 :蜂鸣器控制 , 每10ms调用一次
* 输    入 :无
* 输    出 :无
*******************************************************************************/
void BeepControl()//每10mS调用一次
{
	
	if (Beep_EN)
	{
		
		if (Beep.PWR_time) 
		{
			PWR_CTRL=0;//供电	
			Beep.PWR_time--;
		}
		else 
		{
			PWR_CTRL=1;//掉电,依靠电容放电实现和弦拖音 	
			
		}
		
		if (Beep.FREQ_time)
		{
			Beep.FREQ_time--; 
			TR0 = 1;//启动定时器发声
		}
		else 
		{
			TR0 = 0;//停止定时器发声
			BeepSet();
			PWR_CTRL=0;//发声完毕,打开电源给电容充电	
		}
	}
	else
	{
		BUZZER_IO=0;
		TR0 = 0;//停止定时器发声
		
	}
	return;
}
Example #2
0
/*
* 函数介绍:长按滤芯键3S,所有滤芯复位子程序:
* 输入参数:无
* 输出参数:无
* 返回值:无
*/
void FilterResetDeal(void)
{
//  if(flag3&LIFE_OVER_VALUE)
    if(f_PP1_life_over||f_C1_life_over||f_PP2_life_over||f_RO_life_over||f_CUF_life_over)
    {   //任意一级滤芯寿命到期,复位寿命。
        PP1filterTime = 0;
        C1filterTime = 0;
        PP2filterTime = 0;
        ROfilterTime = 0;
        CUFfilterTime = 0;
        f_filter_reset_Ok = 1;
        BeepSet(1,20,0);
        f_PP1_life_over = 0;
        f_C1_life_over = 0;
        f_PP2_life_over = 0;
        f_RO_life_over = 0;
        f_CUF_life_over = 0;

    //  if(ZjMode == 0)
        {
            SetWriteData();
        }
    }
}
Example #3
0
/*
* 函数介绍:按键处理程序 10MS调用一次
* 输入参数:无
* 输出参数:无
* 返回值:无
*/
void Key(void)
{
    if(f_zs_err)
    {   //制水故障,整机失效。
        return;
    }
    if(ZjMode != 0)
    {       if(keyValue == C_LX_L_PRE)
        {
        //  BeepSet(1,100,0);
            FilterResetDeal();
        }
        return;
    }
    switch(keyValue)
    {
        case C_CX_PRE:
            //if(!f_first_10s)
            if(DisPowCount < 3)
            {   //上电前10s按
                break;
            }
            //SetWriteData();
            BeepSet(1,20,0);
            if(SetMode)
            {
                life[SetMode-1] = 0;    //将当前滤芯时间清零。
                switch(SetMode)         //将相应滤芯寿命到标志清零。
                {
                    case 1:
                        f_PP1_life_over = 0;
                        break;
                    case 2:
                        f_C1_life_over = 0;
                        break;
                    case 3:
                        f_PP2_life_over = 0;
                        break;
                    case 4:
                        f_RO_life_over = 0;
                        break;
                    case 5:
                        f_CUF_life_over = 0;
                        break;
                    default:
                        break;
                }
                SetMode ++;
                if(SetMode >= 6)
                {
                    SetMode = 0;                }
                SettingTime = 0;
                SetWriteData();
                break;
            }
            if(f_cx_auto&&CxTime)
            {   //当前为自动冲洗,
                f_cx_auto = 0;
                CxTime = C_CX_MANU_T;
            }
            else if(CxTime)
            {
                CxTime = 0;
                if(HiSwitchCheckT2 >= 250)      //自动冲洗时间清零时,再一次检测看开关有没有闭合5S.
                {
                    f_zs_on = 1;
                }
                HiSwitchCheckT2 = 0;
            }
            else
            {
                CxTime = C_CX_MANU_T;
            }
            f_cx_auto = 0;
            break;

        /*
        case C_CX_L_O:
            if(f_first_10s)
            {   //上电10s后长按松开后无效。
                break;          }

            BeepSet(1,20,0);
            if(f_cx_auto&&CxTime)
            {   //当前为自动冲洗,
                f_cx_auto = 0;
                CxTime = C_CX_MANU_T;
            }
            else if(CxTime)
            {
                CxTime = 0;
            }
            else
            {
                CxTime = C_CX_MANU_T;
            }
            f_cx_auto = 0;
            break;
        */

        case C_CX_L_PRE:
            if(f_first_10s)
            {
                break;          }
            BeepSet(1,20,0);
            ZjMode = 0x01;          //进入快检模式。
            SelfChekDis = 50;       //快检前全屏显示1S
            DisPowCount = 4;        //取消上电前的闪动显示。
            break;

        case C_LX_PRE:
            if(SetMode)
            {
                BeepSet(1,20,0);
                SetMode ++;
                if(SetMode >= 6)
                {
                    SetMode = 0;
                    SettingTime = 0;
                }
            }
            else
            {
                    BeepSet(1,20,0);
            }
            break;

        case C_LX_L_PRE:
            if(!f_first_10s)
            {                       //上电前10秒长按滤芯无效。
                break;
            }
            FilterResetDeal();
            break;

        case C_LX_LL_PRE:
            if(!f_first_10s)
            {                       //上电前10秒长按滤芯无效。
                break;
            }
            if(f_filter_reset_Ok)
            {                       //当前长按5秒是由前面的长按3S且滤芯已全部复位而来,不处理,
                break;
            }
            if(SetMode == 0)
            {
                BeepSet(1,20,0);
                SetMode = 1;
                SettingTime = 0;
            }
            break;
        default:
            break;
    }

    if(++SettingTime >= 1000)
    {
        SettingTime = 0;        SetMode = 0;
    }
}
Example #4
0
/*
* 函数介绍:时间更新 500MS执行一次。
* 输入参数:无
* 输出参数:无
* 返回值:无
*/
void TimeUpData(void)
{
    uint8 i;
    if(!f_first_10s)
    {
        TimePower ++;
        if(TimePower >= 20)
        {
            f_first_10s = 1;
        }
    }

    //滤芯计时:
    lifehour ++;
    if(ZjMode)
    {
        PP1filterTime += 180;
        if(PP1filterTime >= C_PP1filter_life)
        {
            PP1filterTime = C_PP1filter_life;
            f_PP1_life_over = 1;
        }

        C1filterTime += 180;
        if(C1filterTime >= C_C1filter_life)
        {
            C1filterTime = C_C1filter_life;
            f_C1_life_over = 1;
        }

        PP2filterTime += 180;
        if(PP2filterTime >= C_PP2filter_life)
        {
            PP2filterTime = C_PP2filter_life;
            f_PP2_life_over = 1;
        }

        ROfilterTime += 180;
        if(ROfilterTime >= C_ROfilter_life)
        {
            ROfilterTime = C_ROfilter_life;
            f_RO_life_over = 1;
        }

        CUFfilterTime += 180;
        if(CUFfilterTime >= C_CUFfilter_life)
        {
            CUFfilterTime = C_CUFfilter_life;
            f_CUF_life_over = 1;
        }

        //将滤芯时间存储起来:
        //WriteFilterData();
        //SetWriteData();
    }
    else
    {
#if C_DEBUG
        if(lifehour >= 1)
        {

            i = 1;
            lifehour = 0;
            PP1filterTime ++;
            if(PP1filterTime == C_PP1_life_1_3)
            {
                SetWriteData();
            }
            else if(PP1filterTime == C_PP1_life_2_3)
            {
                SetWriteData();
            }
            else if(PP1filterTime == C_PP1_life_2_3_2)
            {
                SetWriteData();
            }
            else if(PP1filterTime == C_PP1filter_life)
            {
                SetWriteData();
            }
            if(PP1filterTime >= C_PP1filter_life)
            {
                PP1filterTime = C_PP1filter_life +1;
                f_PP1_life_over = 1;
            }

            C1filterTime ++;
            if(C1filterTime == C_C1_life_1_3)
            {
                SetWriteData();
            }
            else if(C1filterTime == C_C1_life_2_3)
            {
                SetWriteData();
            }
            else if(C1filterTime == C_C1_life_2_3_2)
            {
                SetWriteData();
            }
            else if(C1filterTime == C_C1filter_life)
            {
                SetWriteData();
            }
            if(C1filterTime >= C_C1filter_life)
            {
                C1filterTime = C_C1filter_life +1;
                f_C1_life_over = 1;
            }

            PP2filterTime ++;
            if(PP2filterTime == C_PP2_life_1_3)
            {
                SetWriteData();
            }
            else if(PP2filterTime == C_PP2_life_2_3)
            {
                SetWriteData();
            }
            else if(PP2filterTime == C_PP2_life_2_3_2)
            {
                SetWriteData();
            }
            else if(PP2filterTime == C_PP2filter_life)
            {
                SetWriteData();
            }
            if(PP2filterTime >= C_PP2filter_life)
            {
                PP2filterTime = C_PP2filter_life +1;
                f_PP2_life_over = 1;
            }

            ROfilterTime ++;
            if(ROfilterTime == C_RO_life_1_3)
            {
                SetWriteData();
            }
            else if(ROfilterTime == C_RO_life_2_3)
            {
                SetWriteData();
            }
            else if(ROfilterTime == C_RO_life_2_3_2)
            {
                SetWriteData();
            }
            else if(ROfilterTime == C_ROfilter_life)
            {
                SetWriteData();
            }
            if(ROfilterTime >= C_ROfilter_life)
            {
                ROfilterTime = C_ROfilter_life +1;
                f_RO_life_over = 1;
            }

            CUFfilterTime ++;
            if(CUFfilterTime == C_CUF_life_1_3)
            {
                SetWriteData();
            }
            else if(CUFfilterTime == C_CUF_life_2_3)
            {
                SetWriteData();
            }
            else if(CUFfilterTime == C_CUF_life_2_3_2)
            {
                SetWriteData();
            }
            else if(CUFfilterTime == C_CUFfilter_life)
            {
                SetWriteData();
            }
            if(CUFfilterTime >= C_CUFfilter_life)
            {
                CUFfilterTime = C_CUFfilter_life +1;
                f_CUF_life_over = 1;
            }
        }

#else
        if(lifehour >= 7200)
        {

            lifehour = 0;
            PP1filterTime ++;
            if(PP1filterTime >= C_PP1filter_life)
            {
                PP1filterTime = C_PP1filter_life;
                f_PP1_life_over = 1;
            }

            C1filterTime ++;
            if(C1filterTime >= C_C1filter_life)
            {
                C1filterTime = C_C1filter_life;
                f_C1_life_over = 1;
            }

            PP2filterTime ++;
            if(PP2filterTime >= C_PP2filter_life)
            {
                PP2filterTime = C_PP2filter_life;
                f_PP2_life_over = 1;
            }

            ROfilterTime ++;
            if(ROfilterTime >= C_ROfilter_life)
            {
                ROfilterTime = C_ROfilter_life;
                f_RO_life_over = 1;
            }

            CUFfilterTime ++;
            if(CUFfilterTime >= C_CUFfilter_life)
            {
                CUFfilterTime = C_CUFfilter_life;
                f_CUF_life_over = 1;
            }

            //将滤芯时间存储起来:
            //WriteFilterData();
            SetWriteData();
        }

#endif
    }

    //连续制水计时:
    if(f_zs_on)
    {
        ZsContiTimer ++;
        if(ZsContiTimer >= C_ZsContiTimer)
        {
            ZsContiTimer = 0;
            f_zs_err = 1;
            BeepSet(30,25,25);      //报警30下,
        }
    }
    else
    {
        ZsContiTimer = 0;
    }
}