用单片机解码红外遥控器_第1页
用单片机解码红外遥控器_第2页
用单片机解码红外遥控器_第3页
用单片机解码红外遥控器_第4页
全文预览已结束

下载本文档

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

文档简介

用单片机解码红外遥控器用单片机解码红外遥控器遥控器使用方便,功能多目前已广泛应用在电视机、VCD、DVD、空调等各种家用电器中,且价格便宜,市场上非常容易买到。如果能将遥控器上许多的按键解码出来用作单片机系统的输入则解决了常规矩阵键盘线路板过大、布线复杂、占用 IO 口过多的弊病。而且通过使用遥控器,操作时可实现人与设备的分离,从而更加方便使用。下面以 TC9012编码芯片的遥控器为例。谈谈如何用常用的 51系统单片机进行遥控的解码。一、编码格式1、0 和 1的编码遥控器发射的信号由一串 O和 1的二进制代码组成不同的芯片对 0和 1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。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遥控器编码为例,解码方法如下:(1)设外部中断 0(或者 1)为下降沿中断,定时器 0(或者 1)为 16位计时器初始值均为 O。(2)第一次进入遥控中断后,开始计时。(3)从第二次进入遥控中断起,先停止计时。并将计时值保存后,再重新计时。如果计时值等于前导码的时间,设立前导码标志。准备接收下面的一帧遥控数据,如果计时值不等于前导码的时间,但前面已接收到前导码,则判断是遥控数据的 O还是 1。(4)继续接收下面的地址码、数据码、数据反码。(5)当接收到 32位数据时,说明一帧数据接收完毕。此时可停止定时器的计时,并判断本次接收是否有效如果两次地址码相同且等于本系统的地址,数据码与数据反码之和等于 0FFH,则接收的本帧数据码有效。否则丢弃本次接收到的数据。(6)接收完毕,初始化本次接收的数据,准备下一次遥控接收。示例程序如下: E1INT:PUSHACCPUSH PSWCLRTR1MOV RMTLEN,TH1 、MOVTH1,#00HMOV TL1,#00HSETBTR1MOV A,RMJLENJNZ LBLRMDATBITMOV RMADDR#00HMOV RMRADDR,#00HMOV RMDAT,#00HMOV RMRDAT,#00HMOV RMBIT_CNT,#00HCLR RMOKCLR RMGUIDEPOPPSWPOPACCRET1 I BI RM DAT BIT:MOV A,RM_TLENCJNE A,#23H,LBLRM_ADDR_DATSETB RMGUIDESJMP LBLE1 INT-RETLBLRM_ADDR_DAT;JNB RMGUIDE,LBLRMERRORCJNE A,#04H,LBL_RM_ONECLR CSJMP LBL_RMSHIFTLBLRMONE:CJNE A。#08H。LBLRMERRORSETB CLBL_RM_SHIFT:MOV A,RMRDATRRC AMOV RMRDATAMOV A,RMDATRRC AMOV RMDAT,AMOV A,RMRADDRRRC AMOV RM RADDRAMOV A。RM-ADDRRRC AMOV RMADDRALBLRMEND:INC RMBITCNTMOV A,RM_BIT_CNTCJNE A,#32,LBLE1 INT_RETCLRTR1MOV TH1,#00HMOVTL1,#00HMOV HOURRMADDRMOV MINUTE,RMDATMOV RM_ADDR,#00HMOV RMRADDR,#00HMOV RMDAT,#00HMOV RMRDAT,#00HMOV RM一 8IT_CNT,#00HCLR RMGUIDESEITB RMOKSJMP LBLE1 INTRET LBLRMERROR:CLRTR1MOV TH1,#0OHMOVTL1,#00H MOV RM_ADDR,#00HMOV RMRADDR,#00HMOV RMDAT,#00HMOV RMRDAT,#00HMOV RMB1TCNT,#00HCLR RMGUIDELBLE1 INTRET:POPPSWPOPACCRETI四、遥控代码与键盘码的转换在应用系统中,带遥控器的仪器设备一般都带按键。而且二者功能相同。将遥控键值转换成标准的按键值后。遥控按键散转表格可以与键盘散转表格复用。转换方法可用查表法。通过查表。使

温馨提示

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

评论

0/150

提交评论