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

📄 intfun.c

📁 air-contronin controning air in or out,big or small check the temprature.
💻 C
字号:

#include "MATH.H"
#include "STC12.H"
#include "function.h"
#include "pin.h"
#include "evariable.h"

// 空调高压中断
void InterruptEx0(void)  interrupt 0
{
	EX0=0;
	if(k_pw)
	{
		alarm_Hpr=1;
	}
//	speaking();
}

// 空调低压中断
void InterruptEx1(void)  interrupt 2 
{
	EX1=0;
	if(k_pw)
	{		alarm_Lpr=1;
	}
//	speaking();}	 


void  InterruptTAWA(void)  interrupt 6 
{
	unsigned long da;
	CF=0;
	//use PCA0 internal check relating variable
	//every 2.7ms tiggle PCA0
	if(k_pw)
	{
		if(CCF0)	//use PCA0 as time 
		{
			CCF0=0;
			da=0;
			da=(unsigned long)(CCAP0H*256)+(unsigned long)CCAP0L;
			da=da+0x4682;
			if(da>0xffff)
			{
				da=da-0xffff;
			}
			CCAP0L=(unsigned char)da;
			CCAP0H=(unsigned char)(da/256);
			CCF0_disp();
		}
		//pca2 interrupt indicate temperature rotary switch 
		//turning;and rising edge indicate clockwise direction;
		//and falling edge indicate anti_clockwise;
		if(CCF3==1)
		{
		   CCF3=0;
		   //avoid with error triggle
		   //ECCF2=0
		   CCAPM3&=0xfe;
		   delay2(200);
		   if(!pin_windb)
		   {
				CCF3_disp();
		   } 
		   //delaly for 3ms
	//	   delay2(4750);
		   delay2(2000);
		   CCF3=0;
		   CCAPM3|=0x01;
		}
		//pca3 interrupt indicate wind magnitude rotary switch 
		//turning;and rising edge indicate anti_clockwise;
		//and falling edge indicate clockwise direction;
		else if(CCF1)
		{
			CCF1=0;
			//avoid with error triggle
		    //ECCF3=0
		    CCAPM1&=0xfe;
			delay2(200);
			if(!pin_testb)
			{
				CCF1_disp();
			}
			delay2(2000);
		    //delaly for 3ms
	//	    delay2(4750);
			CCF1=0;
			CCAPM1|=0x01;
		}
	}
	else
	{
		CCF0=0;
		CCF1=0;
		CCF3=0;	
	}
}


void CCF0_disp(void)
{
	//time for common			
	if(freshair_aut)
	{
	   if(state_fa==2)
	   {
	   		cnt_fa++;
			if(cnt_fa>17778)
			{
				F8m2m=1;
				cnt_fa=0;
			}
	   }
	   else if(state_fa==3)
	   {
 	   		cnt_fa++;
			if(cnt_fa>4444)
			{
				F8m2m=1;
				cnt_fa=0;
			}
	   }
	}

	if(((alarm_Hpr==1)&&(state_Hp==1))||(((alarm&0x01)==1)&&(state_Hp==3)))
	{
		cnt_Hp++;
		if(cnt_Hp>185)
		{
			F5sHp=1;
			cnt_Hp=0;
		}
	}

	if(((alarm_Lpr==1)&&(state_Lp==1))||(((alarm&0x02)==2)&&(state_Lp==3)))
	{
		cnt_Lp++;
		if(cnt_Lp>185)
		{
			F5sLp=1;
			cnt_Lp=0;
		}
	}

	if((alarm&0x0c)&&(state_Sens==1))	//sensor failure --alarm:bit2 open --00
	{				//     				     bit3 short --50
	 	cnt_Sens++;
		if(cnt_Sens>185)
		{
			F5sSens=1;
			cnt_Sens=0;
		}
	}

	if((WA_changed)&&(alarm==0))
	{
		cnt_WA++;
		if(cnt_WA>90)
		{
			F2sWA=1;
			cnt_WA=0;
		}
	}

	if(state_ref==1)
	{
		cnt_Ref++;
		if(cnt_Ref>185)
		{
			F5sRef=1;
			cnt_Ref=0;
		}
	}

	if((ee_changed==1)&&(state_Ee==1))
	{
		cnt_Ee++;
		if(cnt_Ee>185)
		{
			F5sEe=1;
			cnt_Ee=0;
		}
	}
	if((display_resume==1)&&(state_Resume==1))
	{
		cnt_Resume++;
		if(cnt_Resume>185)
		{
			F5sResume=1;
			cnt_Resume=0;
		}
	}

	if(alarm)
	{
		cnt_Speaking++;
	}

	cnt_Display++;
		
}

void CCF1_disp(void)
{
	if(pin_testa==0)//clockwise direction
	{
		if(da_TA>15)
		{
			da_TA--;
			display_TA=1;
		}
	}
	else if(pin_testa==1)//anti_clockwise
	{
		if(da_TA<30)
		{
			da_TA++;
			display_TA=1;
		}
	}
}

void CCF3_disp(void)
{
	if(pin_winda==1)//anti_clockwise
	{
		if(da_WA<99)
		{
			da_WA++;
			display_WA=1;
		}
	}
	else if(pin_winda==0)//clockwise direction
	{
		if(da_WA>0)
		{
			da_WA--;
			display_WA=1;
        }
	}
 }

⌨️ 快捷键说明

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