红外遥控介绍编码,程序.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 红外线编码 红外线编码是数据传输和家用电器遥控常用的一种通讯方法,其实质是一种脉宽调制 的串行通讯。家电遥控中常用的红外线编码电路有μPD6121G型 HT622型和 7461 型等。本 文就以这些电路的编码格式来讨论怎样使用 AVR 单片机的捕获中断功能来实现其解码。 红外线通讯的发送部分主要是把待发送的数据转换成一定格式的脉冲,然后驱动红外 发光管向外发送数据。接收部分则是完成红外线的接收、放大、解调,还原成同步发射格式 相同(但高、低电位刚好相反的脉冲信号。这些工作通常由一体化的接收头来完成,主要输 出TTL兼容电平。最后通过解码把脉冲信号转换成数据,从而实现数据的传输。图 1 是一个 红外线遥控制系统的原理框图。 图 2 示出该红外遥控系统的编码格式。图中,μPD6121G遥控器的二进制“0”由 0.56 ms的间隔加0.565ms的脉冲表示;二进制“1”由0.56ms的间隔加 1.685ms的脉冲表示。每 次发送的 32二进制码可分成两部分,其中前 16 位是遥控器辨识码,主要用于区别不同遥控 器,后 16 位是操作码。这两个部分的后 8 位都是前 8 位的反码,用作数据校验。每帧数据 以 9ms的间隔加 4.5ms的脉冲作为数据头。 2 AVR 单片机 AVR 系列单片机是 Atmel公司于 1997年推出的一款全新配置的、采用精简指令(RISC -Redued Instruction Set CPU)结构的新型 8 位单片机。由于 AVR 单片机采用单指令操作, 所以,在相同时钟的情况下,AVR 的指令周期只有 8051 型机的 1/2,而且 AVR 采用两极指令 流水线,可以在执行当前指令的同时获取下一条指令,所以具备 1MI/s/MHz 的调整处理能力。 不同于 8051型机的是 AVR 采用32 个通用工作寄存器,克有了单一累加器数据处理带来的瓶 劲现象,从而使得指令代码更加灵活,编码更容易。此外,AVR 中还集成了 A/D、PWM、EEP ROM、FLASH、SPI、WTD、IIC、T/C等功能,使外围电路变得很简单。 3 基于 AVR 单片机的硬件实现 本文以AVR系列中高性价比的Atmage8为例,利用 16 位时钟单元T/C1 的捕获中断来实 现红外线解码。T/C1 内部的输入捕获单元可以应用于精确捕获外部发生的事情,亦即事件 发生的时间印记(time-stamp)。当一个输入捕获事件发生在外部引脚ICPI上的逻辑电平也随 之发生变化时,T/C1 的计数值将被拷贝到捕获寄存器ICR1并设置捕获中断标志,如果捕获 中断允许并且总中断IE打开,系统则进入中断服务程序。这种捕获中断通常用于频率和周期 的精确测量,如电机转速和转向的测量。本文介绍怎样利用这一功能测量红外线脉冲的脉宽 以实现红外传输的解码。捕获中断的触发可以是ICP1 引脚上电平变化的上升沿,也可以是 下降沿。根据前述脉冲调制规则,现以下降沿为触发事件来进行讨论。 图 3 是该系统的工作时序图,图中,一个下降沿到下一个下降沿之间刚好是一个脉冲 加一个间隙的时间,这样,根据编码规则,这个时间长度所对应的信号关系如下: 数据头的时间:Th=9+4.5=13.5ms 数据“0”的时间:T0=0.565+0.56=1.125ms 数据“1”的时间:T1=1.685+0.56=2.245ms 4 软件编程 基于 AVR 单片机的捕获中断来实现红外编码的软件程序流程如图 4 所示。下面是其 C 语言程序代码: C 程序代码: *pragma interrupt_handler IceInt:6 //中断程序说明 void ICEInit(void) //T/C1 初始化 { TIMSK=0X20; //使能捕获中断 TCCR1A=0X00; //T/C1 时钟与系统相同,本文使用系统 AVR内部自带 1MHz 振荡源

文档评论(0)

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

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档