红外遥控代码

红外线遥控器软件解码原理和程序(C语言)  UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为

C 红外线遥控器软件解码原理和程序(语言) UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别 码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别 码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G 最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。 一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约 在45~63ms之间,图4为发射波形图。 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲, 这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码 (9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数 据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代 码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。 代码格式 (以接收代码为准,接收代码与发射代码反向) ①位定义 ②单发代码格式 ③连发代码格式 注:代码宽度算法: 16位地址码的最短宽度:1.12×16=18ms 16位地址码的最长宽度: 2.24ms×16=36ms 易知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms 所以32位代码的宽度为(18ms+27ms)~(36ms+27ms) 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的结果码完成后才能读码。 接收器及解码

腾讯文库红外遥控代码