红外线遥控器已被广泛使用在各种类型的家电产品上,它的出现给使用电器提供了很多 的便利。红外遥控系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又 可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由红外接收电路、 红外解码芯片、电源和应用电路组成。通常为了使信号能更好的被传输发送端将基带二进制 信号调制为脉冲串信号,通过红外发射管发射。常用的有通过脉冲宽度来实现信号调制的脉 宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方 法。
在同一个遥控电路中通常要使用实现不同的遥控功能或区分不同的机器类型,这样就要 求信号按一定的编码传送,编码则会由编码芯片或电路完成。对应于编码芯片通常会有相配 对的解码芯片或包含解码模块的应用芯片。在实际的产品设计或业余电子制作中,编码芯片 并一定能完成我们要求的功能,这时我们就需要了解所使用的编码芯片到底是如何编码的。 只有知道编码方式,我们才可以使用单片机或数字电路去定制解码方案。下面介绍的是笔者 所收集整理的一些常用遥控编码芯片的编码方式和常用一体化接收芯片的引脚示意图。
载波波形:
使用 455KHz 晶体,经内部分频电路,信号被调制在 37.91KHz,占空比为 3 分之 1。
数据格式:
数据格式包括了引导码、用户码、数据码和数据码反码,编码总占 32 位。数据反码是 数据码反相后的编码,编码时可用于对数据的纠错。注意:第二段的用户码也可以在遥控应 用电路中被设置成第一段用户码的反码。
#include <REG52.h>
#include<INTRINS.h>
#include "LCD1602.h"
#include "InfraRed.h"
char code numberTOchar[]="0123456789ABCDEF"; //数字转换成字符用到此数组
void main()
{
InitLcd();
SelfCreatChart();
InitInfrared();
DisplayListChar(0,0,"User Code:");//第一行显示用户码提示字符
DisplayListChar(0,1,"Key value:");//第二行显示键值提示字符
while(1)
{
if (irflag) //接收到红外数据时刷新显示
{
irflag = 0;
DisplayOneChar(10,0,numberTOchar[ircode[0]>>4]); //用户码第一位显示
DisplayOneChar(11,0,numberTOchar[ircode[0]&0x0F]); //用户码第二位显示
DisplayOneChar(10,1,numberTOchar[ircode[2]>>4]); //键码显示第一位显示
DisplayOneChar(11,1,numberTOchar[ircode[2]&0x0F]);//键码显示第二位显示
}
}
}