📄 main.c
字号:
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 + -