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

📄 yt_key.c.bak

📁 完成数据的采集
💻 BAK
📖 第 1 页 / 共 2 页
字号:
#include"includes.h"
#include"ytep.h"
#include"ytepfunction.h"
#define  yt_Key_file
#define		C_keyID1			4
#define		C_keyID2			2
#define		C_keyID3			1
#define		C_keyID4			8
#define		C_keyID5			0x10
#define		C_keyID6			0x11
const	Int16U	Year_TAB[]={0,0x31,0x28,0x31,0x30,0x31,0x30,0x31,0x31,0x30,0x31,0x30,0x31};
const			Int16U	BAUD_TAB1[]={19500-50,9600,4800-50};
//--------------------------------------
//keyword  scan
//--------------------------------------
void		Set_UART()
{
	
	USART_InitTypeDef  UART_InitStructure;
  UART_InitStructure.USART_BaudRate = BAUD_TAB1[_YT._Rate&7];//[_YT._Rate]; 
  UART_InitStructure.USART_WordLength = USART_WordLength_8b;
  UART_InitStructure.USART_StopBits = USART_StopBits_1;
  UART_InitStructure.USART_Parity = USART_Parity_No ;
  UART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  UART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  UART_InitStructure.USART_Clock = USART_Clock_Disable;
  UART_InitStructure.USART_CPOL = USART_CPOL_Low;
  UART_InitStructure.USART_CPHA = USART_CPHA_1Edge;
  UART_InitStructure.USART_LastBit = USART_LastBit_Disable;
  
   UART_InitStructure.USART_Parity = USART_Parity_No;  
    USART_DeInit(USART1);
}
Int8U	scankey(KEY *KEYA)
{
	Int8U i,k;
        k=0;
	i=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4);
	if(i!=0)k|=1;
	i=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5);
	if(i!=0)k|=2;
	i=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6);
	if(i!=0)k|=4;
	i=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7);
	if(i!=0)k|=8;
	i=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4);
	if(i!=0)k|=0x10;
		
	if(k==0x1F)
	{
		KEYA->counter=0;
		KEYA->execute=0;
		return     0;
	}	
	if(k!=0x1F)
	{	 
		if(((++KEYA->counter)>=10)&&(KEYA->execute==0))
		{
			KEYA->execute=1;
			KEYA->ID=k^0x1F;
		}else
                if((KEYA->counter>=10)&&(KEYA->execute!=0)&&(k==0xe))
                {
                    History[0].SpaceCount=100;
		    Set_HISTORY(&History[0].ATemper[0]);
                    Set_HISTORY(&History[0].BTemper[0]);
                    Set_HISTORY(&History[0].CTemper[0]);
                }
	}
	return 0;
}
//***********************************************
Int8U key_setion(KEY *KEYA,_LCD *LCM)
{
  switch (LCM->Mode)
  {
  	case C_LCM_ALA_REG0:
		case C_LCM_ALA_REG1:
		case C_LCM_ALA_REG2:	
		case C_LCM_ALA_REG3:
		case C_LCM_ALA_REG4:
		case C_LCM_ALA_REG5:
		case C_LCM_ALA_REG6:	
	  case C_LCM_ALAMC:		     
		case	C_LCM_TEMRH: 
		case C_LCM_Mode0:
		case C_LCM_Mode1:
		case C_LCM_Mode2:
		case C_LCM_Mode3:	
		case C_LCM_Mode4:
		case C_LCM_Mode5:
		case C_LCM_Mode6:					
		case C_LCM_Mode7:
		case C_LCM_Mode8:
		case C_LCM_Mode9:	
		case C_LCM_Mode10:
		case C_LCM_Mode11:
		case C_LCM_Mode12:
		case C_LCM_Mode13:
		case C_LCM_Mode14:
		case C_LCM_Mode15:
		case C_LCM_Mode0_16:
		case C_LCM_Mode0_17:
		case C_LCM_Mode0_18:
			if(KEYA->counter>=200)
			{
				LCM->Mode=C_LCM_SET;
				LCM->Timer=0;
				LCM->FLAG=1;
				return	0;
			}else	 
			break;
		case	C_LCM_SET:	
		case	C_LCM_SET1:	
		case	C_LCM_SET2:	
		case	C_LCM_SET3:	
		case	C_LCM_SET4:
		case	C_LCM_SET5:	
		case	C_LCM_SET6:	
		case	C_LCM_SET7:		
			if(KEYA->counter==10)
		{		
			++LCM->Mode;
			LCM->Timer=0;
			LCM->FLAG=1;
			LCM->Lcd_add=0;
			if(LCM->Mode>C_LCM_SET7)LCM->Mode=C_LCM_SET;			 	
		}
			if(KEYA->counter>=200)
			{
				LCM->Mode=C_LCM_TEMRH;
				LCM->Timer=0;
				LCM->FLAG=1;
				return	C_FM24C04;
			}
		
			break;		
  }  
			return KEYA->ID;
}
//***********************************************
Int16U key_up(KEY *KEYA,_LCD *LCM,_yt *Data)
{
        Int16U    a,b;
	switch(LCM->Mode)
	{
		case C_LCM_ALA_REG0:
		case C_LCM_ALA_REG1:
		case C_LCM_ALA_REG2:	
		case C_LCM_ALA_REG3:
		case C_LCM_ALA_REG4:
		case C_LCM_ALA_REG5:
		case C_LCM_ALA_REG6:	
			LCM->FLAG=1;
			LCM->Mode=C_LCM_Mode0;
			break;	
    case C_LCM_ALAMC:		     
		case	C_LCM_TEMRH: 
		case C_LCM_Mode0:
		case C_LCM_Mode1:
		case C_LCM_Mode2:
		case C_LCM_Mode3:	
		case C_LCM_Mode4:
		case C_LCM_Mode5:
		case C_LCM_Mode6:		
		case C_LCM_Mode0_1:	
		case C_LCM_Mode7:
		case C_LCM_Mode8:
		case C_LCM_Mode9:	
		case C_LCM_Mode10:
		case C_LCM_Mode11:
		case C_LCM_Mode12:
		case C_LCM_Mode13:
		case C_LCM_Mode14:
		case C_LCM_Mode15:	
		case C_LCM_Mode0_16:
		case C_LCM_Mode0_17:
		case C_LCM_Mode0_18:
			if((++LCM->Mode)>=C_LCM_SET)
				LCM->Mode=C_LCM_ALAMC;
				LCM->Timer=0;
				LCM->FLAG=1;
			//CHK_DISP_MODE(Data->_Channal,&LCM->Mode);	
			
												  
			 	  	
				 if(LCM->Mode==C_LCM_Mode0)
					{
						if((Data->_Channal&0X70)==0x70)LCM->Mode=C_LCM_Mode1;//if(Data->_Channal&1)LCM->Mode=C_LCM_Mode1; 
					}
				 if(LCM->Mode==C_LCM_Mode1)
			  	{
			  		if((Data->_Channal&0X380)==0x380)LCM->Mode=C_LCM_Mode2;//if(Data->_Channal&2)LCM->Mode=C_LCM_Mode2; 
			  	}						
			    if(LCM->Mode==C_LCM_Mode2)
			  	{
			  		if((Data->_Channal&0X1c00)==0x1c00)LCM->Mode=C_LCM_Mode3;//if(Data->_Channal&4)LCM->Mode=C_LCM_Mode3; 
			  	}
			    if(LCM->Mode==C_LCM_Mode3)
			  	{
			  		if((Data->_Channal&0Xe000)==0xe000)LCM->Mode=C_LCM_Mode0_1;//if(Data->_Channal&8)LCM->Mode=C_LCM_Mode4; 
			  	}
			  	if(LCM->Mode==C_LCM_Mode0_1)
			  	{
			  		if((Data->_Channal&0Xe0)==0xe0)LCM->Mode=C_LCM_Mode4;
			  	}
			  	
			  	if(LCM->Mode==C_LCM_Mode4&&Data->_Channal&0x10)LCM->Mode=C_LCM_Mode5;
			  	if(LCM->Mode==C_LCM_Mode5&&Data->_Channal&0x20)LCM->Mode=C_LCM_Mode6;
			  	if(LCM->Mode==C_LCM_Mode6&&Data->_Channal&0x40)LCM->Mode=C_LCM_Mode7;
			  	if(LCM->Mode==C_LCM_Mode7&&Data->_Channal&0x80)LCM->Mode=C_LCM_Mode8;	
			  	if(LCM->Mode==C_LCM_Mode8&&Data->_Channal&0x100)LCM->Mode=C_LCM_Mode9;	
			  	if(LCM->Mode==C_LCM_Mode9&&Data->_Channal&0x200)LCM->Mode=C_LCM_Mode10;		
			  	if(LCM->Mode==C_LCM_Mode10&&Data->_Channal&0x400)LCM->Mode=C_LCM_Mode11;		
			  	if(LCM->Mode==C_LCM_Mode11&&Data->_Channal&0x800)LCM->Mode=C_LCM_Mode12;	
			  	if(LCM->Mode==C_LCM_Mode12&&Data->_Channal&0x1000)LCM->Mode=C_LCM_Mode13;	
			  	if(LCM->Mode==C_LCM_Mode13&&Data->_Channal&0x2000)LCM->Mode=C_LCM_Mode14;	
			  	if(LCM->Mode==C_LCM_Mode14&&Data->_Channal&0x4000)LCM->Mode=C_LCM_Mode15;
			  	if(LCM->Mode==C_LCM_Mode15&&Data->_Channal&0x8000)LCM->Mode=C_LCM_Mode0_16;					
			  	if(LCM->Mode==C_LCM_Mode0_16&&Data->_Channal&0x2)LCM->Mode=C_LCM_Mode0_17;
			  	if(LCM->Mode==C_LCM_Mode0_17&&Data->_Channal&0x4)LCM->Mode=C_LCM_Mode0_18;
			  	if(LCM->Mode==C_LCM_Mode0_18&&Data->_Channal&0x8)LCM->Mode=C_LCM_ALAMC;		
			break;
		case C_LCM_SET:			
				if(++(Data->Sensor[LCM->Lcd_add].Type)>=22)Data->Sensor[LCM->Lcd_add].Type=0;			
			break;
	  case C_LCM_SET1:
	  	if(LCM->Lcd_add==0)
	  	{	
	  		++Data->_TemOver;
	  		if((Data->_TemOver>=Data->_TemFault)||(Data->_TemOver>69))Data->_TemOver=10;
	  	}
	  	if(LCM->Lcd_add==1)
	  	{	
	  		++Data->_TemFast;
	  		if(Data->_TemFast>20)Data->_TemFast=2;
	  	}
	  	if(LCM->Lcd_add==2)
	  	{	
	  		++Data->_TemTime;
	  		if(Data->_TemTime>99)Data->_TemTime=5;
	  	}
	  	if(LCM->Lcd_add==3)
	  	{	
	  		++Data->_TemRoom;
	  		if(Data->_TemRoom>50)Data->_TemRoom=1;
	  	}	  	
	  	break;
	  case C_LCM_SET2:
	 	  if(++Data->_TemFault>99)Data->_TemFault=Data->_TemOver+5;
			break;
	case C_LCM_SET3:	  	
		  if(LCM->Lcd_add==0)
	 	{
		  if(++Data->_Yorder>=18)Data->_Yorder=0;
		} 
		else
		{
			Data->_Channal^=0x1;
		}	
		  	
		  break;
	 case C_LCM_SET4:
	 	  if(LCM->Lcd_add==0)
	 	  Data->_Rate^=8;
                  if(LCM->Lcd_add==1)
                  {
                    a=Data->_Rate&7;
                    if(++a>=3)a=0;
                    Data->_Rate&=0xfff8;
                    Data->_Rate|=a;
                    Uart1Init();
                    Init2515(Data->_Rate&3);
                  }
                  if(LCM->Lcd_add==2)
                  {
                    ++Data->_Address;
                    if(Data->_Address>=255)Data->_Address=1;
                  }
	 	  break;
	 case	C_LCM_SET5:
	 	if(LCM->Lcd_add==0)
	 		{
	 			if(Year[6]>0x99)Year[6]=0x99;
	 			++Year[6];
	 			a=Year[6];
	 			if((a&0x0f)>=10)Year[6]+=0x10,Year[6]&=0xf0;
	 			if(Year[6]>0x99)Year[6]=0x0;
	 			 b=Year[5]>>4;
         b=b*10+Year[5]&0x0f;
	 			if(Year[4]>Year_TAB[b])
	 			Year[4]=1;	 			
	 		}
	 		if(LCM->Lcd_add==1)
	 		{
	 			if(Year[5]>0x12)Year[6]=0x12;
	 			++Year[5];
	 			a=Year[5];
	 			if((a&0x0f)>=10)Year[5]+=0x10,Year[5]&=0xf0;
	 			if(Year[5]>0x12)Year[5]=0x1;
	 			b=Year[5]>>4;
        b=b*10+Year[5]&0x0f;	
	 			b=Year_TAB[b];
	 			if(Year[4]>=b)
	 			Year[4]=b;
	 					
	 			if(Year[5]==2&&Year[4]>=0x28)
	 			{
	 				a=Year[5]>>4;
                                        a=a*10+Year[5]&0x0f;
                                        if((a&0x3)==0)
	 				{
	 					if(Year[4]>0x29)Year[4]=0x29;
	 				}else
	 				{
	 					if(Year[4]>0x28)Year[4]=0x28;
	 				}	 					
	 			} 			
	 		}
	 	if(LCM->Lcd_add==2)
	 		{
	 			if(Year[4]>0x31)Year[4]=0x31;
	 			++Year[4];
	 			 
	 		  a=Year[6]>>4;
        a=a*10+Year[6]&0x0f;	 
	 			if((Year[4]&0x0f)>=10)Year[4]+=0x10,Year[4]&=0xf0;
	 				 b=Year[5]>>4;
                          b=b*10+Year[5]&0x0f;
                                if(Year[4]>Year_TAB[b])
                                {
	 			  if(((a&0x3)==0)&&(Year[5]==2))
                                  {
                                    if(Year[4]>0x29)Year[4]=1 ;
                                  }
                                  else Year[4]=1;
                                }
	 			
	 		}
	 	if(LCM->Lcd_add==3)
	 		{
	 			if(Year[3]>6)Year[3]=6;
	 			if(++Year[3]>=7)Year[3]=0;	
	 			 			
	 		}
	 	if(LCM->Lcd_add==4)
	 		{
	 			if(Year[2]>0x24)Year[3]=0x24;
	 			++Year[2];	 			
	 			if((Year[2]&0x0f)>=10)Year[2]+=0x10,Year[2]&=0xf0;	
	 			if(Year[2]>=0x24)Year[2]=0;				
	 		}	
	 		if(LCM->Lcd_add==5)
	 		{
	 			if(Year[1]>0x59)Year[3]=0x59;
	 			++Year[1];	 			
	 			if((Year[1]&0x0f)>=10)Year[1]+=0x10,Year[1]&=0xf0;	
	 			if(Year[1]>0x59)Year[1]=0;				
	 		}	
	 		WriteYear(&Year);
	 	  break;
	 	case C_LCM_SET6:
	 		if(LCM->Lcd_add==0)
	   {
	   	if(Data->_Channal&0x70)Data->_Channal&=0xff8f;
	   	else									 Data->_Channal|=0x70;
	   }	
	    if(LCM->Lcd_add==1)
	   {
	   	if(Data->_Channal&0x380)Data->_Channal&=0xfc7f;
	   	else									  Data->_Channal|=0x380;
	   }	
	    if(LCM->Lcd_add==2)
	   {
	   	if(Data->_Channal&0x1c00)Data->_Channal&=0xe3ff;
	   	else									  Data->_Channal|=0x1c00;
	   }	
	    if(LCM->Lcd_add==3)
	   {
	   	if(Data->_Channal&0xe000)Data->_Channal&=0x1fff;
	   	else									  Data->_Channal|=0xe000;
	   }	
	  //if(LCM->Lcd_add==0)Data->_Channal^=0X70;
	  //if(LCM->Lcd_add==1)Data->_Channal^=0X380;
	  //if(LCM->Lcd_add==2)Data->_Channal^=0X1C00;		
	  //if(LCM->Lcd_add==3)Data->_Channal^=0XE000;
	  break;
	   case C_LCM_SET7:
	  if(LCM->Lcd_add==0)Data->_Channal^=0x10;
	  if(LCM->Lcd_add==1)Data->_Channal^=0x20;
	  if(LCM->Lcd_add==2)Data->_Channal^=0x40;		
	  if(LCM->Lcd_add==3)Data->_Channal^=0x80;
	  if(LCM->Lcd_add==4)Data->_Channal^=0x100;
	  if(LCM->Lcd_add==5)Data->_Channal^=0x200;
	  if(LCM->Lcd_add==6)Data->_Channal^=0x400;		
	  if(LCM->Lcd_add==7)Data->_Channal^=0x800;
	  if(LCM->Lcd_add==8)Data->_Channal^=0x1000;
	  if(LCM->Lcd_add==9)Data->_Channal^=0x2000;
	  if(LCM->Lcd_add==10)Data->_Channal^=0x4000;		
	  if(LCM->Lcd_add==11)Data->_Channal^=0x8000;	
	   break;	 
	}
      return  0;
} 
//***********************************************
Int16U key_down(KEY *KEYA,_LCD *LCM,_yt *Data)
{
   Int16U    a,b;
	switch(LCM->Mode)
	{
		case C_LCM_ALA_REG0:
		case C_LCM_ALA_REG1:
		case C_LCM_ALA_REG2:	
		case C_LCM_ALA_REG3:
		case C_LCM_ALA_REG4:
		case C_LCM_ALA_REG5:
		case C_LCM_ALA_REG6:	
			LCM->FLAG=1;
			LCM->Mode=C_LCM_Mode0;
			break;	
		case C_LCM_ALAMC:	
		case	C_LCM_TEMRH: 		
		case C_LCM_Mode0:
		case C_LCM_Mode1:
		case C_LCM_Mode2:
		case C_LCM_Mode3:	
		case C_LCM_Mode4:
		case C_LCM_Mode5:
		case C_LCM_Mode6:		
		case C_LCM_Mode0_1:		
		case C_LCM_Mode7:
		case C_LCM_Mode8:
		case C_LCM_Mode9:	
		case C_LCM_Mode10:
		case C_LCM_Mode11:
		case C_LCM_Mode12:
		case C_LCM_Mode13:
		case C_LCM_Mode14:
		case C_LCM_Mode15:	
		case C_LCM_Mode0_16:
		case C_LCM_Mode0_17:
		case C_LCM_Mode0_18:					
			if((--LCM->Mode)<=(C_LCM_ALAMC-1)) 
				LCM->Mode=C_LCM_SET-1;
				LCM->Timer=0;
				LCM->FLAG=1;
				LCM->Lcd_add=0;
				  if(LCM->Mode==C_LCM_Mode0_18&&Data->_Channal&0x8000)LCM->Mode=C_LCM_Mode0_17;
				  if(LCM->Mode==C_LCM_Mode0_17&&Data->_Channal&0x8000)LCM->Mode=C_LCM_Mode0_16;	
				  if(LCM->Mode==C_LCM_Mode0_16&&Data->_Channal&0x8000)LCM->Mode=C_LCM_Mode0_15; 	
				  if(LCM->Mode==C_LCM_Mode15&&Data->_Channal&0x8000)LCM->Mode=C_LCM_Mode14;
			  	if(LCM->Mode==C_LCM_Mode14&&Data->_Channal&0x4000)LCM->Mode=C_LCM_Mode13;
			  	if(LCM->Mode==C_LCM_Mode13&&Data->_Channal&0x2000)LCM->Mode=C_LCM_Mode12;
			  	if(LCM->Mode==C_LCM_Mode12&&Data->_Channal&0x1000)LCM->Mode=C_LCM_Mode11;	
			  	if(LCM->Mode==C_LCM_Mode11&&Data->_Channal&0x800)LCM->Mode=C_LCM_Mode10;	
			  	if(LCM->Mode==C_LCM_Mode10&&Data->_Channal&0x400)LCM->Mode=C_LCM_Mode9;		
			  	if(LCM->Mode==C_LCM_Mode9&&Data->_Channal&0x200)LCM->Mode=C_LCM_Mode8;		
			  	if(LCM->Mode==C_LCM_Mode8&&Data->_Channal&0x100)LCM->Mode=C_LCM_Mode7;	
			  	if(LCM->Mode==C_LCM_Mode7&&Data->_Channal&0x80)LCM->Mode=C_LCM_Mode6;	
			  	if(LCM->Mode==C_LCM_Mode6&&Data->_Channal&0x40)LCM->Mode=C_LCM_Mode5;	
			  	if(LCM->Mode==C_LCM_Mode5&&Data->_Channal&0x20)LCM->Mode=C_LCM_Mode4;
			  	if(LCM->Mode==C_LCM_Mode4&&Data->_Channal&0x10)LCM->Mode=C_LCM_Mode0_1;	
				if(LCM->Mode==C_LCM_Mode0_1)
					{
						if((Data->_Channal&0XE)==0xe)LCM->Mode=C_LCM_Mode3;
					}
			  if(LCM->Mode==C_LCM_Mode3)
			  	{
			  		if((Data->_Channal&0XE000)==0xe000)LCM->Mode=C_LCM_Mode2;
			  	}
			  if(LCM->Mode==C_LCM_Mode2)
			  	{
			  		if((Data->_Channal&0X1C00)==0x1c00)LCM->Mode=C_LCM_Mode1;
			  	}
			  if(LCM->Mode==C_LCM_Mode1)
			  	{
			  		if((Data->_Channal&0X380)==0x380)LCM->Mode=C_LCM_Mode0;
			  	}			  	
				if(LCM->Mode==C_LCM_Mode0)
					{
						if((Data->_Channal&0X70)==0x70)LCM->Mode=C_LCM_TEMRH;
					}								
			break;
		case C_LCM_SET:
			if(--(Data->Sensor[LCM->Lcd_add].Type)>=22)Data->Sensor[LCM->Lcd_add].Type=21;	
	    break;	    
	 case C_LCM_SET1:

⌨️ 快捷键说明

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