红外遥控器解码程序Word文件下载.docx

上传人:b****8 文档编号:22062820 上传时间:2023-02-02 格式:DOCX 页数:72 大小:297.17KB
下载 相关 举报
红外遥控器解码程序Word文件下载.docx_第1页
第1页 / 共72页
红外遥控器解码程序Word文件下载.docx_第2页
第2页 / 共72页
红外遥控器解码程序Word文件下载.docx_第3页
第3页 / 共72页
红外遥控器解码程序Word文件下载.docx_第4页
第4页 / 共72页
红外遥控器解码程序Word文件下载.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

红外遥控器解码程序Word文件下载.docx

《红外遥控器解码程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《红外遥控器解码程序Word文件下载.docx(72页珍藏版)》请在冰豆网上搜索。

红外遥控器解码程序Word文件下载.docx

接收频率:

38kHz

峰值波长:

980nm

静态输出:

高电平

输出低电平:

≤0.4V

输出高电平:

接近工作电压

红外遥控系统

通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。

发射部分包括键盘矩阵、编码调制、LED红外发送器;

接收部分包括光、电转换放大器、解调、解码电路。

<

IMGsrc="

http:

//www.xie-onload="

if(this.width>

screen.width-333){this.width=screen.width-333;

this.alt='

ClickHeretoOpenNewWindow'

;

}"

border=0onmouseover="

if(this.alt)this.style.cursor='

hand'

"

onclick="

if(this.alt)window.open('

//www.xie-

遥控发射器及其编码

遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。

当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。

这种遥控码具有以下特征:

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;

以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。

上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。

然后再通过红外发射二极管产生红外线向空间发射,如图3所示。

UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。

该芯片的用户识别码固定为十六进制01H;

后16位为8位操作码(功能码)及其反码。

UPD6121G最多额128种不同组合的编码。

遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。

一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。

当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。

如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成

很多电器都采用红外遥控,那么红外遥控的工作原理是什么呢?

首先我们来看看什么是红外线。

人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。

其中红光的波长范围为0.62~0.76μm;

紫光的波长范围为0.38~0.46μm。

比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。

红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。

常用的红外遥控系统一般分发射和接收两个部分。

发射部分的主要元件为红外发光二极管。

它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。

目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5发光二极管相同,只是颜色不同。

红外发光二极管一般有黑色、深蓝、透明三种颜色。

判断红外发光二极管好坏的办法与判断普通二极管一样:

用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。

红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉距法来粗略判定。

接收部分的红外接收管是一种光敏二极管。

在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。

红外接收二极管一般有圆形和方形两种。

由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。

前些年常用μPC1373H、CX20106A等红外接收专用放大电路。

最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。

成品红外接收头的封装大致有两种:

一种采用铁皮屏蔽;

一种是塑料封装。

均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VO或OUT)。

红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。

成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。

但在使用时注意成品红外接收头的载波频率。

红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz陶振来决定的。

在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷

12≈37.9kHz≈38kHz。

也有一些遥控系统采用36kHz、40kHz、56kHz等,一般由发射端晶振的振荡频率来决定。

红外遥控的特点是不影响周边环境、不干扰其它电器设备。

由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;

电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;

编解码容易,可进行多路遥控。

由于各生产厂家生产了大量红外遥控专用集成电路,需要时按图索骥即可。

因此,现在红外遥控在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。

多路控制的红外遥控系统多路控制的红外发射部分一般有许多按键,代表不同的控制功能。

当发射端按下某一按键时,相应地在接收端有不同的输出状态。

接收端的输出状态大致可分为脉冲、电平、自锁、互锁、数据五种形式。

“脉冲”输出是当按发射端按键时,接收端对应输出端输出一个“有效脉冲”,宽度一般在100ms左右。

“电平”输出是指发射端按下键时,接收端对应输出端输出“有效电平”,发射端松开键时,接收端“有效电平”消失。

此处的“有效脉冲”和“有效电平”,可能是高、也可能是低,取决于相应输出脚的静态状况,如静态时为低,则“高”为有效;

如静态时为高,则“低”为有效。

大多数情况下“高”为有效。

“自锁”输出是指发射端每按一次某一个键,接收端对应输出端改变一次状态,即原来为高电平变为低电平,原来为低电平变为高电平。

此种输出适合用作电源开关、静音控制等。

有时亦称这种输出形式为“反相”。

“互锁”输出是指多个输出互相清除,在同一时间内只有一个输出有效。

电视机的选台就属此种情况,其它如调光、调速、音响的输入选择等。

“数据”输出是指把一些发射键编上号码,利用接收端的几个输出形成一个二进制数,来代表不同的按键输入。

一般情况下,接收端除了几位数据输出外,还应有一位“数据有效”输出端,以便后级适时地来取数据。

这种输出形式一般用于与单片机或微机接口。

除以上输出形式外,还有“锁存”和“暂存”两种形式。

所谓“锁存”输出是指对发射端每次发的信号,接收端对应输出予以“储存”,直至收到新的信号为止;

“暂存”输出与上述介绍的“电平”输出类似。

在家用电器和工业控制系统中红外线遥控器已得到广泛应用,了解他们的工作原理和性能、进一步自制红外遥控系统,也并非难事。

1.红外线的特点:

人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,如图1所示。

由图可见,红光的波长范围为0.62μm~0.76μm,比红光波长还长的光叫红外线。

红外线遥控器就是利用波长0.76μm~1.5μm之间的近红外线来传送控制信号的。

红外线的特点是不干扰其他电器设备工作,也不会影响周边环境。

2.红外线发射和接收

人们见到的红外遥控系统分为发射和接收两部分。

常用的红外发光二极管发出的红外线波长为940nm左右,外形与普通?

准5mm发光二极管相同,只是颜色不同。

一般有透明、黑色和深蓝等三种。

接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。

红外接收头的主要参数如下:

工作电压:

4.8~5.3V

工作电流:

1.7~2.7mA

接收频率:

峰值波长:

静态输出:

输出低电平:

≤0.4V

输出高电平:

3.红外线遥控发射电路

红外线遥控发射电路框图如图4所示。

框图4是目前所有红外遥控器发射电路的功能组成,其中的编码器即调制信号,按遥控器用途的编码方式可以很简单、也可以很复杂。

例如用于电视机、VCD、DVD和组合音响的遥控发射的编码器,因其控制功能多达50种以上,此时的编码器均采用专用的红外线编码协议进行严格的编程,然而对控制功能少的红外遥控器,其编码器是简单而灵活。

前者编码器是由生产厂家的专业人员按红外遥控协议进行编码,而后者适用于一般电子技术人员和电子爱好者的编码。

图4中的38kHz振荡器即载波信号比较简单,但专业用的和业余用的也有区别,专业用的振荡器采用了晶振,而后者一般是RC振荡器。

例如彩电红外遥控器上的发射端用了455kHz的晶振,是经过整数分频的,分频系数为12,即455kHz÷

12=37.9kHz。

当然也有一些工业用的遥控系统,采用36kHz、40kHz或56kHz等的载波信号。

因红外遥控器的控制距离约10米远,要达到这个指标,其发射的载波频率(38kHz)要求十分稳定,而非专业用的RC(38kHz)载波频率稳定性差,往往偏离38kHz甚至很远,这就大大缩短了遥控器的控制距离。

因晶振频率十分稳定,所以专业厂家的遥控器全部采用晶振的38kHz作遥控器的载波发送信号。

图4中编码器的编码信号对38kHz的载波信号进行调制,再经红外发射管D向空间发送信号供遥控接收端一体化接收头接收、解调输出、再作处理。

以下是程序,调试成功,LCD1602显示

//本解码程序适用于NEC的upd6121及其兼容芯片的解码,支持大多数遥控器实验板采用11.0592MHZ晶振

#include<

reg52.h>

//包含单片机寄存器的头文件

intrins.h>

//包含_nop_()函数定义的头文件

sbitIR=P3^2;

//将IR位定义为P3.2引脚

sbitRS=P2^0;

//寄存器选择位,将RS位定义为P2.0引脚

sbitRW=P2^1;

//读写选择位,将RW位定义为P2.1引脚

sbitE=P2^2;

//使能信号位,将E位定义为P2.2引脚

sbitBF=P0^7;

//忙碌标志位,,将BF位定义为P0.7引脚

sbitBEEP=P3^6;

//蜂鸣器控制端口P36

unsignedcharflag;

unsignedcharcodestring[]={"

1602IR-CODETEST"

};

unsignedchara[4];

//储存用户码、用户反码与键数据码、键数据反码

unsignedintLowTime,HighTime;

//储存高、低电平的宽度

/*****************************************************

函数功能:

延时1ms

***************************************************/

voiddelay1ms()

{

unsignedchari,j;

for(i=0;

i<

10;

i++)

for(j=0;

j<

33;

j++)

;

}

/*****************************************************

延时若干毫秒

入口参数:

n

voiddelay(unsignedcharn)

{

unsignedchari;

n;

delay1ms();

/*********************************************************/

voidbeep()//蜂鸣器响一声函数

for(i=0;

100;

BEEP=!

BEEP;

//BEEP取反

}

BEEP=1;

//关闭蜂鸣器

delay(250);

//延时

}

判断液晶模块的忙碌状态

返回值:

result。

result=1,忙碌;

result=0,不忙

unsignedcharBusyTest(void)

bitresult;

RS=0;

//根据规定,RS为低电平,RW为高电平时,可以读状态

RW=1;

E=1;

//E=1,才允许读写

_nop_();

//空操作

//空操作四个机器周期,给硬件反应时间

result=BF;

//将忙碌标志电平赋给result

E=0;

returnresult;

将模式设置指令或显示地址写入液晶模块

dictate

voidWriteInstruction(unsignedchardictate)

{

while(BusyTest()==1);

//如果忙就等待

//根据规定,RS和R/W同时为低电平时,可以写入指令

RW=0;

//E置低电平(根据表8-6,写指令时,E为高脉冲,

//就是让E从0到1发生正跳变,所以应先置"

0"

//空操作两个机器周期,给硬件反应时间

P0=dictate;

//将数据送入P0口,即写入指令或地址

//空操作四个机器周期,给硬件反应时间

//E置高电平

//当E由高电平跳变成低电平时,液晶模块开始执行命令

指定字符显示的实际地址

x

voidWriteAddress(unsignedcharx)

WriteInstruction(x|0x80);

//显示位置的确定方法规定为"

80H+地址码x"

将数据(字符的标准ASCII码)写入液晶模块

y(为字符常量)

voidWriteData(unsignedchary)

RS=1;

//RS为高电平,RW为低电平时,可以写入数据

P0=y;

//将数据送入P0口,即将数据写入液晶模块

对LCD的显示模式进行初始化设置

voidLcdInitiate(void)

delay(15);

//延时15ms,首次写指令时应给LCD一段较长的反应时间

WriteInstruction(0x38);

//显示模式设置:

16×

2显示,5×

7点阵,8位数据接口

delay(5);

//延时5ms

WriteInstruction(0x0C);

显示开,有光标,光标闪烁

WriteInstruction(0x06);

光标右移,字符不移

WriteInstruction(0x01);

//清屏幕指令,将以前的显示内容清除

/************************************************************

对4个字节的用户码和键数据码进行解码

说明:

解码正确,返回1,否则返回0

出口参数:

dat

*************************************************************/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1