[AVR项目] 2009-05-25 11:18 我来说两句  

一种能同时使用两种格式(TV/DVD)的红外遥控器

一种能同时使用两种格式(TV/DVD)的红外遥控器,奉献给大家。
通过切换开关,就能发送不同格式的TV遥控码或DVD遥控码,目前按键只有6个,大家可以自己增加。

原理图

void IR_ON_One(void)   //发送38K的脉冲一次(560us)
void IR_ON_Multi(unsigned char Count) //发送38K的脉冲多次(以560us为一次)
void IR_OFF_One(void) //关闭38K脉冲(560us)
void IR_OFF_Three(void) //关闭38K脉冲(560us*3)
void IR_OFF_Multi(unsigned char Count)//关闭38K脉冲(560us*Count)

为什么要这样分开来做了,主要是因为时序问题.

每帧数据以9ms的间隔加4.5ms的脉冲13.5ms作为数据头
IR_ON_Multi(0x10);  //9ms
IR_OFF_Multi(0x08); //4.5ms

以脉宽为0.565ms,间隔0.56ms, 周期为1.125ms的组合表示二进制的“0”;
IR_ON_One();  //0.56ms
IR_OFF_One(); //0.56ms

以脉宽为0.565ms,间隔1.685ms,周期为2.25ms的组合表示二进制的“1”。
IR_ON_One();  //0.56ms
IR_OFF_Three(); //1.685ms

由9ms的间隔加2.5ms的脉冲组成的11.5ms作为连发码header信号
IR_ON_Multi(0x10);
IR_OFF_Multi(0x04);
IR_ON_One();
IR_OFF_Multi(0xA6);

DVD和TV码尾延时为什么不一样?这个估计得问DVD和TV的厂商才行了.因为每个厂商自己定义的不同,所以,这个是不固定的,因情况而改.

简单讲一下用示波器怎样调节?
主要是查看38K脉冲是不是正常,看正脉宽和负脉宽.

38K发送时,负脉宽比正脉宽稍宽一点,这是正常的(可能因为三极管的原因,如果去掉那个4148的二极管,脉冲的下降沿更难看).

除了那个IN4148,其它的跟普通的IR发射电路一样. 加上IN4148是为了让下降沿更快一点,整个脉冲也"好看"一点.

 源程序(编译器:CVAVR)
 原理图