tv.c

来自「avr单片机编写 一种能同时使用两种格式(TV/DVD)的红外遥控器,奉献给大」· C语言 代码 · 共 106 行

C
106
字号
/*
Author  : Aleyn.wu
Company : www.e-midas.cn
E-mail  : aleyn@e-midas.cn
*/

flash unsigned char TVKey[7] = {
					0x13, //P++
					0x17, //P--
					0x10, //V++
					0x14, //V--
					0x00, //0
					0x0B, //TV/AV
					0x00};

void SendTVIR(unsigned char Code)
{
	unsigned char OutCode;
	unsigned char i;
	
	IR_ON_Multi(0x10);
	IR_OFF_Multi(0x08);
	
	//1
	OutCode=0x1C;
	for (i=0;i<6;i++)
	{
		IR_ON_One();
		
		if (OutCode&0x01)	{IR_OFF_Three();}
		else				{IR_OFF_One();}
		
		OutCode>>=1;
	}
	
	//2
	OutCode=0x04;
	for (i=0;i<7;i++)
	{
		IR_ON_One();
		
		if (OutCode&0x01)	{IR_OFF_Three();}
		else				{IR_OFF_One();}
		
		OutCode>>=1;
	}
	
	//3
	OutCode=0x23;
	for (i=0;i<6;i++)
	{
		IR_ON_One();
		
		if (OutCode&0x01)	{IR_OFF_Three();}
		else				{IR_OFF_One();}
		
		OutCode>>=1;
	}
	
	//4
	OutCode=0x7B;
	for (i=0;i<7;i++)
	{
		IR_ON_One();
		
		if (OutCode&0x01)	{IR_OFF_Three();}
		else				{IR_OFF_One();}
		
		OutCode>>=1;
	}
	
	//5
	OutCode=Code;
	for (i=0;i<8;i++)
	{
		IR_ON_One();
		
		if (OutCode&0x01)	{IR_OFF_Three();}
		else				{IR_OFF_One();}
		
		OutCode>>=1;
	}

	//6
	OutCode=~Code;
	for (i=0;i<8;i++)
	{
		IR_ON_One();
		
		if (OutCode&0x01)	{IR_OFF_Three();}
		else				{IR_OFF_One();}
		
		OutCode>>=1;
	}

	IR_ON_One();
	IR_OFF_Multi(0x28);
}

void SendTVIRRept(void)
{
	IR_ON_Multi(0x10);
	IR_OFF_Multi(0x07);
	IR_ON_One();
	IR_OFF_Multi(0xA2);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?