⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 relay.c

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 C
字号:
#include"inc/config.h"


u08 CompareTem(    int16   tem , u08 statenow )
{
	
	if( statenow == NO_ALARM)/////////////////当前状态为非报警状态
	{
		if (tem <= TL )             //低温报警
		{
            statenow= TL_ALARM;
        }
        else if (tem >= TH )      	//高温报警
        {
            statenow= TH_ALARM;
        }

    }



	else if( statenow ==TL_ALARM ) 			//已经低温报警,看是否停止
	{
	    if (tem >= TH)
		{
            statenow= TH_ALARM;		
		
		}
		else
        if (tem >= (TL+100) ) 
		{
            statenow= NO_ALARM;
			
		}
	}


	else if( statenow ==TH_ALARM ) 			//已经高温报警,看是否停止
	{
	    if( tem <=TL)
		{
            statenow= TL_ALARM;		
		
		}
        else if (tem <= (TH-100) ) 
		{
            statenow= NO_ALARM;
		}
	}
 
    return statenow;  						//返回判断结果				

}



/************************************************************************************
** 函数功能:	湿度比较函数
** 传入参数:	最新湿度,通道号,当前状态
** 输出:	  	重新判断后的报警状态
************************************************************************************/
u08 CompareHum( u08 Hum , u08 statenow )
{
	if( statenow == NO_ALARM)	//没有报警
	{
	     if (Hum >= HH )        //高湿报警
	    {
	        statenow = HH_ALARM;
	    }
	}
	else						//已经高湿
	{
	    if (Hum <= (HH-10  ))   //复位报警 ,否则保持原状态  
	    {
	        statenow = NO_ALARM;
	    }
	}
	return statenow;
}

/**------------------------------------------------------------------**/
void RelayJudge( u08 Tstate ,u08  Hstate)
{
	//湿度继电1器判断
    if( Hstate==HH_ALARM && Tstate!=TH_ALARM)
    {
 		heat (  ON	);
	  	fan	 (  OFF	);	//除湿时保证风扇不动作
    }
 
 
    //温度继电器判断
    if (Tstate==TH_ALARM )		//温湿度交错控制,湿度优先
    {
	   fan	(  ON	);			//风扇降温时,保证加热升温关闭
	   heat	(  OFF	);
    }
    else if (Tstate==TL_ALARM)
    {
	   heat	(  ON	);
	   fan	(  OFF 	);
    }
    else
    {
	   fan	(  OFF );

	   if( Hstate==NO_ALARM )
	   {
		   heat	(  OFF );	//如果不在除湿,则关闭加热,
	   }
    }
 

}

void RelayRst(void)				//用于上电或者修改参数后推出时
{
	 AlrmStatusH   = NO_ALARM;
 	 AlrmStatusT   = NO_ALARM;

}

 


/*继电器操作函数*/
void dehum( BOOL On_Off)//除湿
{
 CH1_DEHUM = On_Off; 
 
}
							 
void heat(  BOOL On_Off)//加热
{ 
 CH1_HEAT = On_Off; 
 
}

void fan(  BOOL On_Off)//风扇
{
  CH1_FAN = On_Off; 
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -