- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用AVRM8的输入捕获ICP对万能红外线遥控器进行解码
利用AVR(M8)的输入捕获(ICP)对万能红外线遥控器进行解码
本实例程序为自创,若转载请注明出处,谢谢!
???? 小弟不久前买了一个科朗公司出版的万能电视遥控器RM-2008,用作对设备的红外遥控,折腾了几天,今天终于弄清楚了如何对该遥控器进行解码,很开心,所以把成果与各位大虾分享,有什么错误的地方请指正。
万能遥控器在使用前一般要进行设置,针对RM-2008这款万能遥控,设置方法如下:
先按住“设置”键不放,再按下“电源”(“开/关”)键,工作指示灯亮起,然后释放两键,在此时进入代码输入状态,依次键入 0 0 0 指示灯熄灭,设置成功!
说明一下:0 0 0 编码是日立公司初期的红外编码方式,也就是网上到处都通用的红外编码方式(如下图),另外本程序只能对此编码进行解码
?? 数据头的时间:Th=9+4.5=13.5ms
??? 数据“0”的时间:T0=0.565+0.56=1.125ms
??? 数据“1”的时间:T1=1.685+0.56=2.245ms
本程序通过使用输入捕获功能(ICP)捕捉红外信号的高电平脉宽,达到解码的目的;如果捕获到的脉宽是4.5ms 则表示此信号为同步码,如果捕获到的脉宽是1.685ms 的话则表示 “1” 否则表示“0”
测试电路如下:
使用DNW 串口调试软件时的效果
/////////////////////////////////只有一个文件main.c///////////////////////////////////
#include avr/io.h#include avr/signal.h#include avr/interrupt.h#include avr/wdt.h#include util/delay.h#include stdio.h
/*----------------------遥控操作值--------------------*/
//??????? key??????? code (hex)#define Key_1?????? 0x01#define Key_2?????? 0x02#define Key_3?????? 0x03#define Key_4?????? 0x04#define Key_5?????? 0x05#define Key_6?????? 0x06#define Key_7?????? 0x07#define Key_8?????? 0x08#define Key_9?????? 0x09#define Key_0?????? 0x00#define Menu?? ?? 0x5c?????? // 菜单#define Menu_up?? 0x56?????? // 菜单上#define Menu_down?? 0x57?????? // 菜单下#define Menu_left?? 0x5f?????? // 菜单左#define Menu_right 0x5b?????? // 菜单右#define Menu_ok???? 0x16?????? // 菜单确认#define Channel_up 0x1b?????? // 频道+#define Channel_down 0x1f?????? // 频道-#define Sound_up????? 0x1e?????? // 音量+#define Sound_down?? 0x1a?????? // 音量-#define Open_Close 0x12?????? // 开/关#define Mute??????? 0x10?????? // 静音#define Pic_in_pic 0x51????????? //画中画#define Standard??? 0x58?????? // 制式#define Return????? 0x52?????? // 返回#define Times?????? 0x0b?????? // 倍数#define Screen????? 0x16?????? // 屏幕#define Audio?????? 0x1d?????? // 伴音#define NICAM?????? 0x13?????? // 丽音#define TV_Vedio??? 0x0f???? // 电视/视频#define Sleep?????? 0x0e??? //睡眠
/*----------------------常用参数定义-------------------*/
#define P0 0#define P1 1#define P2 2#define P3 3#define P
文档评论(0)