📄 ic165_.c
字号:
#include "comm.h"
#include "ic165.h"
#include "Key_process.h"
#define MAX_165KEY_CODE 8
uchar code panel_key_table[] = {
PANEL_PREV_KEY, /*1*/
PANEL_FB_KEY, /*2*/
PANEL_FF_KEY, /*3*/
PANEL_NEXT_KEY, /*4*/
PANEL_OPEN_KEY, /*5*/
PANEL_PLAY_KEY, /*6*/
PANEL_STOP_KEY, /*7*/
PANEL_PWER_KEY, /*8*/
PANEL_FB_KEY|PANEL_PWER_KEY, /*9*/
PANEL_STOP_KEY|PANEL_PWER_KEY, /*10*/
PANEL_OPEN_KEY|PANEL_PWER_KEY /*11*/
};
char code ic165_2_irkey[] = {
_NO_KEY,
_REPEAT_KEY,
_PREV_KEY,
_NEXT_KEY,
_NO_KEY,
_OPEN_KEY,
_PLAY_KEY,
_STOP_KEY,
_POWER_KEY,
_NO_KEY,
_IR_SEL_KEY
};
extern uchar pre_165code;
extern uchar cnt_165;
#if 0
void ic165_init()
{
/*
*P2M1.7 = 0; P2M2.7 = 1;
*P2M1.6 = 0; P2M2.6 = 1;
*P2M1.0 = 0; P2M2.0 = 0;
*/
P2M1 &= 0x3E;
P2M2 &= 0xFE;
P2M2 |= 0xC0;
}
#endif
uchar read165()
{
uchar rtn_key = 0,i;
LD_165 = 1;
LD_165 = 0;
LD_165 = 1; /*load the parallel data*/
for(i=0;i<8;i++)
{
rtn_key <<= 1;
CLK_165 = 0;
if(SER_165)
{
rtn_key |= 1;
}
CLK_165 = 1;
}
rtn_key = ~rtn_key;
return rtn_key;
}
uchar get_key()
{
uchar i,rtn_value=0;
i = read165();
/* SBUF = i;
while(TI == 0);
TI = 0;*/
if(i != 0x00)
{
if(i != pre_165code)
{
if((pre_165code != 0)&&(cnt_165 == 0)) /*for two key to release*/
{}
else
{
cnt_165 = 1;
}
}
else
{
if(cnt_165 != 0)
{
cnt_165 ++;
}
if(cnt_165 > 0xf0)
{
cnt_165 = 0;
if(i == PANEL_STOP_KEY)
{
rtn_value = 5;
}
/* else if(i == PANEL_PREV_KEY)
{
rtn_value = 0xA;
}*/
}
if((cnt_165 >= 10) && (cnt_165 <20))
{
cnt_165 = 20;
for(rtn_value = 0;rtn_value<MAX_165KEY_CODE;rtn_value++)
{
if(i == panel_key_table[rtn_value])
{
break;
}
}
rtn_value ++;
if(rtn_value > MAX_165KEY_CODE) /*|| (i == PANEL_PREV_KEY))*/
rtn_value = 0;
}
}
}
#if 0
else
{
if(pre_165code == PANEL_PREV_KEY)
if(cnt_165 > 10)
rtn_value = 0x1; /*I use repeat key to select IR input, short press ,it return 0x1, long press it return 0xA*/
}
#endif
pre_165code = i;
return rtn_value;
}
char panel_convert_key(uchar key)
{
return ic165_2_irkey[key];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -