已知一款红外遥控器的波形图,怎样用单片机,编写程序对其进行解码用c语言不要用汇编

已知一款红外遥控器的波形图,怎样用单片机,编写程序对其进行解码用c语言不要用汇编,第1张

1。直接检测各个键的波形,记录每个键的整个波形的信息,再还原;这个方法比较具有一般性,单编塌猜燃程难度较大团虚和对硬件内存要求较高。

2。一般遥控器都是依据固定的协议来做的,比如phillips就有很多兆岩协议,根据遥控器的型号,找到对应的协议,就好办了。

3.一位一位的数,一个键一个键的分析。。。

4.有现成的红外遥控器分析仪,要花银子地

红外收发中,IRDATA[2]与IRDATA[3]是取反的关系。也就是说两个数对应各位前者为1后者就为0

其余的问题,都是根据红外接收时序来编的程序,以下总结以下红外收发时序供参考,你读懂就可以理解了。

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的"0";以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的"1“上述"0"和"1"组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射遥拿让者控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H后16位为8位 *** 作码(功能码)及其反码

发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。

解码的关键是如何识别"0"滑衫和"1",接收端而言,"0"是0.56ms的高+0.56ms的低。"1"是1.68ms的高+0.56ms的低。所以可以根据高电平消薯的宽度区别"0"和"1"。当高电平出现时开始延时,0.56ms以后,若读到的电平为低,说明该位为"0",反之则为"1",为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为"0",读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。为了共用引导部分延时程序,一般用0.9ms延时。

由此可见,有效数据是4字节(32位)。前两个字节可定义用户编码,后两个字节分别是真正的数据及其反码。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12424261.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存