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

📄 uifunction.c

📁 基于c的电动机保护程序
💻 C
📖 第 1 页 / 共 5 页
字号:
					//calTemp = 	0;
				 	ChangeDisplayFlag = 0;
				}
				
				
				temp = calTemp;
				Float2Led(calTemp , LedValue);
				
				caltemptemp2 = 0;
				aa = 0;
				calTemp = 0.0;
				caltemptemp = 0;
				calSampleNum = 0;
			
				LED_1 = Symbol_Segment[ Protect_Select *2 ] ;
		
				if( Symbol_Segment[ Protect_Select*2 + 1 ]  != 0 )
				{
					LED_2 = Symbol_Segment[ Protect_Select * 2 + 1 ] ;
					if(temp> 99)
					{
						LED_3 = LedNum[9];
						LED_4 =LedNum[9];
				
					}
					else
					{
						LED_3 = LedValue[0];
						LED_4 = LedValue[1] ;
					}
				
				}
			
				else
				{
					
					/*
					if((LedValue[0]>>8)&0x1)
					{
						LED_2 = 0;
						LED_3 = LedValue[0];
						LED_4 = LedValue[1];
					}
					else
					{
						LED_2 = LedValue[0];
						LED_3 = LedValue[1];
						LED_4 = LedValue[2];
					}*/
					
					LED_2 = LedValue[0];
					LED_3 = LedValue[1];
					LED_4 = LedValue[2];
				}
			}
		} //end if( Protect_Select <20 )
		else
		{
			switch( Protect_Select - 9)
			{
				case 1:
					LED_1 = chard;
					LED_2 = charAdot;
					if( JDInputs -> DI[0] == 1)
					{
						LED_3 = charF;
						LED_4 = charF;
					}
					else
					{
						LED_3 = LedNum[0];
						LED_4 = LedNum[0];
					}
					break;
			
				case 2:
					LED_1 = chard;
					LED_2 = charbdot;
					if( JDInputs -> DI[1] == 1)
					{
						LED_3 = charF;
						LED_4 = charF;
					}
					else
					{
						LED_3 = LedNum[0];
						LED_4 = LedNum[0];
					}
					break;
					
				case 3:
					LED_1 = chard;
					LED_2 = charCdot;
					if( JDInputs -> DI[2] == 1)
					{
						LED_3 = charF;
						LED_4 = charF;
					}
					else
					{
						LED_3 = LedNum[0];
						LED_4 = LedNum[0];
					}
					break;
					
				case 4:
					LED_1 = chard;
					LED_2 = charddot;
					if( JDInputs -> DI[3] == 1)
					{
						LED_3 = charF;
						LED_4 = charF;
					}
					else
					{
						LED_3 = LedNum[0];
						LED_4 = LedNum[0];
					}
					break;
					
				case 5:
					LED_1 = charb;
					LED_2 = charJdot;
					if( Alarm_Info < 10)
					{
						LED_3 = 0;
						ii = Alarm_Info;
						LED_4 = LedNum[(int)Alarm_Info];
					}
					else
					{
						LED_3 = LedNum[(int)Alarm_Info/10];
						LED_4 =  LedNum[(int)Alarm_Info%10];
					}
					break;
					
					
				case 6:
					LED_1 = chart;
					LED_2 = Numdot[2];
					if( Break_Info < 10)
					{
						LED_3 = 0;
						LED_4 = LedNum[Break_Info];
					}
					else
					{
						LED_3 = LedNum[Break_Info/10];
						LED_4 =  LedNum[Break_Info%10];
					}
					break;
					
					
				case 7:  //视在功率电度
					if(diandu_disp == 0)
					{
				  
				  		LED_1 =charS; 
				  	 	LED_2 =LedNum[2];
				  	 	LED_3 =chard;
				  	 	LED_4 =chard;
				  	}
				  	LedTemp[0] = LedNum[0]; 
					LedTemp[1] = LedNum[0];
					LedTemp[2] = LedNum[0];
					LedTemp[3] = LedNum[0];
					LedTemp[4] = LedNum[0]; 
					LedTemp[5] = LedNum[0];
					LedTemp[6] = LedNum[0];
					LedTemp[7] = LedNum[0];
				 
				 	
					alength=sprintf(str,"%d",diandu_int);	
				  
					for(j=8; alength>0&&j>0 ; alength--,j--)
					{
				 		//diandutemp = *(str+alength-1);
				 		//yxj = solid & 0xf ;
				 		
				 		LedTemp[j-1] = LedNum[(*(U8 *)(str+alength-1)) &0xf];
				 
					}
					
					if(diandu_disp == 1)
					{
						LED_1 = LedTemp[1];
				  		LED_2 = LedTemp[2];
				  		LED_3 = LedTemp[3];
				  		LED_4 = LedTemp[4]; 
				  	}
				  	
				  	
				  	
				  	if(diandu_disp == 2)
				  	{
				  		LED_1 = LedTemp[5];
				  		LED_2 = LedTemp[6];
				  		LED_3 = LedTemp[7]+0x100;
				  		LED_4 = LedNum[diandu_float_to_int];
				  	}
				  	
				   break;
				   
				   
				   case 8://有功功率电度
					if(diandu_disp == 0)
					{
				  
				  		LED_1 =chary; 
				  	 	LED_2 =charg;
				  	 	LED_3 =chard;
				  	 	LED_4 =chard;
				  	}
				  	LedTemp[0] = LedNum[0]; 
					LedTemp[1] = LedNum[0];
					LedTemp[2] = LedNum[0];
					LedTemp[3] = LedNum[0];
					LedTemp[4] = LedNum[0]; 
					LedTemp[5] = LedNum[0];
					LedTemp[6] = LedNum[0];
					LedTemp[7] = LedNum[0];
				 
				 	
					alength=sprintf(str,"%d",diandu_int);	
				  
					for(j=8; alength>0&&j>0 ; alength--,j--)
					{
				 		//diandutemp = *(str+alength-1);
				 		//yxj = solid & 0xf ;
				 		
				 		LedTemp[j-1] = LedNum[(*(U8 *)(str+alength-1)) &0xf];
				 
					}
					
					if(diandu_disp == 1)
					{
						LED_1 = LedTemp[1];
				  		LED_2 = LedTemp[2];
				  		LED_3 = LedTemp[3];
				  		LED_4 = LedTemp[4]; 
				  	}
				  	
				  	
				  	
				  	if(diandu_disp == 2)
				  	{
				  		LED_1 = LedTemp[5];
				  		LED_2 = LedTemp[6];
				  		LED_3 = LedTemp[7]+0x100;
				  		LED_4 = LedNum[diandu_float_to_int];
				  	}
				  	
				   break;
				   
				default:
					break;
					
				
					
			}//end  switch( Protect_Select - 9)
			
		
		} //end else
		
		
		
		
	}

}



U16 FixValueTemp[4];
int udelaytime;
int runTimes;
float LedResultTemp[3];
float LedResult;


void FixValue()
{

	int dotPosition ;   // 位置 0_1_2_3
	U16 tempData;
	int i = 0;
	int ii;

	//FixValueTemp[0] = 0 ; //小数点位置  1为最左边
	if( runTimes == FirstTime)
	{	
		FixValueTemp[0] = 0;
		FixValueTemp[1] = LED_2;
		FixValueTemp[2] = LED_3;
		FixValueTemp[3] = LED_4;
		runTimes++;
	}
	
	if(Bit_NeedSet == 3)
	{	
		ledBuff[1] = FixValueTemp[1] & 0xFE00;
		ledBuff[2] = FixValueTemp[2] & 0xFE00;
		ledBuff[3] = FixValueTemp[3] & 0xFE00;
	}		
	else
	{
		ledBuff[1] = FixValueTemp[1] ;
		ledBuff[2] = FixValueTemp[2] & 0xFE00;
		ledBuff[3] = FixValueTemp[3] & 0xFE00;
	}
	

	if(Func_Select == System)
	{
		Menu_Level = 1;
	}

	
	if( Menu_Level ==0 )
	{
		LedResultTemp[0] = Led2Int(FixValueTemp[1]&0xFE00);
		LedResultTemp[1] = Led2Int(FixValueTemp[2]&0xFE00);
		LedResultTemp[2] = Led2Int(FixValueTemp[3]&0xFE00);
  	
		Cursor = 3 - Up_Flag ;  //  位置: _ 1 2 3
  	
		if( Cursor < (4 - Bit_NeedSet) )
		{
			Cursor = 3;
		}
		
		if( Down_Flag == 0)
		{
			
			LedResultTemp[Cursor - 1] = ChangeLED1( &FixValueTemp[Cursor] );
					
			Down_Flag = -1;
					
		}
	
/********************************************************************************/  
		if( Up_Flag == Bit_NeedSet+1)
		{
					Up_Flag = 0;
		}	
		
/*********************************************************************************/

   }



	if( Menu_Level != 0)
	{

		if(Bit_NeedSet == 3)
		{
			LedResultTemp[0] = Led2Int(FixValueTemp[1]&0xFE00);
			LedResultTemp[1] = Led2Int(FixValueTemp[2]&0xFE00);
			LedResultTemp[2] = Led2Int(FixValueTemp[3]&0xFE00);
		}
		else
		{
			LedResultTemp[0] = 0;
			LedResultTemp[1] = Led2Int(FixValueTemp[2]&0xFE00);
			LedResultTemp[2] = Led2Int(FixValueTemp[3]&0xFE00);
		
		}
		if( Up_Flag == 0 )  //设定小数点位置

		{
		
				 /*****查找小数点位置****************/
				 if(FixValueTemp[0] == 0 )
				{	
					if(Bit_NeedSet == 3)
					{
						dotPosition = 1;
						FixValueTemp[0] = 1;
					}
					else
					{
						dotPosition = 2;
						FixValueTemp[0] = 2;
					}
					ii = dotPosition;
					
					i = 4 - Bit_NeedSet;
					do
					{
						
						tempData = FixValueTemp[i];
						i++;
			
						if( ( ( tempData >> 8 ) & dot ) != dot )
						{
			
							dotPosition ++ ;
							FixValueTemp[0] = dotPosition;
						}		
						else break;
					
					
					}while(i < Bit_NeedSet );
					
					
					/*
					for( i = (4 - Bit_NeedSet ); i < Bit_NeedSet  ; i++)
					{	
						tempData = FixValueTemp[i];
		
						if( ( ( tempData >> 8 ) & dot ) != dot )
						{
			
							dotPosition ++ ;
							FixValueTemp[0] = dotPosition;
						}		
						else break;
						
					}
					*/
				}
					
				dotPosition = FixValueTemp[0];
				if( Down_Flag == 0 )
				{	
					dotPosition--;
					if( dotPosition < 4 - Bit_NeedSet )
					{
						dotPosition = 3;
						
					}
					FixValueTemp[0] = dotPosition;
					Down_Flag = -1 ;
				}
				
				
				
		}		 
/*************************************************************************/
				
 	if( Up_Flag > 0)
	{
		
			
		Cursor = 4 - Up_Flag ;  //  位置: _ 1 2 3
	
			
			if( Cursor < (4 - Bit_NeedSet) )
			{
				Cursor = 3;
			}
			
			
		
			
			if( Down_Flag == 0)
			{
				
				LedResultTemp[Cursor - 1] = ChangeLED1( &FixValueTemp[Cursor] );
				
				Down_Flag = -1;
				
			}
			 
	}

/********************************************************************************/  
	if( Up_Flag == Bit_NeedSet+1)
		{
				Up_Flag = 0;
		}	
	
	}
	
/*********************************************************************************/

	switch ( FixValueTemp[0] )
		{
			case 3:
			{	
				LedResult = LedResultTemp[0]*100+LedResultTemp[1]*10+LedResultTemp[2];
			}
				break;
				
			
			
			case 2:
			{	
				
				if( LedResultTemp[2] != 0)
				{
					LedResult = LedResultTemp[0]*10+LedResultTemp[1]+LedResultTemp[2] /10;
				}
				else
				{
					LedResult = LedResultTemp[0]*10+LedResultTemp[1];
					
				}
			
			}
				break;
				
			
			
			
			case 1:
			{	
				LedResult = LedResultTemp[0] ;

⌨️ 快捷键说明

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