单片机红外线遥控器输入系统的研究.docVIP

单片机红外线遥控器输入系统的研究.doc

  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文档。上传文档
查看更多
单片机红外线遥控器输入系统的研究

单片机红外线遥控器输入系统的研究   中图分类号:TP7 文献标识码:A 文章编号:1671-7597(2009)0110026-01      随着单片机嵌入式应用系统和红外线遥控技术的发展,越来越多的红外遥控器械在单片机系统中来代替键盘进行输入工作。在工控设备中,传统的方法是用专用的红外发射和接收电路来实现的。这种设计方法要考虑到震荡载频的产生,接收的自动增益控制(AGC)等,使得在设计、制作和调试上非常繁琐,容易产生相互干扰。如果采用现在广泛使用的普通遥控器加上一体化接收头作为单片机的输入系统,就可以有效地克服上述缺点。      一、红外遥控系统原理      红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射雕红外光转换为相应的电信号,再送后置放大器。   发射机一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载体进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定指令编码信号。   接收电路一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。      二、编码格式      LC7461M型遥控发射芯片采用PWM方法来发送信号。当按下某个键后,就会发出一组长108ms的编码。它由引导码、13位用户识别码、13位用户识别反码、8位操作码和8位操作反码组成,共计42位信息。其中引导码由9ms的高电平和4.5ms的低电平组成。因为在各种光电干扰中干扰信号都是以尖脉冲形式出现的,持续时间很短(一般都在7ms以内),当接收到13.5ms的引导码后,接着接收到的信号就可以认为是发射的数据信号,这样就有效地防止了外界的干扰。用户识别码可以准确地识别出不同的电器设备,防止不同机种间的相互干扰。同时,利用发送的反码信息可以防止接收错误。对于位信息,7461芯片发射的“0”代码总长1.125ms,以0.56ms的高电平开始,然后为   0.565ms的低电平;“1”代码总长2.25ms,也是以0.56ms的高电平开始,不同的是后边低电平的长度为1.69ms。      三、接收      接收部分采用的是一体化接收头,它是集接收、放大于一体,不需外接任何元件就能完成从红外线接收到产生与单片机兼容信号的所有工作。当它收到红外信号后,会反相输出。最终单片机识别的编码与位码应该与红外线遥控器发射的相反。      四、和单片机的接口      我们这里以国内电气控制中常用的51架构单片机为例,阐述硬件连接和软件解码过程。   (一)硬件连接   采用一体化接收头作为接收器件后,与单片机的连接非常简单。单片机控制系统仅需开启一个外部中断,将之与一体化接收头的OUT端相连接即可,   (二)软件解码   1.延时查询式解码。解码的关键是如何识别“0”和“1”。从接收到位的特征我们可以发现,“0”和“1”均以0.56ms的低电平开始,不同的是高电平的宽度,“0”为0.565ms,“1”为1.69ms。所以,可以根据高电平的宽度来区分“0”和“1”。如果0.56ms低电平过后开始延时,再过0.565ms以后读到了低电平,说明该位是“0”,否则为“1”。为了可靠接收,防止误读,我们一般可取中间值最为可靠。   2.全中断式解码。上述延时方法简单易懂,但其进入解码程序后会大量使用延时操作,极大地降低了单片机的利用率,而且容易产生误判、无法退出解码程序的现象。经研究改进,现设计出一种全中断接收解码方式。   通过上述脉冲波形分析,我们发现“0”和“1”的区别就在于这一位的波长为1.125ms还是为2.25ms。如果为1.125ms,我们就认为接收到了“0”;如果为2.25ms,我们就认为接收到了“1”。从整个接收到的信息编码看,数据位是以低电平开始的,又以下一个低电平到来而结束。这时,我们可以对位的采集采用外部中断方式,使在负边沿产生一个外部中断,在中断子程序中启动一从0开始计数的定时器。在下一个中断里,首先把刚才的定时值保存下来。这时这个值就是刚才接收位的时长。我们可以把这个值与1.125ms和2.25ms比较,从而判断是“0”还是“1”。考虑到执行效率问题,我们可以只用   来对其标定。事实上,我们可以只比较定时器THx中的数据即可。其解码流程如图1所示。      这种外部中断与定时器结合的方式解码准确,CPU

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档