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

📄 main.c~

📁 潜入市嵌入式开发 嵌入式开发
💻 C~
📖 第 1 页 / 共 5 页
字号:
      
  if( (Get_Key_bit) )
  {   
         Count_NoKey=0;//has keyboard operation
  
     	if(Bit_Sign_Key_Get)
	    {
			  key_out=Key;
	
	      }
		  else
	     {
		     key_out=0xff;
			 Bit_Sign_SettingPara=0;////对于设定参数而言

		 }
	   

          if(!Bit_Sign_Key_Get)
	    {
	       Bit_Sign_Key_Get=1;
	    }


	 }//  if( (Get_Key_bit) )
	 else
	 {
         Bit_Sign_Key_Get=0;
		 key_out=0xff;
	  
	 }


  // Bit_Sign_Key_Get=1;
	  GetKey_Count=0;//for time
   /////////////anytime output zhishi
     Output_Zhishi(Temp_Output);
}///if((GetKey_Count>150))

        /////////////////////////此过程表示停机
		     if( GetKey_Count_ForUse_Stop>200)
			 {
		
		    	 if( (key_out==TINGJI))//for stop
			   {
			     Bit_OilValve_Start=0;//启动机组
				 Bit_Stop=1;//停机
		
		
				 Bit_Stop_Sure=1;
				 Count__Stop_Sure=0;
		
		
				 Temp_Output=Temp_Output|0x10;//jidianqi
			//	 Display_Acord_Value( 0x8000,456,0 );
			//	 Output_Sign();
			   }
			   else
			   {
				  Bit_OilValve_Start=0;//启动机组
				  Bit_Stop=0;//停机
			//	  Temp_Output=Temp_Output&0xef;
		
				  GetKey_Count_ForUse_Stop=0;
			//	  Get_Key_bit=0;
			//	  Output_Sign();
			   }
			//   XBYTE[0x8008]=Temp_Output;
		  	  
		  }
				
		    if(    (Bit_Stop_Sure)&&(Count__Stop_Sure>   (Para_Setting_Stop_SureTime*1000)    )   )
			 {
			     Temp_Output=Temp_Output&0xef;
			//	 XBYTE[0x8008]=Temp_Output;
				 Bit_Stop_Sure=0;
			 }
			 /////////////anytime output zhishi
	
		     // Output_Zhishi(Temp_Output);
		
			// Delay_Ms()
		
			if(Capture_Count>1000)//capture one time 
			{
			  for( i=0;i<4;i++)
			   {
		
			    AD_init(0);
		      	Tem_Oil[i]=Calculate_Tem ( GET_AD_Result() ,1);
				AD_init(1);
			    Pre_Oil[i]=Calculate_Pre (GET_AD_Result() );
				AD_init(2);
			    Tem_Water[i]=Calculate_Tem ( GET_AD_Result(),0);
		
		      } 
		       Tem_Water[4]=   (  (int)((float)(Tem_Water[0]+Tem_Water[1]+Tem_Water[2]+Tem_Water[3])/4))  ;//;//;
		       Pre_Oil[4]=(int)((float)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4);
		       Tem_Oil[4]= (  (int)((float)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4) ) ;//;//;
		     //  T0=0;
			   Display_Acord_Value(1,Speed,0);
			   Display_Acord_Value(2, Pre_Oil[4],0);
			   Display_Acord_Value(3,Tem_Water[4],0);
			   Display_Acord_Value(4,Tem_Oil[4],0);
			  // T0=1;
		
		      Capture_Count=0;
			}
		
		
		    
		  }
		
		  ///if(Count_Start_Machine_15s>2999)
		  if(Count_Start_Machine_15s>14995)
		    {
			  Count_Start_Machine_15s=0;
			  Bit_Protection_Start=0;//没有进行启动保护
			}
		
		  Get_Key_bit=0;
		 }//大于 300转 时,处于 启动过程 中
		 else
		 {
		    Bit_Protection_Start=1;//启动保护 开启
		 }
   }

//}
//while(1)
//{




    /////test motorsign 检测机组的状态  (运行或停机)

else////////////////没有在启动保护状态 中
{	
    if( (Speed>Para_Setting_ReferenceSpeed_StopStart) )//处于运行状态
    {
		  Bit_Sign_Running=1;
		  Bit_Sign_SettingParaDisplay=0;


	    Bit_Sign_SettingPara_Sure=0;
		Bit_Sign_InputCode=0;
		Bit_Sign_SettingPara_Normal=0;
		Bit_Sign_Modify=0;
       

	   {

					 if(Value_Test_24v< 28.0  )
					  {      ////////////////////充电
			
					      //   if((!Bit_Sign_Charging))
						//	 {
					           Temp_Output=Temp_Output&0xfd;//lamp
							   Temp_Output=Temp_Output|0x08;//jidianqi
							   
							   Bit_Sign_Charging=1;
					//		 }
					  }
						if(Value_Test_24v > 28.4   )     
					  {   // duan dian
					    	 
			           //   if(Bit_Sign_Charging)
					//	  {
							 Temp_Output=Temp_Output&0xf7;//jidianqi
						     Temp_Output=Temp_Output|0x02;//lamp
							 Bit_Sign_Charging=0;
					//	  }
					  }
							//	Temp_Output=Temp_Output&0xbd;//lamp
							//   Temp_Output=Temp_Output|0x40;//jidia



          }
	  	  ///////////////////////////运行灯
		   
		   Temp_Output=Temp_Output&0xfe;//lamp
		  
	}
	else
	{
	  Bit_Sign_Running=0;
	  Temp_Output=Temp_Output|0x01;//lamp运行灯
      Temp_Output=Temp_Output|0x02;//lamp

      if(Speed<300)
	  {
	    Bit_Protection_Start=1;//停机,可以重新进行启动
		Byte_Sign_First_Alarm_StartStop=0;

		Temp_Output=Temp_Output&0xef;//tingji

		  Temp_Output=Temp_Output&0x7f;//D7\

			   Temp_Output=Temp_Output&0xdf;//\D5
	  }

	}
  ///    XBYTE[0x8008]=Temp_Output;///////输出




if(!Bit_Sign_DisplaySetting_Sure)//没有设定参数///////////**********************
{
 

///////////////////////////////时间显示
  
   if(  (Bit_Sign_DisplayTime)&&(Byte_Sign_DisplayTime==1) )//for time display时间显示,第一次按下时间按钮
	   {
           Bit_Sign_Display_Time=1;////////***********
		    Count_DisplayTime_5s=0;
			Bit_Sign_DisplayTime=0;


			Byte_Sign_DisplayTime=2;


			Bit_Sign_DisplayTime_OilPre=1;
		//	unsigned int Temp_Time_Display;
			if(Time_Hours_Running<100)
	        {
			  Temp_Time_Display=Time_Minutes_Running+Time_Hours_Running*100;
			  Display_Acord_Value( 2,Temp_Time_Display,1);//
			}
			else
			{
			  Temp_Time_Display=Time_Hours_Running;
			  Display_Led_OilPre_NoPiont(0x8004,Temp_Time_Display);
			}
	        
	     
	   }
	   if((Bit_Sign_DisplayTime)&&(Byte_Sign_DisplayTime==2))////for time display时间显示,第二次按下按键
	   {

		     Count_DisplayTime_5s=0;
			Bit_Sign_DisplayTime=0;

			Byte_Sign_DisplayTime=3;
		//	unsigned int Temp_Time_Display;
			if(Time_Hours_Add<100)
	        {
			  Temp_Time_Display=Time_Minutes_Add+Time_Hours_Add*100;
			  Display_Acord_Value( 2,Temp_Time_Display,1);//
			}
			else
			{
			  Temp_Time_Display=Time_Hours_Add;
			  Display_Led_OilPre_NoPiont(0x8004,Temp_Time_Display);
			}
	       // Display_Acord_Value( 0x8004,Temp_Time_Display,0);//
	     
	   }

	   if((Bit_Sign_DisplayTime)&&(Byte_Sign_DisplayTime==3))//for time display时间显示,
       {
	     Byte_Sign_DisplayTime=1;
		 Bit_Sign_DisplayTime=0;
		 Display_Acord_Value( 2,Pre_Oil[4],0);
		 Count_DisplayTime_5s=0;

		  Bit_Sign_Display_Time=0;////////***********
	   }
	   

	 //  if(Count_DisplayTime_5s>1000)
	  //  if(Count_DisplayTime_5s>1000)///////////显示时间保持时间
     if( (Count_DisplayTime_5s>(Para_Setting_KeepTime*1000))&&(!Signed_Test)  )
	   {
	     Byte_Sign_DisplayTime=1;
		 Bit_Sign_DisplayTime_OilPre=0;
		 Display_Acord_Value( 2,Pre_Oil[4],0);
		 Count_DisplayTime_5s=0;

		 Bit_Sign_DisplayTime_OilPre=0;

		 Bit_Sign_Display_Time=0;////////***********
	   }
}/////if(!Bit_Sign_DisplaySetting_Sure)//没有设定参数	  
//if(Count_Charging_TestVol>12000)
{

    //    Value_Test_24v=read1543(3)* Calculate_Line_k( 0,0,0X3ff,5)/0.1304  +1;
		 //每分钟采集一次电压值
	//	Count_Charging_TestVol=0;
//
}
////////////////////////////////time display显示的时间计算
      if(Count_RunningTime>60000)//超过一分钟,进行油机计时操作
	  ///if(Count_RunningTime>12000)//超过一分钟,进行油机计时操作
	   {
   //       Value_Test_24v=read1543(3)* Calculate_Line_k( 0,0,0X3ff,5)/0.16163+1;

		 //每分钟采集一次电压值
	    


	     Count_RunningTime=0;
	     Time_Minutes_Running++;//当前分钟计数
		 if(Time_Minutes_Running>60)
		 {
 	       Time_Hours_Running++;
		   Time_Minutes_Running=Time_Minutes_Running%60;
		 }

		  Time_Minutes_Add++; //总分钟计数 
		  if(Time_Minutes_Add>60)
		 {
 	       Time_Hours_Add++;
		   Time_Minutes_Add=Time_Minutes_Add%60;
		 }
		 /////////////超过设定值清零
		 if(Time_Hours_Add>Para_Setting_AddTimeZero)
		 {
		   Time_Hours_Add=0;
		   Time_Minutes_Add=0;
		 }

 	    /// Write_Para_SetSelf();//写ROM
		Write_Para();

	     
	   }
     

  if(!Signed_Test)// if not test system
  {
	if(Alarm_Count>150)//100ms
	{
	  if((Sign_Speed))
      {
	    //P1_1=1;
		if(Sign_Alarm_Speed==1)
		{
		  Sign_Alarm_Speed=0;
		  Byte_Try=Display_Lookup_Table(11);
	     // Set_Display(1,Byte_Try,0x8000);
		 // Set_Display(2,Byte_Try,0x8000);
		 // Set_Display(3,Byte_Try,0x8000);
		  //Set_Display(4,Byte_Try,0x8000);
		   T0=0;
		Value_For_Display[4]=Byte_Try;
		Value_For_Display[5]=Byte_Try;
		Value_For_Display[6]=Byte_Try;
		Value_For_Display[7]=Byte_Try;
		T0=1;
		}
		else
		{
		  Sign_Alarm_Speed=1; 
		//  if(!Bit_Sign_SettingParaDisplay)
		if((!Bit_Sign_DisplayTime_OilPre)&&(!Bit_Sign_SettingParaDisplay)&&(!Bit_Sign_DisplaySetting_Sure)  )
		   if(!Bit_Sign_Display_Setting)
		    Display_Acord_Value( 1,Alarm_Speed,0 );
		}
		
      }
	   if((Sign_Pre_Oil))
      {
	    //P1_1=1;
		if(Sign_Alarm_OilPre==1)
		{
		  Sign_Alarm_OilPre=0;
		  Byte_Try=Display_Lookup_Table(11);
	   //   Set_Display(1,Byte_Try,0x8004);
	//	  Set_Display(2,Byte_Try,0x8004);
		//  Set_Display(3,Byte_Try,0x8004);
		 // Set_Display(4,Byte_Try,0x8004);
		 T0=0;
			Value_For_Display[8]=Byte_Try;
			Value_For_Display[9]=Byte_Try;
			Value_For_Display[10]=Byte_Try;
			Value_For_Display[11]=Byte_Try;
			T0=1;
		}
		else
		{
		  Sign_Alarm_OilPre=1; 
		 // if((!Bit_Sign_DisplayTime_OilPre)&&(!Bit_Sign_SettingParaDisplay))
		 if((!Bit_Sign_DisplayTime_OilPre)&&(!Bit_Sign_DisplaySetting_Sure)  )
		    if( (!Bit_Sign_Display_Setting)&&(!Bit_Sign_Display_Time)  )
		    Display_Acord_Value( 2 ,Alarm_Pre_Oil,0);
		}
		
      }
	   if((Sign_Tem_Oil))
      {
	    //P1_1=1;
		if(Sign_Alarm_OilTem==1)
		{
		  Sign_Alarm_OilTem=0;
		  Byte_Try=Display_Lookup_Table(11);
	   //   Set_Display(1,Byte_Try,0x800D);
		 // Set_Display(2,Byte_Try,0x800D);
		//  Set_Display(3,Byte_Try,0x800D);
			T0=0;
			Value_For_Display[12]=Byte_Try;
			Value_For_Display[13]=Byte_Try;
			Value_For_Display[14]=Byte_Try;
		
			T0=1;
		 // Set_Display(4,Byte_Try,0x800C);
		}
		else
		{
		  Sign_Alarm_OilTem=1; 
		  Display_Acord_Value( 4 ,Alarm_Tem_Oil,0);
		}
		
      }
	   if((Sign_Tem_Water))
      {
	    //P1_1=1;
		if(Sign_Alarm_Water==1)
		{
		  Sign_Alarm_Water=0;
		  Byte_Try=Display_Lookup_Table(11);
	    //  Set_Display(1,Byte_Try,0x800A);
		 // Set_Display(2,Byte_Try,0x800A);
		 // Set_Display(3,Byte_Try,0x800A);
		 	T0=0;
			Value_For_Display[1]=Byte_Try;
			Value_For_Display[2]=Byte_Try;
			Value_For_Display[3]=Byte_Try;
		
			T0=1;
		//  Set_Display(4,Byte_Try,0x8009);
		}
		else
		{
		  Sign_Alarm_Water=1; 
		  
		  Display_Acord_Value( 3,Alarm_Tem_Water,0);
		}
		
      }

	  Alarm_Count=0;
	//  if()
	}
   
///	if(Display_Count>200)
  if(Display_Count>500)
	{

//	   Value_Test_24v=read1543(3)* Calculate_Line_k( 0,0,0X3ff,5)/0.1304  +1;
		 //每分钟采集一次电压值


     if(   (Pre_Oil[4]<Para_Setting_PreOil)||(Tem_Oil[4]>Para_Setting_TemOil)||(Tem_Water[4]>Para_Setting_TemWater)
              || ( Speed> Para_Setting_Speed )   ) 
       {
             Bit_Sign_Alarm_NoKeyBoard=1;


			//   Bit_Sign_Alarm_Stop=1;//baojing  tingji 


			  if(Byte_Sign_First_Alarm_StartStop==0)
			       Byte_Sign_First_Alarm_StartStop=1;
			
			   if(Byte_Sign_First_Alarm_StartStop==1)
			   {
				     Byte_Sign_First_Alarm_StartStop=2;
					 Count_Alarm_Stop_Send=0;
			   }

				if(Byte_Sign_First_Alarm_StartStop==2)
				{
				     Byte_Sign_First_Alarm_StartStop=2;
					 
				}

			   
              if(  !(Byte_Sign_First_Alarm_StartStop==3)  )
			  {

			       Temp_Output=Temp_Output|0x10;//停机
              }
	      
	     	if( (!Signed_Sound_Off) )
			{
             // P1_1=1;
			 // P1_4=1;
               Temp_Output=Temp_Output|0x80;//D7

			   Temp_Output=Temp_Output|0x20;//D5
              // Temp_Output=Temp_Output|0x10;

			 }
			else
			{
			 // P1_1=0;
			//  P1_4=0;
		       Temp_Output=Temp_Output&0x7f;//D7\

			   Temp_Output=Temp_Output&0xdf;//\D5
			}
        }//for if (sound)
	  else
		 {  
		       Signed_Sound_Off=0;
		   //  P1_1=0;
			// P1_4=0;
               Temp_Output=Temp_Output&0xdf;//\D5
	           Temp_Output=Temp_Output&0x7f;//D7\
			   Temp_Output=Temp_Output&0xdf;//\D5
			   // Temp_Output=Temp_Output&0xdf;//\D5
			//	 Temp_Output=Temp_Output&0xdf;//\D5
				//  Temp_Output=Temp_Output&0xdf;//\D5


            Byte_Sign_First_Alarm_StartStop=0;


		//	   XBYTE[0x8008]=Temp_Output;//输出报警*************
		 }

	//	  XBYTE[0x8008]=Temp_Output;//输出报警*************
///////////////////////////////////////////////////
          if(  (Byte_Sign_First_Alarm_StartStop==2)&&(Count_Alarm_Stop_Send>  ( Para_Setting_Stop_SureTime*1000)  )  )//一报警就停机
	   //   if(  (Bit_Sign_Alarm_Stop)&&(Count_Alarm_Stop_Send>  1000 )  )
		  {

		     Byte_Sign_First_Alarm_StartStop=3;
			 Temp_Output=Temp_Output&0xef;
			   Temp_Output=Temp_Output&0x7f;//D7\
			  Temp_Output=Temp_Output&0xdf;//\D5


			  Signed_Sound_Off=0;


	//	     XBYTE[0x8008]=Temp_Output;

		  }


         //if((!Bit_Sign_DisplayTime_OilPre)&&(!Bit_Sign_SettingParaDisplay))
		 if((!

⌨️ 快捷键说明

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