NEC编码,uPD6121G
引导码+用户码+用户反码+按键码+按键反码+连发码
其中引导码为9ms的高电平和4.5ms低电平组成
用户码和按键码都是8位,加上两个反码一共32位
连发码由起始码9ms和结束码2.25ms组成
用户码和按键码中的数值表示:
0: 0.56ms低电平+0.565ms高电平
1: 0.56ms低电平+1.685ms高电平
编程思想:采用定时器计时,统计高低电平的时间,通过时间区间的判断,识别出起始码/用户码/按键码以及连发码。如果接收到信号是1,则ircom[i] =ircom[i] |0x80>>1,高位置1,右移。如果接收到信号是0,则直接右移>>1,高位自动补0,则得到与接收信号头尾相反的码值,但已可使用。
摘抄两段话:
uPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多128种不同组合的编码。
当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。(实际上人手的动作是很慢的,即使你快速的按下按键,可能对于芯片来说还是超过108ms,所以如何处理连发码是很关键的)