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

📄 other.c

📁 电压瞬时检测
💻 C
字号:
////////////////////////////////////////////////////
/*         auto_solve.c             */
///////////////////////////////////////////////////
#include "REG51STC.H"
#include <ABSACC.H>
#include "oven.h"
#include "citation.h"
/************************************************
*  功能:上电发光器件自检
*************************************************/
void start_check(void) 
{  uint  i;
   uchar j;
	//-----------------------------------------
	if(state !=1 && state !=2) state=9;   //系统自检状态 
	for(i=1000;i>0;i--)
	{  WDT_CONTR=0x3c;WDT=!WDT;
		delay(1000);
	}
	for(i=1000;i>0;i--)
	{
		if(KEYSET) break;	
	}
	if(i==0) {sys_stare=1;led_set=0;}   //将进入参数设置
	//------------------------------------------
   for(j=0;j<5;j++)
	{
	   led[0]=led[1]=led[2]=led[3]=30;led[4]=0x00;
		disp();
	   for(i=100;i>0;i--)
		{  WDT_CONTR=0x3c;WDT=!WDT;
			delay(1000);
		}
		//-----------------
		led[0]=led[1]=led[2]=led[3]=29;led[4]=0xff;
		disp();
		for(i=100;i>0;i--)
		{  WDT_CONTR=0x3c;WDT=!WDT;
			delay(1000);
		}
		//-----------------
	}
	
	led[0]=0;led[1]=29;led[2]=29;led[3]=29;//29=灭
	led[4]=0xff;
	disp();	
	if(sys_stare){led_set=0;menu=1;}
	else {menu=0;}
	while(!KEYSET) {WDT_CONTR=0x3c;WDT=!WDT;}
	//--------------------------------
	if(state !=1 && state !=2)
	{   state=0;   //系统状态
		for(i=1000;i>0;i--)
		{
			if(KEYADD) break;	
		}
		
		if(i==0) {sys_stare=1;led_set=0;state=40;}   //将显示湿度
		while(!KEYADD) {WDT_CONTR=0x3c;WDT=!WDT;}
		//-----------------------------------
		for(i=1000;i>0;i--)
		{
			if(KEYSUB) break;	
		}
		if(i==0) {sys_stare=1;led_set=0;state=50;}   //将显示湿度
		if(sys_stare==1)led_set=0;
		else led_set=1;
		while(!KEYSUB) {WDT_CONTR=0x3c;WDT=!WDT;}
	}
	//-----------------------------------
	//if(state<40) {led[0]=0;led[1]=0;led[2]=0;led[3]=0;}//29=灭
} 
/****************************************************************
*   功能:停止运行
****************************************************************/
void stop_run(void)
{
	led[4]=0xff;
	state=0;
	heat_ok=0;
	RLY1=1;  RLY2=1;  //RLY3=1;
	//OUTOM1=1;
	//OUTOM2=1;
}
/****************************************************************
*   功能:自动控制
****************************************************************/
void auto_dominate(void)
{ //float  m;
  if(urc<dry_flag && state==1 && work_time>900)   //urc湿度
  {    //pause_heat=1;  //暂停加热
       if(stop_drying==0)
       {   stop_run();  //自动调整为消毒
	  	   if(state==0 || !timerov)
			{  count_down=900;
				state=2;
				led_fuchsia=0;
				led_run=0;
				RLY1=0;
				timerov=1;  //0-->超时
				fmqok=1;
			}
		}
  }
  else stop_drying=900;  //烘干后必须15分钟湿度不能再次超过30%

  /////
  if(state==1)   
  {   
      //if(urc>80 && pwout<dynamo) pwout=dynamo;   //增
		//-----------------------------------------------
		//m=dynamo*urc/100;
		//if(m<2)m=2;  //最小为100W
  		//if(work_time>900 && urc<80 && pwout>m) pwout=(uchar)m;  //减
		//if(work_time>900 && urc<70 && pwout>m) pwout=(uchar)m;
		//if(work_time>900 && urc<60 && pwout>m) pwout=(uchar)m;
		//if(work_time>900 && urc<50 && pwout>m) pwout=(uchar)m;
		if(work_time>900 && urc<40)big_ok=0;   // 自动调功
		//------------------------------------------------
		//if(work_time>120 &&urc<50 && pwout>15) pwout=10;  //极速减
		if(urc>=dry_flag+2) pause_heat=0; //取消暂停加热
  }
  
}
/****************************************************************
*   功能:电源电压下降
****************************************************************/
void descend_power(void)
{  uint i;
	if(!INT0) 
	{
		for(i=200;i>0;i--)
		{
			WDT_CONTR=0x3c;
			WDT=!WDT;
			if(INT0)break;
		}
	   if(i==0)
		{
			//EA=0;
			//if(state==1 || state==2)power_drop_save();
			//EA=1;
			
		}
	}
	power_drop=1;
}

⌨️ 快捷键说明

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