您现在正在浏览:首页 > 职教文章 > 职教论文 > 单片机用作通用红外遥控接收器的设计

单片机用作通用红外遥控接收器的设计

日期: 2011/5/9 浏览: 149 来源: 学海网收集整理 作者: 佚名

70 2002.8

应用天地 APPLICATION NOTES

单片机用作通用红外遥控接收器的设计※

■ 清华 -华录信息技术研究所 朱纯益 路建华

摘 要

关键词

简单介绍红外遥控接收系统原理,给出用8051作遥控接收系统解码器的一种巧妙实现方法,

以及完整的 51 汇编程序代码。包括解码系统配置及接口、软件设计要点及中断服务程序。

8051 红外遥控 遥控码

红外线遥控是目前使用最广泛的一种通信和遥

控手段。由于红外线遥控装置具有体积小、功耗

低、功能强、成本低等特点,因而,继彩电、录像

机之后,在录音机、音响设备、空调机以及玩具等

其它小型电器装置上也纷纷采用红外线遥控。工业

设备中,在高压、辐射、有毒气体、粉尘等环境下,

采用红外线遥控不仅安全可靠而且能有效地隔离电

气干扰。

1 红外遥控系统

通用红外遥控系统由发射和接收两大部分组

成,应用编 / 解码专用集成电路芯片来进行控制操

作,如图 1 所示。发射部分包括键盘矩阵、编码调

制、LED 红外发送器;接收部分包括光、电转换放

大器、解调、解码电路。

2 遥控发射器及其编码

遥控发射器专用芯片很多,现以日本 NEC 的

uPD6121G组成发射电路为例说明编码原理。当发

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

遥控编码也不同。这种遥控码具有以下特征:

采用脉宽调制的串行码,以脉宽为0.565 ms、间

隔 0.56 ms 、 周期为 1.125 ms 的组合表示二进制的

“0”; 以脉宽为 0.565 ms、 间隔 1.685 ms 、 周期为

2.25 ms 的组合表示二进制的“1”, 其波形如图 2 所

示。

上述“ 0”和“1”组成的 32位二进制码经38 kHz

的载频进行调制,提高发射效率,达到降低电源功

耗的目的。然后,再通过红外发射二极管进行二次

调制,产生红外线向空间发射,如图 3 所示。

uPD6121G产生的遥控编码是连续的 32 位二进制码

组,其中前16 位为 8位用户识别码及其反码,能区

别不同的电器设备,防止不同机种遥控码互相干

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

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

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

遥控器在按键按下后,周期性地发出同一种32

位二进制码,周期约为 108 ms。一组码本身的持续

时间随它所包含的二进制“0”和“1”的个数不同

键盘 编码调制 LED

光/电放大

遥控发射器

解调 解码

遥控接收器

图1 红外遥控系统框图

0.56ms

1.125ms

bit“0” bit“1”

0.56ms

2.25ms

图2  遥控码的“0 ”和“1 ”

C0 C1 C2 C3 C4 C5 C6 C7 C0 C1 C2 C3 C4 C5 C6 C7 D0D1D2D3D4D5D6 D7D0D1D2D3D4D5D6D74.5ms9ms

引导码 用户识别码 用户识别码(反码) 操作码 操作码(反码)

图3 遥控信号编码波形图

tf =108mstf =108ms

图4 遥控信号的周期性波形

71Microcontrollers & Embedded Systems2002.8

应用天地 APPLICATION NOTES

而不同,大约在45~63 ms 之间,图 4为发射波形图。

3 接收器及解码

TSOP1738 是 VISHAY公司推出的一体化红外线

接收器,集红外线接收和放大于一体,不需要任何

外接元件,就能完成从红外线接收到输出与TTL电

平信号兼容的所有工作,而体积和普通的塑封三极

管大小一样,其功能如图 1 所示的虚线部分。它适

合于各种红外线遥控和红外线数据传输。

解码就是识别二进制码“0”和“1”以及遥控

信号起始位。由 8051单片机对脉冲间隔计数,由计

数值的大小区别脉冲间隔的时间,从而识别出二进

制码“0”、“1”和遥控信号起始位。 如前所述,红

外遥控的32位二进制串行码是脉宽调制的,脉冲宽

度固定(0.56 ms), 而脉冲的间隔不同。因此,只

要设法测出脉冲间隔时间,即可判断是二进制的

“0”还是“1”。 考虑到适当的容差,可把脉冲间隔

为0.256~0.768 ms 的判为“0”, 脉冲间隔为1.28~1.792

m s 的判为“1”。

3.1 解码系统配置及接口

解码单片机系统由 8051、TSOP1738和 74LS00等

组成,接口电路如图 5所示。TSOP1738的输出端通

过 74LS00 的两个反相电路接至解码单片机 8051 的

INT0 和 INT1,作为输入接口。 8051解码单片机通过

P0 口作为输出接口,传送解码所得的指令控制码

去控制电器设备。 8051 单片机的 TCON中有一个控

制位,该位由软件设置为“ 1”, 设置 INT0 和 INT1

为下降沿触发中断,其相应的定时 / 计数器 0 就可

以测量对应的 INT引脚上正脉冲的宽度。利用这一

特点,用定时器 T0 来测量 INT1 引脚上正脉冲的宽

度,即前后两脉冲的间隔时间,据此可判断它对应

于二进制的是“1” 还是“0”。

由图5可知,TSOP1738送往8051解码单片机INT0

和 INT1 两引脚上的波形相反,由 INT0 引脚上脉冲

的下降沿所触发的中断服务程序完成启动计数器

T0,以测量 INT1 引脚上正脉冲的宽度。由 INT1 引

脚上脉冲的下降沿所触发的中断服务程序完成关计

数器 T0, 并根据计数值来判断是对应于二进制的

“0” 还是“1”。

3.2 软件设计

解码单片机 8051的软件包括主程序、INT0中断

服务程序和 INT1 中断服务程序等3 部分。在 8051单

片机内部 RAM 区建立的工作单元和标志位:

◇ BUF0~BUF3 ——接收缓冲移位寄存单元(32

bit),每次由 INT1中断服务程序解出的存于CY的二

进制位,通过累加器连同 CY 的右移操作,传送到

BUF0~ BUF3 内。

◇ LENG——码长计数器,用于计数解出的二

进制位数。

◇ (29H).0——码间隔标志位,当收到码组间隔

时该标志被置位。

◇ (29H).1——用户识别码标志位,当收到一组

码的前 8 位为 01H 时该标志被置位。

以下是主程序的设计要点:

◇ 正确地解码必须从一组码的起始进行。为此

程序在初始化后,首先检测码间隔标志 (29H).0,如

果为 1,表明是一组码的开始,程序就将码长计数

器清零,以便从头开始计数。

◇ 为防止其它遥控码的干扰,当接收到前8位

码后,要检查它的值是否为 01H。如果是,则置位

用户码标志(29H).1。只有用户码标志为1时,收到

的后 8 位码才作为有效操作码处理。

◇ 为了得到正确的解码结果,要检查 32 位遥

控编码中用户码和操作码各自的反相一致性。正极

性的用户码留在 BUF3 中,负极性的用户码留在

BUF2 中;正极性的操作码留在 BUF1 中,负极性的

操作码留在 BUF0 中。然后比较 BUF3 和 BUF2 中的

内容,比较BUF1 和 BUF0中的内容,如果都满足反

相一致才进入下一步,否则,作无效码处理。

具体程序见本刊网站补充版。ht tp:/ /www.dpj.

com.cn

以上所述方法非常简单地实现了红外遥控信号

的接收解码,极大地节约了硬件实现的资源开销。

只要修改汇编代码的部分参数,就可以适用于多种

红外遥控器信号的接收和解码。

参考文献

1 VISHAY. Photo Modules for PCM Remote Con-

trol Systems

2 NEC. MOS Inte grated Circuit uPD6121G

3 李朝青. PC 机及单片机数据通信技术. 北

京:北京航空航天大学出版社,2000

4 李勋,刘源,李新民. 单片机实用教程. 北

京:北京航空航天大学出版社,2000

8051

INT0

INT1

TSOP1738



图5 接口电路原理图


单片机用作通用红外遥控接收器的设计.pdf

返回顶部