紅外遥控器软件解码及其应用.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
紅外遥控器软件解码及其应用

摘要:通过对红外遥控器各按键发送冲波形分析可以识别码型,从而为软件解码提供依据。本文以实例介绍红外遥控器与单片机硬件接口,并从原理出发给出软件解码方法。这是一个可以直接引用成功例子,同时也为各类红外遥控器在单片机控制产品中开发应用提供了一个非常实用参考。 关键词:遥控器 软件解码 单片机 在单片机控制产品开发应用中,为了向控制系统软件控制命令,键盘往往是不可缺少。传统方法是利用并行输入/输出接口芯片扩展一个键盘接口,或者直接利用单片机并行端口进行扩展。在某些应用环境下,这种方式2个弊端:①键盘和控制系统连在一起,不灵活,环境适应性差;②浪费单片机端口,且硬件成本较高。 使用红外遥控器作为控制系统输入设备,具有成本低、灵活方便特点。本文目就在于介绍软件解码研究一般方法和红外遥控器进行二次开发应用技术。该方法已在多个应用系统设计中成功地实现,效果良好。 红外遥控器是一种非常容易买到,且价格便宜产品,种类很多,但它们都是配合某种特定电子产品(如各种电视机、VCD、空调器等),由专用CPU解码,作为一般单片机控制系统能直接使用。使用现成遥控器作为控制系统输入,需要解决如下几个问题:如何接收红外遥控信号;如何识别红外遥控信号;解码软件设计。其它问题都是非本质,例如遥控器面板功能键标注问题,可自行设计、重印即可。 1 红外遥控信号接收 接收电路可以使用集成红外接收器成品。接收器包括红外接收管和信号处理IC。接收器对外只有3个引脚:Vcc、GND和1个脉冲信号输出PO。与单片机接口非常方便,如图1所示。 ①Vcc接系统电源正极( 5V); ②GND接系统地线(0V);PC提示请看下图: ③脉冲信号输出接CPU中断输入引脚(例如803113脚INT1)。采取这种连接方法,软件解既可工作于查询方式,也可工作于中断方式。 2 脉冲流分析 要了解一个未知遥控器,首先要分析其脉冲流,从而了解其脉冲波形特征(以何种方式携带“0”、“1”信息),进而了解其编码规律。脉冲流分析应从分析脉冲高、低电平宽度入手。笔者用软件方法实现了对脉冲流分析。以图1所示接口为例,如果没有红外遥控信号到来,接收器输出端口PO保持高电平;当接收到红外遥控信号时,接收器件信号转换成脉冲序列加到CPU中断输入引脚。用软件测试引脚逻辑电平,同时启动TC计时器,测量该引脚分别为逻辑“0”和逻辑“1”情况下时间值,存储起来,然后打印、分析。下面用8051汇编语言给出对脉冲流进行采集、存储程序段: MOV R0,#00H MOV R1,#28H MOV TMOD,#01H TK:JB P3.3,TK ;等待低电平到来 ;测低电平宽度 TK1:MOV TH0,#00H MOV TL0,#00H SETB TR0 TK0:JB TF0,TKE ;超时无效返回 JNB P3.3,TK2 CLR TR0 MOV A,TH0 MOVX @R0,A INC R0 MOV A,TL0 MOVX @R0,A INC R0 ;测高电平宽度 MOV TH0,#00H MOV TL0,#00H SETB TR0 TK3:JB TF0,TKE ;超时无效返回 JB P3.3,TK3 CLR TR0 MOV A,TH0 MOVX @R0,A INC R0 MOV A,TL0 MOVX @R0,A INC R0 DJNZ R1,TK1 ;循环 TKE:RET 这段程序首先将TC0设置成16位定时器方式,初始化RAM地址指针R0和循环计数指针R1,每当引脚逻辑电平发生跳变时,停止计时,将计时值保存到连续RAM中。这段程序可以连续测量40个脉冲时间值(包括40个低电平脉宽)。笔者以TC9012芯片遥控器为对象,采集了所有按键编程脉冲波形,并且对同一按键进行了重复实验。限于篇幅,采样数据不能给出,仅给出脉冲流规律(仿真机CPU晶振为6MHz): ①引导脉冲是一个时间值为0937H~0957H低电平和时间值为084FH~086FH高电平;②数据脉冲低电平时间值约为0.127H~0177H; ③高电平时间值有2种情况:00BBH~00FFH(窄)、02EFH~0333H(宽)。 由大量数据总结分析,按键编码有如下规律: ①除引导脉冲外脉冲是数据编码脉冲,数据“位”信息由高电平脉宽决定:窄脉宽表示“0”、宽脉宽表示“1”; ②每个按键脉冲流译码后,包含4个字节信息: *所有按键前2个字节编码都一样,都是2个字节“0EH”; *第3字节是键码; *第4字节是键码反码。 经过对相同按键脉冲进行多次采样发现,相同按键脉冲序列对应位置脉宽时间值是在一个小范围内波动(不是一个确定值),因此,对模式识别不能采取精确比较法。对此,本人采取

文档评论(0)

df9v4fzI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档