int.c

来自「用51单片机实现IR解码」· C语言 代码 · 共 2,143 行 · 第 1/5 页

C
2,143
字号
		
}

#elif( IR_SYSTEM==PHILIPS_IR_SYSTEM)

CODE U8 IR_Key_Assign_Table[]={
		
					KEY_IR_,//								0x00,
					KEY_IR_   ,//							       0x01,
					KEY_IR_,//							0x02,
					KEY_IR_    ,//							0x03,
					KEY_IR_    ,//						0x04,
					KEY_IR_    ,//							       0x05,
					KEY_IR_   ,//							       0x06,
					KEY_IR_,//							0x07,
					KEY_IR_,//							       0x08,
					KEY_IR_,//							       0x09,
					KEY_IR_,//							       0x0A,
					KEY_IR_,//							       0x0B,
					KEY_IR_,//						       	0x0C,
					KEY_IR_,//					       		0x0D,
					KEY_IR_NEXT,//		       				0x0E,
					KEY_IR_STOP,//			 				0x0F,
					
					KEY_IR_OK,//							       0x10,
					KEY_IR_UP,//							       0x11,
					KEY_IR_FB,//							       0x12,
					KEY_IR_FF,//							       0x13,
					KEY_IR_DOWN,//							       0x14,
					KEY_IR_,//							       0x15,
					KEY_IR_,//							       0x16,
					KEY_IR_PREVIOUS,//							       0x17,
					KEY_IR_PLAY,//							       0x18,
					KEY_IR_VOLOUME_DOWN,//							       0x19,
					KEY_IR_VOLOUME_UP,//							       0x1A,
					KEY_IR_,//							       0x1B,
					KEY_IR_,//							       0x1C,
					KEY_IR_,//							       0x1D,
					KEY_IR_,//							       0x1E,
					KEY_IR_MENU,//							       0x1F,

					KEY_IR_,//							0x20,
					KEY_IR_,//							       0x21,
					KEY_IR_,//							       0x22,
					KEY_IR_,//							       0x23,
					KEY_IR_,//							       0x24,
					KEY_IR_,//							       0x25,
					KEY_IR_,//							       0x26,
					KEY_IR_,//							       0x27,
					KEY_IR_,//							       0x28,
					KEY_IR_,//							       0x29,
					KEY_IR_,//							       0x2A,
					KEY_IR_,//							       0x2B,
					KEY_IR_,//							       0x2C,
					KEY_IR_,//							       0x2D,
					KEY_IR_MUTE,//							       0x2E,
					KEY_IR_,//							       0x2F,		    

					KEY_IR_,//								0x33,
					KEY_IR_,//							       0x31,
					KEY_IR_,//							       0x32,
					KEY_IR_,//							       0x33,
					KEY_IR_,//							       0x34,
					KEY_IR_,//							       0x35,
					KEY_IR_,//							       0x36,
					KEY_IR_,//							       0x37,
					KEY_IR_,//							       0x38,
					KEY_IR_,//							       0x39,
					KEY_IR_,//							       0x3A,
					KEY_IR_,//							       0x3B,
					KEY_IR_,//							       0x3C,
					KEY_IR_,//							       0x3D,
					KEY_IR_,//							       0x3E,
					KEY_IR_,//							       0x3F,

					KEY_IR_,//							0x40,
					KEY_IR_,//							       0x41,
					KEY_IR_,//							       0x42,
					KEY_IR_,//							       0x43,
					KEY_IR_,//							       0x44,
					KEY_IR_,//							       0x45,
					KEY_IR_,//							       0x46,
					KEY_IR_,//							       0x47,
					KEY_IR_,//							       0x48,
					KEY_IR_,//							       0x49,
					KEY_IR_,//							       0x4A,
					KEY_IR_,//							       0x4B,
					KEY_IR_,//							       0x4C,
					KEY_IR_,//							       0x4D,
					KEY_IR_,//							       0x4E,
					KEY_IR_,//							       0x4F,

					KEY_IR_,//								0x55,
					KEY_IR_,//							       0x51,
					KEY_IR_,//							       0x52,
					KEY_IR_,//							       0x53,
					KEY_IR_,//							       0x54,
					KEY_IR_,//							       0x55,
					KEY_IR_,//							       0x56,
					KEY_IR_,//							       0x57,
					KEY_IR_,//							       0x58,
					KEY_IR_,//							       0x59,
					KEY_IR_,//							       0x5A,
					KEY_IR_,//							       0x5B,
					KEY_IR_,//							       0x5C,
					KEY_IR_,//							       0x5D,
					KEY_IR_,//							       0x5E,
					KEY_IR_,//							       0x5F,

					KEY_IR_,//								6x60,
					KEY_IR_   ,//							       6x61,
					KEY_IR_  ,//							6x62,
					KEY_IR_    ,//							6x63,
					KEY_IR_    ,//						6x64,
					KEY_IR_    ,//							       6x65,
					KEY_IR_   ,//							       6x66,
					KEY_IR_,//							6x67,
					KEY_IR_,//							       6x68,
					KEY_IR_,//							       6x69,
					KEY_IR_,//							       6x6A,
					KEY_IR_,//							       6x6B,
					KEY_IR_,//						       	6x6C,
					KEY_IR_,//					       		6x6D,
					KEY_IR_,//		       				6x6E,
					KEY_IR_,//			 				6x6F,
					
					KEY_IR_,//							       0x70,
					KEY_IR_,//							       0x71,
					KEY_IR_  ,//							       0x72,
					KEY_IR_,//							       0x73,
					KEY_IR_,//							       0x74,
					KEY_IR_,//							       0x75,
					KEY_IR_,//							       0x76,
					KEY_IR_,//							       0x77,
					KEY_IR_,//							       0x78,
					KEY_IR_,//							       0x79,
					KEY_IR_,//							       0x7A,
					KEY_IR_,//							       0x7B,
					KEY_IR_,//							       0x7C,
					KEY_IR_,//							       0x7D,
					KEY_IR_,//							       0x7E,
					KEY_IR_,//							       0x7F,

					KEY_IR_,//							0x80,
					KEY_IR_,//							       0x81,
					KEY_IR_,//							       0x82,
					KEY_IR_,//							       0x83,
					KEY_IR_,//							       0x84,
					KEY_IR_,//							       0x85,
					KEY_IR_,//							       0x86,
					KEY_IR_,//							       0x87,
					KEY_IR_,//							       0x88,
					KEY_IR_,//							       0x89,
					KEY_IR_,//							       0x8A,
					KEY_IR_,//							       0x8B,
					KEY_IR_,//							       0x8C,
					KEY_IR_,//							       0x8D,
					KEY_IR_,//							       0x8E,
					KEY_IR_,//							       0x8F,

					KEY_IR_,//								0x90,
					KEY_IR_,//							       0x91,
					KEY_IR_,//							       0x92,
					KEY_IR_,//							       0x93,
					KEY_IR_,//							       0x94,
					KEY_IR_,//							       0x95,
					KEY_IR_,//							       0x96,
					KEY_IR_,//							       0x97,
					KEY_IR_,//							       0x98,
					KEY_IR_,//							       0x99,
					KEY_IR_,//							       0x9A,
					KEY_IR_,//							       0x9B,
					KEY_IR_,//							       0x9C,
					KEY_IR_,//							       0x9D,
					KEY_IR_,//							       0x9E,
					KEY_IR_,//							       0x9F,

					KEY_IR_,//							0xA0,
					KEY_IR_,//							       0xA1,
					KEY_IR_,//							       0xA2,
					KEY_IR_,//							       0xA3,
					KEY_IR_,//							       0xA4,
					KEY_IR_,//							       0xA5,
					KEY_IR_,//							       0xA6,
					KEY_IR_,//							       0xA7,
					KEY_IR_,//							       0xA8,
					KEY_IR_,//							       0xA9,
					KEY_IR_,//							       0xAA,
					KEY_IR_,//							       0xAB,
					KEY_IR_,//							       0xAC,
					KEY_IR_,//							       0xAD,
					KEY_IR_,//							       0xAE,
					KEY_IR_,//							       0xAF,

					KEY_IR_,//								0xB0,
					KEY_IR_,//							       0xB1,
					KEY_IR_,//							       0xB2,
					KEY_IR_,//							       0xB3,
					KEY_IR_,//							       0xB4,
					KEY_IR_,//							       0xBB,
					KEY_IR_,//							       0xB6,
					KEY_IR_,//							       0xB7,
					KEY_IR_,//							       0xB8,
					KEY_IR_,//							       0xB9,
					KEY_IR_,//							       0xBA,
					KEY_IR_,//							       0xBB,
					KEY_IR_,//							       0xBC,
					KEY_IR_,//							       0xBD,
					KEY_IR_,//							       0xBE,
					KEY_IR_,//							       0xBF,

					KEY_IR_,//								CxC0,
					KEY_IR_   ,//							       CxC1,
					KEY_IR_  ,//							CxC2,
					KEY_IR_    ,//							CxC3,
					KEY_IR_    ,//						CxC4,
					KEY_IR_    ,//							       CxC5,
					KEY_IR_   ,//							       CxC6,
					KEY_IR_,//							CxC7,
					KEY_IR_,//							       CxC8,
					KEY_IR_,//							       CxC9,
					KEY_IR_,//							       CxCA,
					KEY_IR_,//							       CxCB,
					KEY_IR_,//						       	CxCC,
					KEY_IR_,//					       		CxCD,
					KEY_IR_,//		       				CxCE,
					KEY_IR_,//			 				CxCF,
					
					KEY_IR_,//							       0xD0,
					KEY_IR_,//							       0xD1,
					KEY_IR_  ,//							       0xD2,
					KEY_IR_,//							       0xD3,
					KEY_IR_,//							       0xD4,
					KEY_IR_,//							       0xD5,
					KEY_IR_,//							       0xD6,
					KEY_IR_,//							       0xD7,
					KEY_IR_,//							       0xD8,
					KEY_IR_,//							       0xD9,
					KEY_IR_,//							       0xDA,
					KEY_IR_,//							       0xDB,
					KEY_IR_,//							       0xDC,
					KEY_IR_,//							       0xDD,
					KEY_IR_,//							       0xDE,
					KEY_IR_,//							       0xDF,

					KEY_IR_,//							0xE0,
					KEY_IR_,//							       0xE1,
					KEY_IR_,//							       0xE2,
					KEY_IR_,//							       0xE3,
					KEY_IR_,//							       0xE4,
					KEY_IR_,//							       0xE5,
					KEY_IR_,//							       0xE6,
					KEY_IR_,//							       0xE7,
					KEY_IR_,//							       0xE8,
					KEY_IR_,//							       0xE9,
					KEY_IR_,//							       0xEA,
					KEY_IR_MUTE,//							       0xEB,
					KEY_IR_,//							       0xEC,
					KEY_IR_,//							       0xED,
					KEY_IR_,//							       0xEE,
					KEY_IR_,//							       0xEF,

					KEY_IR_,//								0xF0,
					KEY_IR_,//							       0xF1,
					KEY_IR_,//							       0xF2,
					KEY_IR_,//							       0xFF,
					KEY_IR_,//							       0xF4,
					KEY_IR_,//							       0xF5,
					KEY_IR_,//							       0xF6,
					KEY_IR_,//							       0xF7,
					KEY_IR_,//							       0xF8,
					KEY_IR_,//							       0xF9,
					KEY_IR_,//							       0xFA,
					KEY_IR_,//							       0xFB,
					KEY_IR_,//							       0xFC,
					KEY_IR_,//							       0xFD,
					KEY_IR_,//							       0xFE,
					KEY_IR_//							       0xFF,

					
                            
};

enum{
	INT_INVALID,
	INT_1_T,
	INT_2_T,
	INT_3_T,
	INT_4_T,

	INT_5_T,
	INT_6_T,
	INT_7_T,
	INT_8_T
	
};

  #if(SYSTEM_CRYSTAL	==USE_CRYSTAL_27M)

#define	RC5_INT_3_T_MIN		   	5500	//6000-500		/* 		3 * 0.888889ms/(12/fs) *1000	*/	
#define 	RC5_INT_3_T_MAX		   	6500	//6000+500
#define 	RC5_INT_2_T_MIN			3500	//4000-500
#define 	RC5_INT_2_T_MAX			4500	//4000+500
#define 	RC5_INT_4_T_MIN			7500	//8000-500
#define 	RC5_INT_4_T_MAX			8500	//8000+500


#define INT_8_T_MIN	            	7000      /*            8  *0.44444ms/(12/fs)*1000            */
#define INT_8_T_MAX		     	9000	
#define INT_3_T_MIN		   	2500	
#define INT_3_T_MAX			3500
#define INT_2_T_MIN			1500
#define INT_2_T_MAX			2500
#define INT_5_T_MIN			4500
#define INT_5_T_MAX			5500
#define INT_6_T_MIN			5500
#define INT_6_T_MAX			6500
#define INT_4_T_MIN			3500
#define INT_4_T_MAX			4500

#define INTERVAL_TIME_OF_PHILIPS_IR_KEY_FRAMES	4       // for RC5 is about 85ms  ,81ms for RC6, but we use   3*28.9ms =87ms 
#elif(SYSTEM_CRYSTAL	==USE_CRYSTAL_27MX2)
	
#define	RC5_INT_3_T_MIN		   	11000	//6000-500		/* 		3 * 0.888889ms/(12/fs) *1000	*/	
#define 	RC5_INT_3_T_MAX		   	13000	//6000+500
#define 	RC5_INT_2_T_MIN			7000	//4000-500
#define 	RC5_INT_2_T_MAX			9000	//4000+500
#define 	RC5_INT_4_T_MIN			15000	//8000-500
#define 	RC5_INT_4_T_MAX			17000	//8000+500

#define INT_8_T_MIN	            	14000      /*            8  *0.44444ms/(12/fs)*1000            */
#define INT_8_T_MAX		     	18000	
#define INT_3_T_MIN		   	5000
#define INT_3_T_MAX			7000
#define INT_2_T_MIN			3000
#define INT_2_T_MAX			5000
#define INT_5_T_MIN			9000
#define INT_5_T_MAX			11000
#define INT_6_T_MIN			11000
#define INT_6_T_MAX			13000
#define INT_4_T_MIN			7000
#define INT_4_T_MAX			9000

#define INTERVAL_TIME_OF_PHILIPS_IR_KEY_FRAMES	8      // for RC5 is about 85ms  ,81ms for RC6, but we use   3*2* 14.45ms =87ms 

#endif

/*for the RC5  interrupt time is twice of RC6  so  we define as followed*/
#define 	RC5_INT_2_T		INT_4_T
#define 	RC5_INT_3_T		INT_6_T
#define 	RC5_INT_4_T    		INT_8_T




enum{

No_Valid,
One_bit_End_Edge,
Zero_Bit_Falling_Edge,
TRAILER_Bit_Falling_Edge,
TRAILER_Bit_End_Edge

};
enum{

RC5_No_Valid,
RC5_One_bit_Falling_Edge,
RC5_Zero_Bit_END_Edge,

};
enum{
	GET_RC5_BEGIN_STEP=0,
	GET_RC5_START_STEP=1,          		//0
		
	GET_RC5_INDICATION_BIT_STEP=2	,		//    1
	
	GET_RC5_CONTROL_BIT_STEP=3,
	
	GET_RC5_SYSTEM_BIT4_STEP=4,
	GET_RC5_SYSTEM_BIT3_STEP=5,
	GET_RC5_SYSTEM_BIT2_STEP=6,         //5
	GET_RC5_SYSTEM_BIT1_STEP=7,				//6
	GET_RC5_SYSTEM_BIT0_STEP=8,		//7
	
	GET_RC5_COMMAND_BIT5_STEP=9,
	GET_RC5_COMMAND_BIT4_STEP=10,
	GET_RC5_COMMAND_BIT3_STEP=11,		//   10
	GET_RC5_COMMAND_BIT2_STEP=12,
	GET_RC5_COMMAND_BIT1_STEP=13,
	GET_RC5_COMMAND_BIT0_STEP=14,
	
	
	GET_RC5_IR_INVALID_STEP=0xff,
	

};
enum{
	GET_LEADER_STEP=0,          		//0
		
	GET_START_STEP=1	,		//    1
	GET_MODE_BIT0_STEP=2,
	GET_MODE_BIT1_STEP=3,
	GET_MODE_BIT2_STEP=4,
	GET_TRAILER_FALLING_STEP=5,         //5
	
	GET_TRAILER_STEP=6,				//6
	
	GET_CONTROL_BIT7_STEP=7,		//7
	GET_CONTROL_BIT6_STEP=8,
	GET_CONTROL_BIT5_STEP=9,
	GET_CONTROL_BIT4_STEP=10,		//   10
	
	GET_CONTROL_BIT3_STEP=11,
	GET_CONTROL_BIT2_STEP=12,
	GET_CONTROL_BIT1_STEP=13,
	GET_CONTROL_BIT0_STEP=14,
	
	GET_INFORMATION_BIT7_STEP=15,	//15
	GET_INFORMATION_BIT6_STEP=16,
	GET_INFORMATION_BIT5_STEP=17,
	GET_INFORMATION_BIT4_STEP=18,
	GET_INFORMATION_BIT3_STEP=19,
	
	GET_INFORMATION_BIT2_STEP=20,     //20
	
	GET_INFORMATION_BIT1_STEP=21,
	GET_INFORMATION_BIT0_STEP=22,  //22
	

⌨️ 快捷键说明

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