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 + -
显示快捷键?