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

📄 jf_valve.c

📁 一款完整的家用电器程序,具有控制商用机的功能,应用广泛,有一定的参考价值
💻 C
字号:
void valvekeep(void) 
{
  if (b_valvedelay==1)
      if (m_500mscount>=63) 
      {
        m_500mscount=0;
        b_valvedelay=0;
        PTAD= PTAD & 0xF0;     
      }
}

void Valve_up(void)
{
	if (cur_xs>=8) cur_xs=0;
	PTADD= PTADD | 0x0F;              //0xFF	;
	 m_portdata = PTAD ;
	 m_portdata = m_portdata & 0xF0;
	 m_portdata = m_portdata | step[cur_xs];
	 PTAD =  m_portdata;
	lstx =  step[cur_xs];
	xs   =  cur_xs;
	stepnum = stepnum + 1;
	
	if (cur_xs==7)
	  cur_xs = 0;
	else
	  cur_xs = cur_xs + 1;
}

void Valve_down(void)
{
  if (cur_xs>=8) cur_xs=0; 
    PTADD= PTADD | 0x0F;
   m_portdata = PTAD ;
	 m_portdata = m_portdata & 0xF0;
	 m_portdata = m_portdata | step[cur_xs];
	 PTAD =  m_portdata;

	lstx =  step[cur_xs];
	xs   =  cur_xs;
	stepnum = stepnum - 1;
	if (cur_xs==0)
	  cur_xs=7;
	else
	  cur_xs = cur_xs - 1;
}

void Valve_control(unsigned short opvalue)
	{	 if (opvalue == stepnum  && b_valvedelay==0)
	        return;	      	
	
		if (opvalue == stepnum  && b_end==1)
			{
					if (b_valvedelay==1) { valvekeep();return;}
					else return;
			}		
		
		  if (opvalue> stepnum)
		  			{b_end =0;
		       Valve_up()  ;}
		  if (opvalue< stepnum)
		  			{b_end =0;
		       Valve_down()  ;}
		  if (opvalue == stepnum ) {b_valvedelay=1;m_500mscount=0;b_end=1;	}
		      
   }
   
void jf_valvectrl(void)
{
      if (b_first==0) 
    {
      Valve_control(250);
      {
        if (b_end  ==1  && b_valvedelay==0) 
        {
          b_first=1;b_valverun=1;
        }
      }
      //break;
    }
                                                                    //b_valverun=1;//if(b_comp==1 && m_componsec>=120) b_valverun=1;
    if (b_valverun==1 && b_statvalve==0) 
    {
      b_statvalve=1;stepnum=500;b_resetvalve=0;//break;
    }
    if (b_valverun==1 && b_resetvalve==0)
    {
      Valve_control(0);
      {
        if (b_end  ==1  && b_valvedelay==0) 
        {
          b_resetvalve=1;b_haverst=1;
        }
      }
      //break;
    }
}

void jf_valverunctrl(void)
{
	       if (b_first1==0 && t_comp_run>=5) 
            {
              Valve_control(260);
              {
                if (b_end  ==1  && b_valvedelay==0) 
                {
                  b_first1=1;b_valverun1=1;
                }
              }
              //break;
            }
           //}                                                                            //b_valverun=1;//if(b_comp==1 && m_componsec>=120) b_valverun=1;
            if (b_valverun1==1 && t_comp_run_times>=3 && b_statvalve1==0) 
            {
              b_statvalve1=1;//break;
            }
            if (b_valverun1==1 && b_statvalve1==1)												//&& b_valvedelay==0 && b_end==1) 
            {
              Valve_control(m_bhl); //break;
            }
}

void jf_valvetotal(void)
{
	if (b_haverst==0)
		{
			jf_valvectrl();
		}
	else
		{
			if (PINB &b_comp)		//如果压缩机开//且无低压保护
				{
					jf_valverunctrl();
				}
			else if (fault_state4 & b_fault_lpp!=0) { Valve_control(480); } 
		}
} 

/*开度变化量*/ 
    signed int getkdbhl(void){
       signed char tempt0,tempt1; signed int tempt2;//signed int tempt0,tempt1,tempt2;
        tempt0= evin_TH; tempt1= defrost_TH + 7; tempt2=stepnum;
 
     tempt2=tempt2 + tempt0;                                          // - tempt1;
     tempt2=tempt2 - tempt1;
     if (tempt2<=0)  {tempt2= stepnum;return(tempt2);}               //zht 2007.11.22              //return(0);
     else if (tempt2>0 && tempt2<90)  {tempt2= stepnum;return(tempt2);}   //zht 2007.9.24
     else if (tempt2>=90 && tempt2<=480) return(tempt2) ;                                                                //if (tempt2>=50 && tempt2<60)  {return(tempt2);} ; //zht 2007.9.24
     else if (tempt2>480) {tempt2= stepnum;return(tempt2); }  
   }   

void valveproc(void)
{
	if (PINB &b_comp)
		{	 
			if (defrost_AD>=29 && defrost_AD<=968 && evin_AD>=29 && evin_AD<=968)
			 {m_bhl= getkdbhl() ;}
		}
}

⌨️ 快捷键说明

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