void sendheadtoktv(void)
{
KTV_IO_1;
Delay1ms(9);
KTV_IO_0;
Delay1ms(4);
Delay10us(50);
}
void sendhight(void)
{
KTV_IO_1;
Delay10us(56);
KTV_IO_0;
Delay10us(68);
Delay1ms(1);
}
void sendlow(void)
{
KTV_IO_1;
Delay10us(56);
KTV_IO_0;
Delay10us(56);
}
void Ircode_to_ktv(BYTE g_ucIrCode)
{
BYTE ktv_ircode,tempdata,i;
putstr("\r\nircode_to_ktv");
sendheadtoktv(); //引导码
tempdata=0xff; //用户码
for(i=0;i<8;i++)
{
if(tempdata&0x01)
sendhight();
else
sendlow();
tempdata=tempdata>>1;
}
tempdata=0x00; //用户反码
for(i=0;i<8;i++)
{
if(tempdata&0x01)
sendhight();
else
sendlow();
tempdata=tempdata>>1;
}
tempdata=g_ucIrCode; //数据码
for(i=0;i<8;i++)
{
if(tempdata&0x01)
sendhight();
else
sendlow();
tempdata=tempdata>>1;
}
tempdata=~g_ucIrCode;
for(i=0;i<8;i++)
{
if(tempdata&0x01)
sendhight();
else
sendlow();
tempdata=tempdata>>1;
}
} |