红外遥控系统解码原理2.doc_第1页
红外遥控系统解码原理2.doc_第2页
红外遥控系统解码原理2.doc_第3页
红外遥控系统解码原理2.doc_第4页
红外遥控系统解码原理2.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机解码红外遥控的原理来源:互联网作者:匿名发表日期:2009-10-12 18:53:27阅读次数:601查看权限:普通文章用单片机解码红外遥控器遥控器使用方便,功能多目前已广泛应用在电视机、vcd、dvd、空调等各种家用电器中,且价格便宜,市场上非常容易买到。如果能将遥控器上许多的按键解码出来用作单片机系统的输入则解决了常规矩阵键盘线路板过大、布线复杂、占用io口过多的弊病。而且通过使用遥控器,操作时可实现人与设备的分离,从而更加方便使用。下面以tc9012编码芯片的遥控器为例。谈谈如何用常用的51系统单片机进行遥控的解码。一、编码格式1、0和1的编码遥控器发射的信号由一串o和1的二进制代码组成不同的芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。tc9012-p.htm target=_blank title=tc9012货源和pdf资料tc9012的o和1采用pwm方法编码,即脉冲宽度调制,其o码和1码如图1所示(以遥控接收输出的波形为例)。o码由o56ms低电平和056ms高电平组合而成脉冲宽度为112ms1码由056ms低电平和169ms高电平组合而成脉冲宽度为225ms。在编写解码程序时通过判断脉冲的宽度,即可得到0或1。2、按键的编码当我们按下遥控器的按键时,遥控器将发出如图2的一串二进制代码,我们称它为一帧数据。根据各部分的功能。可将它们分为5部分,分别为引导码、地址码、地址码、数据码、数据反码。遥控器发射代码时均是低位在前。高位在后。由图2分析可以得到引导码高电平为45ms,低电平为45ms。当接收到此码时表示一帧数据的开始。单片机可以准备接收下面的数据。地址码由8位二进制组成,共256种图中地址码重发了一次。主要是加强遥控器的可靠性如果两次地址码不相同则说明本帧数据有错应丢弃。不同的设备可以拥有不同的地址码因此。同种编码的遥控器只要设置地址码不同,也不会相互干扰。图中的地址码为十六进制的0eh(注意低位在前)。在同一个遥控器中所有按键发出的地址码都是相同的。数据码为8位,可编码256种状态,代表实际所按下的键。数据反码是数据码的各位求反,通过比较数据码与数据反码可判断接收到的数据是否正确。如果数据码与数据反码之间的关系不满足相反的关系则本次遥控接收有误数据应丢弃。在同一个遥控器上所有按键的数据码均不相同。在图2中,数据码为十六进制的0ch,数据反码为十六进制的0f3h(注意低位在前)两者之和应为0ffh。二、单片机遥控接收电路红外遥控接收可采用较早的红外接收二极管加专用的红外处理电路的方法。如cxa20106,此种方法电路复杂,现在一般不采用。较好的接收方法是用一体化红外接收头,它将红外接收二极管、放大、解调、整形等电路做在一起,只有三个引脚分别是+5v电源、地、信号输出。常用的一体化接收头的外形及引脚见图3和图4。红外接收头的信号输出接单片机的into或intl脚典型电路如图5所示图中增加了一只pnp型三极管对输出信号进行放大。三、遥控信号的解码算法及程序编制平时。遥控器无键按下。红外发射二极管不发出信号,遥控接收头输出信号1。有键按下时o和1编码的高电平经遥控头倒相后会输出信号o由于与单片机的中断脚相连,将会引起单片机中断(单片机预先设定为下降沿产生中断)。单片机在中断时使用定时器0或定时器1开始计时到下一个脉冲到来时,即再次产生中断时,先将计时值取出。清零计时值后再开始计时通过判断每次中断与上一次中断之间的时间间隔。便可知接收到的是引导码还是 o和1。如果计时值为9ms。接收到的是引导码,如果计时值等于112ms,接收到的是编码o。如果计时值等于2 25ms接收到的是编码1。在判断时间时,应考虑一定的误差值。因为不同的遥控器由于晶振参数等原因,发射及接收到的时间也会有很小的误差。以接收tc9012-p.htm target=_blank title=tc9012货源和pdf资料tc9012遥控器编码为例,解码方法如下:(1)设外部中断0(或者1)为下降沿中断,定时器0(或者1)为16位计时器初始值均为o。(2)第一次进入遥控中断后,开始计时。(3)从第二次进入遥控中断起,先停止计时。并将计时值保存后,再重新计时。如果计时值等于前导码的时间,设立前导码标志。准备接收下面的一帧遥控数据,如果计时值不等于前导码的时间,但前面已接收到前导码,则判断是遥控数据的o还是1。(4)继续接收下面的地址码、数据码、数据反码。(5)当接收到32位数据时,说明一帧数据接收完毕。此时可停止定时器的计时,并判断本次接收是否有效如果两次地址码相同且等于本系统的地址,数据码与数据反码之和等于0ffh,则接收的本帧数据码有效。否则丢弃本次接收到的数据。(6)接收完毕,初始化本次接收的数据,准备下一次遥控接收。示例程序如下: e1int:pushaccpush pswclrtr1mov rm?tlen,th1 、movth1,#00hmov tl1,#00hsetbtr1mov a,rmjlenjnz lbl?rm?dat?bitmov rm?addr#00hmov rm?raddr,#00hmov rm?dat,#00hmov rm?rdat,#00hmov rm?bit_cnt,#00hclr rm?okclr rm?guidepoppswpopaccret1 i bi rm dat bit:mov a,rm_tlencjne a,#23h,lbl?rm_addr_datsetb rm?guidesjmp lble1 int-retlblrm_addr_dat;jnb rm?guide,lbl?rm?errorcjne a,#04h,lbl_rm_oneclr csjmp lbl_rm?shiftlblrm?one:cjne a。#08h。lbl?rm?errorsetb clbl_rm_shift:mov a,rm?rdatrrc amov rm?rdatamov a,rm?datrrc amov rm?dat,amov a,rm?raddrrrc amov rm raddramov a。rm?-addrrrc amov rm?addralbl?rm?end:inc rm?bit?cntmov a,rm_bit_cntcjne a,#32,lble1 int_retclrtr1mov th1,#00hmovtl1,#00hmov hourrm?addrmov minute,rm?datmov rm?_addr,#00hmov rm?raddr,#00hmov rm?dat,#00hmov rm?rdat,#00hmov rm一8it_cnt,#00hclr rm?guideseitb rm?oksjmp lbl?e1 int?ret lbl?rm?error:clrtr1mov th1,#0ohmovtl1,#00h mov rm?_addr,#00hmov rm?raddr,#00hmov rm?dat,#00hmov rm?rdat,#00hmov rm?b1t?cnt,#00hclr rm?guidelbl?e1 int?ret:poppswpopaccreti四、遥控代码与键盘码的转换在应用系统中,带遥控器的仪器设备一般都带按键。而且二者功能相同。将遥控键值转换成标准的按键值后。遥控按键散转表格可以与键盘散转表格复

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论