📄 用io口模拟ir代码.c
字号:
void Delay10us(WORD uctemp)// 0.56ms
{
while( uctemp --)
{
Delay3us();
Delay3us();
Delay5us();
}
}
void SendByteData(BYTE ucValue)
{
BYTE cnt;
for(cnt=0;cnt<8;cnt++)
{
PNL0=0;
Delay10us(56);// 0.56ms
PNL0=1;
if(ucValue&_BIT0)
Delay10us(168); // "1" 2.25ms-0.56ms=1.69ms
else
Delay10us(56); //"0" 0.56ms
ucValue=ucValue>>1;
}
}
void Trs2DVDIrSend(BYTE IRData)
{
gmi_CStopIR();
PNL0=0;
Delay10us(900);// 0.56ms
PNL0=1;
Delay10us(450);// 0.56ms
SendByteData(0x00); // DVB HEADER_CODE0
SendByteData(0xFB); // DVB HEADER_CODE1
SendByteData(IRData);
SendByteData(~IRData);
PNL0=0;
Delay10us(56);
PNL0=1;
gmi_CStartIR();
}
void ProssMCU2DVDkeyHandle(BYTE Keycode)
{
switch(Keycode)
{
case KEY_0:
Trs2DVDIrSend(0x00); // DVD_KEY0
break;
case KEY_1:
Trs2DVDIrSend(0x01); //DVD_KEY1
break;
case KEY_2:
Trs2DVDIrSend(0x02); // DVD_KEY2
break;
case KEY_3:
Trs2DVDIrSend(0x03); // DVD_KEY3
break;
case KEY_4:
Trs2DVDIrSend(0x04); // DVD_KEY4
break;
case KEY_5:
Trs2DVDIrSend(0x05); // DVD_KEY5
break;
case KEY_6:
Trs2DVDIrSend(0x06); // DVD_KEY6
break;
case KEY_7:
Trs2DVDIrSend(0x07); // DVD_KEY7
break;
case KEY_8:
Trs2DVDIrSend(0x08); // DVD_KEY8
break;
case KEY_9:
Trs2DVDIrSend(0x09); //DVD_KEY9
break;
case KEY_POWER:
Trs2DVDIrSend(0x1f); //DVD POWER MEMORY DISC CONTENT.
break;
case KEY_DVD_EJECT:
Trs2DVDIrSend(0x0a); // Open/Close
break;
case KEY_RECALL:
Trs2DVDIrSend(0x1a); //Playing Repeat
break;
case KEY_MTS:
Trs2DVDIrSend(0x34); //L/R Channel switch
break;
case KEY_DVD_MENU:
Trs2DVDIrSend(0x32); // Root Menu
break;
case KEY_TTX_MIX:
Trs2DVDIrSend(0x18); //Display Playing Infor.
break;
case KEY_PIP:
Trs2DVDIrSend(0x19);// Repeat A-B
case KEY_REPEAT:
Trs2DVDIrSend(0x1a);// Repeat A-B
break;
case KEY_UP:
Trs2DVDIrSend(0x21); //DVD_UP
break;
case KEY_DOWN:
Trs2DVDIrSend(0x22); // DVD_DOWN
break;
case KEY_LEFT:
Trs2DVDIrSend(0x23); //DVD_LEFT
break;
case KEY_RIGHT:
Trs2DVDIrSend(0x24);// DVD_RIGHT
break;
case KEY_DVD_SLOW:
Trs2DVDIrSend(0x0c); // RESERVE.
break;
case KEY_TTX_LIST:
Trs2DVDIrSend(0x35); // USB PORT SELET
break;
case KEY_TTX:
Trs2DVDIrSend(0x2a); // DVD Play/Pause
break;
case KEY_TTX_HOLD:
Trs2DVDIrSend(0x12); // DVD Stop
break;
case KEY_TTX_CANCEL:
Trs2DVDIrSend(0x13); // DVD Sound Language Switch.
break;
case KEY_TTX_INDEX:
Trs2DVDIrSend(0x31); // DVD Setup
break;
case KEY_MENU:
Trs2DVDIrSend(0x36); // DVD EXIT Setup Menu
break;
case KEY_TTX_SUBTITLE:
Trs2DVDIrSend(0x2b); //DVD_SubTitle
break;
case KEY_DVD_SELECT:
Trs2DVDIrSend(0x2e); //DVD_SELECT
break;
case KEY_TTX_SIZE:
Trs2DVDIrSend(0x2f); //Title Menu
break;
case KEY_TTX_REVEAL:
Trs2DVDIrSend(0x1c); //GOTO ???÷??·?
break;
case KEY_TTX_RED:
Trs2DVDIrSend(0x16); // Prev Title
break;
case KEY_TTX_GREEN:
Trs2DVDIrSend(0x17); // Next Title
break;
case KEY_TTX_YELLOW:
Trs2DVDIrSend(0x14); // Backward
break;
case KEY_TTX_CYAN:
Trs2DVDIrSend(0x15); // Forward
break;
default:
break;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -