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

📄 main.c

📁 keil 环境 收IR及发IR的相关软件
💻 C
📖 第 1 页 / 共 3 页
字号:

                    if((data4&0x01)==0X01)
                    	{
                        IRsendBIT(1);	   			   
                    	}
		      else
		      	{
                        IRsendBIT(0);	   		   
		      	}	

  	     /***STOP  CODE****/	
                       IRsendPIN=0;
                       IRsendDelayms(4);
			  IRsendDelayUs(12);			   
                       IRsendPIN=1;
                       IRsendDelayms(4);
			  IRsendDelayUs(12);			   
            /*****************/
          EA=TRUE;
	  IRsendFlag=0; 
         data1=0;
         data2=0;
         data3=0;
         data4=0;
	  
  	}
}



sbit	IOP10 = P1^6;
#define ReadPin10()               IOP10
#define WritePin10(bData)    IOP10 = bData 

sbit	IOP11 = P1^0;
#define ReadPin11()              IOP11
#define WritePin11(bData)    IOP11 = bData 

sbit	IOP12 = P1^1;
#define ReadPin12()              IOP12
#define WritePin12(bData)    IOP12 = bData 

sbit	IOP15 = P1^2;
#define ReadPin15()              IOP15
#define WritePin15(bData)    IOP15 = bData 


unsigned char    STEP1_FPprev=0;                                                
unsigned char   STEP1_FPcurrent=0;                                                        

unsigned char    STEP2_FPprev=0;                                                
unsigned char    STEP2_FPcurrent=0;                                                        

unsigned char    STEP3_FPprev=0;                                                
unsigned char    STEP3_FPcurrent=0;   

unsigned char    STEP4_FPprev=0;                                                
unsigned char    STEP4_FPcurrent=0;   

unsigned char    STEP5_FPprev=0;                                                
unsigned char    STEP5_FPcurrent=0;   

unsigned char    STEP1_LOCK=0;
unsigned char    STEP2_LOCK=0;
unsigned char    STEP3_LOCK=0;
unsigned char    STEP4_LOCK=0;
unsigned char    STEP5_LOCK=0;

unsigned char  LOGN_PRESS_TIMER=0;

void  FrontKeyScan(void)
{
   unsigned char  i_temp;

   if(En_Flag==1)  return;

/*************************/
  //STEP1
/*************************/
     WritePin10(1); 
     WritePin11(1); 
     WritePin12(1); 
     WritePin15(1); 
	 
      i_temp=0;
	 
     if(ReadPin10()==0)                { i_temp|=0x01;  STEP1_FPcurrent=0x01;}
     else 	                                     { i_temp&=0xfe;}
							  		 
     if(ReadPin11()==0)                {i_temp|=0x02;   STEP1_FPcurrent=0x02;}
     else 	                                     {i_temp&=0xfd;}

     if(ReadPin12()==0)                {i_temp|=0x04;   STEP1_FPcurrent=0x03;}
     else 	                                      {i_temp&=0xfb;}

     if(ReadPin15()==0)                { i_temp|=0x08;  STEP1_FPcurrent=0x04;}
     else 	                                      {i_temp&=0xf7;}

     if(i_temp==0)
     	{
            STEP1_LOCK=0;
	     STEP1_FPprev=0;
            STEP1_FPcurrent=0;	


			
     	}
     else if ((STEP1_LOCK==0)&&((i_temp==0x01)||(i_temp==0x02)||(i_temp==0x04)||(i_temp==0x08)||(i_temp==0x10)||(i_temp==0x20)))
	{
	     if(STEP1_FPcurrent!=STEP1_FPprev)
	     	{
                  STEP1_FPprev=STEP1_FPcurrent;
	     	}
	     else
	     	{
         		
                  switch(STEP1_FPprev)
                  	{
                          case 1:        	  // OK
                                                  read_data_flag=1; 
                                                  En_Flag=1;					  
                                                  data4=IR_DVD_POWER;   // IR_PLAY_PAUSE

                                                  //g_ucTVChannelAutoScanCount_TEMP=1;
						   break;
			     case 2:            // OK    SOURCE
 				 	               read_data_flag=1;
                                                  En_Flag=1;
                                                  data4=IR_DVD_POWER;   // IR_PREV
												  
                                                  //g_ucTVChannelAutoScanCount_TEMP=2;
                                                  
						   break;
			     case 3:             // OK                   
				 	               read_data_flag=1; 
                                                  En_Flag=1;
                                                  data4=IR_DVD_POWER;  //IR_NEXT

                                                  //g_ucTVChannelAutoScanCount_TEMP=3;
                                              		  
						   break;				 	          
			     case 4:            // OK
				 	               read_data_flag=1;
                                                  En_Flag=1;
                                                  data4=IR_DVD_POWER;  // IR_DVD_SETUP

                                                  //g_ucTVChannelAutoScanCount_TEMP=4;
                                                 				  
				 	          break;
			 
			 }
                  STEP1_FPprev=0;
		    STEP1_FPcurrent=0;
		    STEP1_LOCK=1;

                  //IRsendFlag=1;

	     	}
                  return;

	}
     else
     	{
                  STEP1_FPprev=0;
		    STEP1_FPcurrent=0;
		      

                  STEP2_FPprev=0;
		    STEP2_FPcurrent=0;
		    STEP2_LOCK=0;    

                  STEP3_FPprev=0;
		    STEP3_FPcurrent=0;
		    STEP3_LOCK=0; 

                  STEP4_FPprev=0;
		    STEP4_FPcurrent=0;
		    STEP4_LOCK=0; 

                  STEP5_FPprev=0;
		    STEP5_FPcurrent=0;
		    STEP5_LOCK=0; 			
		    return;	
     	}          
     
/********************/
  //STEP2
/********************/
     WritePin10(0); 
     WritePin11(1); 
     WritePin12(1); 
     WritePin15(1); 
 
     i_temp=0;
                                                 
     if(ReadPin11()==0)                { i_temp|=0x01;  STEP2_FPcurrent=0x05;}
     else 	                                      { i_temp&=0xfe;}
									 
     if(ReadPin12()==0)                {i_temp|=0x02;   STEP2_FPcurrent=0x06;}
     else 	                                      {i_temp&=0xfd;}

     if(ReadPin15()==0)                {i_temp|=0x04;   STEP2_FPcurrent=0x07;}
     else 	                                      {i_temp&=0xfb;}
	 								   
     if(i_temp==0)
     	{
            STEP2_LOCK=0;
	     STEP2_FPprev=0;
            STEP2_FPcurrent=0;	



			
     	}
     else if ((STEP2_LOCK==0)&&((i_temp==0x01)||(i_temp==0x02)||(i_temp==0x04)||(i_temp==0x08)))
	{
	     if(STEP2_FPcurrent!=STEP2_FPprev)
	     	{
                  STEP2_FPprev=STEP2_FPcurrent;
	     	}
	     else
	     	{
			
                  switch(STEP2_FPprev)
                  	{
                          case 5:           		
				 	              read_data_flag=1; 
                                                  En_Flag=1;						  
                                                  data4=IR_DVD_POWER;  // IR_RIGHT
                                                  
                                                   //g_ucTVChannelAutoScanCount_TEMP=24;
                           
						   break;
			     case 6:              //  OK
				 	              read_data_flag=1; 
                                                  En_Flag=1;						  
                                                  data4=IR_DVD_POWER;  // IR_UP
				 
                                                  //g_ucTVChannelAutoScanCount_TEMP=7;
                                                  
				 	          break;
			     case 7:            // OK
				 	              read_data_flag=1; 
                                                  En_Flag=1;						  
                                                  data4=IR_DVD_POWER;  // IR_DOWN
                                               
                                                  //g_ucTVChannelAutoScanCount_TEMP=8;
                                          
				 	          break;			 
 			 
                  	}
                  STEP2_FPprev=0;
		    STEP2_FPcurrent=0;
		    STEP2_LOCK=1;
                  //IRsendFlag=1;
			
	     	}
                return;

	}
     else
     	{
                  STEP1_FPprev=0;
		    STEP1_FPcurrent=0;
		    STEP1_LOCK=0;    

                  STEP2_FPprev=0;
		    STEP2_FPcurrent=0;
		    

                  STEP3_FPprev=0;
		    STEP3_FPcurrent=0;
		    STEP3_LOCK=0;  

                  STEP4_FPprev=0;
		    STEP4_FPcurrent=0;
		    STEP4_LOCK=0; 

                  STEP5_FPprev=0;
		    STEP5_FPcurrent=0;
		    STEP5_LOCK=0; 
			
		    return;	
     	}          
												   
/*****************/
  //STEP3
/*****************/
     //WritePin20(1); 
     WritePin11(0); 
     WritePin12(1);                    
     WritePin15(1);      
	 
     i_temp=0;
     
     if(ReadPin12()==0)                { i_temp|=0x01;  STEP3_FPcurrent=0x08;}
     else 	                                      { i_temp&=0xfe;}
									 
     if(ReadPin15()==0)                { i_temp|=0x02;  STEP3_FPcurrent=0x09;}
     else 	                                     { i_temp&=0xfd;}

     if(i_temp==0)
     	{
            STEP3_LOCK=0;
	     STEP3_FPprev=0;
            STEP3_FPcurrent=0;		
     	}
     else if ((STEP3_LOCK==0)&&((i_temp==0x01)||(i_temp==0x02)||(i_temp==0x04)))
	{
	     if(STEP3_FPcurrent!=STEP3_FPprev)
	     	{
                  STEP3_FPprev=STEP3_FPcurrent;
	     	}
	     else
	     	{
                  switch(STEP3_FPprev)
                  	{                           
                          case 0x08:       // OK
				 	               read_data_flag=1;
                                                  En_Flag=1;
                                                  data4=IR_DVD_POWER;
                                                  //g_ucTVChannelAutoScanCount_TEMP=10;
                                                      
						   break;
                          case 0x09:       //  OK
                                                  read_data_flag=1; 
                                                  En_Flag=1;					  
                                                  data4=IR_DVD_POWER;  // IR_PLAY_ENTER
                                                  
                                                  //g_ucTVChannelAutoScanCount_TEMP=11;
                                                  
						   break;				   
                  	}
                  STEP3_FPprev=0;
		    STEP3_FPcurrent=0;
		    STEP3_LOCK=1;
                  //IRsendFlag=1;                 
	     	}

              return;
				
	}
     else
     	{
                  STEP1_FPprev=0;
		    STEP1_FPcurrent=0;
		    STEP1_LOCK=0;    

                  STEP2_FPprev=0;
		    STEP2_FPcurrent=0;
		    STEP2_LOCK=0;    

                  STEP3_FPprev=0;
		    STEP3_FPcurrent=0;
			
                  STEP4_FPprev=0;
		    STEP4_FPcurrent=0;
		    STEP4_LOCK=0; 

                  STEP5_FPprev=0;
		    STEP5_FPcurrent=0;
		    STEP5_LOCK=0; 		    

                  return;
     	}          

/*****************/
  //STEP4
/*****************/
     //WritePin20(1); 
     //WritePin21(0); 
     WritePin12(0); 
     WritePin15(1);                                  

	 
     i_temp=0;
     
     if(ReadPin15()==0)                { i_temp|=0x01;  STEP4_FPcurrent=0x0a;}
     else 	                                      { i_temp&=0xfe;}
									 
  
 
     if(i_temp==0)
     	{
            STEP4_LOCK=0;
	     STEP4_FPprev=0;
            STEP4_FPcurrent=0;		
     	}
     else if ((STEP4_LOCK==0)&&((i_temp==0x01)||(i_temp==0x02)||(i_temp==0x04)))
	{
	     if(STEP4_FPcurrent!=STEP4_FPprev)
	     	{
                  STEP4_FPprev=STEP4_FPcurrent;
	     	}
	     else
	     	{
                  switch(STEP4_FPprev)
                  	{                           
                          case 0x0a:        // OK
				 	               read_data_flag=1;
                                                  En_Flag=1;
                                                  data4=IR_DVD_POWER;
                                                  //g_ucTVChannelAutoScanCount_TEMP=10;
                                                      
						   break;
                     
                  	}
                  STEP4_FPprev=0;
		    STEP4_FPcurrent=0;
		    STEP4_LOCK=1;
                  //IRsendFlag=1;                 
	     	}

              return;
				
	}
     else
     	{
                  STEP1_FPprev=0;
		    STEP1_FPcurrent=0;
		    STEP1_LOCK=0;    

                  STEP2_FPprev=0;
		    STEP2_FPcurrent=0;
		    STEP2_LOCK=0;    

                  STEP3_FPprev=0;
		    STEP3_FPcurrent=0;
		    STEP3_LOCK=0; 
			
                  STEP4_FPprev=0;
		    STEP4_FPcurrent=0;


                  STEP5_FPprev=0;
		    STEP5_FPcurrent=0;
		    STEP5_LOCK=0; 		    

                  return;
     	}          




  
}


⌨️ 快捷键说明

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