红外接收解码.pptVIP

  • 0
  • 0
  • 约4.48千字
  • 约 12页
  • 2023-10-15 发布于山西
  • 举报
红外线遥控;红外线遥控;1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。;遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以兼容NEC的uPD6121G芯片发射码格式的芯片组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。;上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次 调制以提高发射效率,达到降低电源功耗的目的。 然后再通过红外发射二极管产生红外线向空间发射,如图。 ???????????????????????????????????????????????????????;接收器及解码 一体化红外线接收器是一种集红外线接收和放大于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。;红外接收;红外接收头将38K载波信号过虑,得到与发射代码反向接收代码 ;红外解码的关键就是识别 0和1;1.?解码的关键是如何识别“0”和“1”, 从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始, 不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度 区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低, 说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些, 但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平, 因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。 2.?根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。 ;检测9MS的引导码;bit DeCode(void) { unsigned char i,j; unsigned char temp; //储存解码出的数据 for(i=0;i4;i++) //连续读取4个用户码和键数据码 { for(j=0;j8;j++) //每个码有8位数字 { temp=temp1; //temp中的各数据位右移一位,因为先读出的是高位数据 TH0=0; //定时器清0 TL0=0; //定时器清0 TR0=1; //开启定时器T0 while(IR==0) //如果是低电平就等待 ; //低电平计时 TR0=0; //关闭定时器T0 LowTime=TH0*256+TL0; //保存低电平宽度 TH0=0; //定时器清0 TL0=0; //定时器清0 TR0=1; //开启定时器T0 while(IR==1) //如果是高电平就等待 ; TR0=0; //关闭定时器T0 HighTime=TH0*256+TL0; //保存高电平宽度 if((LowTime370)||(LowTime640)) return 0; //如果低电平长度不在合理范围,则认为出错,停止解码 if((HighTime420)(HighTime620)) //如果高电平时间在560微秒左右,即计数560/1.085=516次 temp=temp0x7f; //(520-100=420, 520+100=620),则该位是0 if((HighTime1300)(HighTime1800)) //如果高电平时间在1680微秒左右,即计数1680/1.085=1548次 temp=temp|

文档评论(0)

1亿VIP精品文档

相关文档