找回密码
 注册
关于网站域名变更的通知
查看: 442|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-15 07:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

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

$ Y- `  ^" @6 e2 f; Z: w: z; ?    摘要:简单介绍红外遥控接收系统原理,给出用8051作遥控接收系统解码器的一种巧妙实现方法,以及完整的51汇编程序代码。包括解码系统配置及接口、软件设计要点及中断服务程序。
. W% L8 \7 h! b! |3 }9 _# S    关键词:8051 红外遥控 遥控码  V: [; q' A) Q4 j/ J
红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。
5 O5 d/ X2 [9 Q
# b+ d- |& C) |# q8 o
0 d! g7 e4 o$ h3 R! ~, |; ^工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。( C* m5 {. L4 C
1 红外遥控系统) v% p! I7 G2 i( i# [' Y
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。
3 Z2 m! A$ G% N* B2 遥控发射器及其编码
% N% a2 _* [% p! u. v7 Z遥控发射器专用芯片很多,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:! o% H9 P# k( Q2 u- k8 s
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。4 B* F# u$ o& q  m: I0 ~
上述“0”和“1”组成的32位二进制码经38kHz的载频进行调制,提高发射效率,达到降低电源功耗的目的。然后,再通过红外发射二极管进行二次调制,产生红外线向空间发射,如图3所示。UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为8位用户识别码及其反码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。
# U2 i/ @8 o- B5 L- ~; B' h) G遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。
- E8 o4 c, S' w' ]' l3 接收器及解码9 i& T3 b0 \  }7 E/ V
TSOP1738是VISHAY公司推出的一体化红外线接收器,集红外线接收和放大于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,其功能如图1所示的虚线部分。
' b9 O! k0 ]. v  ^  k$ L9 s: x: ]# f8 f# u% S2 ~: `5 K( P, e; O

; f9 U" f9 X" f9 {8 T
/ @& }& g  a3 Q7 j4 J" d它适合于各种红外线遥控和红外线数据传输。
  x7 G, r1 w) \3 _3 s2 @& [9 n" T& d解码就是识别二进制码“0”和“1”以及遥控信号起始位。由8051单片机对脉冲间隔计数,由计数值的大小区别脉冲间隔的时间,从而识别出二进制码“0”、“1”和遥控信号起始位。如前所述,红外遥控的32位二进制串行码是脉宽调制的,脉冲宽度固定(0.56ms),而脉冲的间隔不同。因此,只要设法测出脉冲隔时间,即可判断是二进制的“0”还是“1”。考虑到适当的容差,可把脉冲间隔为0.256~0.768ms的判为“0”,脉冲间隔为1.28~1.792ms的判为“1”。5 @- f* @4 c  r/ R+ y0 @, t
3.1 解码系统配置及接口
, R) w" d9 k! c0 u6 p7 g5 k解码单片机系统由8051、TSOP1739和74LS00等组成,接口电路如图5所示。TSOP1738的输出端通过74LS00的两个反相电路接至解码单片机8051的INT0和INT1,作为输入接口。8051解码单片机通过P0口作为输出接口,传送解码所得的指令控制码去控制电器设备。8051单片机的TCON中有一个控制位,该位由软件设置为“1”,设置INT0和INT1为下降沿触发中断,其相应的定时/计数器0就可以测量对应的INT引脚上正脉冲的宽度。利用这一特点,用定时器T0来测量INT1引脚上正脉冲的宽度,即前后两脉冲的间隔时间,据此可判断它对应于二进制的是“1”还是“0”。( _2 ]& N. D/ [" l' z9 y- `
由图5可知,TSOP1738送往8051解码单片机INT0和INT1两引脚上的波形相反,由INT0引脚上脉冲的下降沿所触发的中断服务程序完成启动计数器T0,以测量INT1引脚上正脉冲的宽度。由INT1引脚上脉冲的下降沿所触发的中断服务程序完成关计数器T0,并根据计数值来判断是对应于二进制的“0”还是“1”。9 {$ F9 z7 ^. G7 }0 w. U  i/ R
3.2 软件设计
: J# h* S, l8 J解码单片机8051的软件包括主程序、INT0中断服务程序和INT1中断服务程序等3部分。在8051单片机内部RAM区建立的工作单元和标志位。
- W! B& N! |; W  b6 f9 P: Y1 F$ ?( i) p, o, Y  B
5 b) q4 I, i% R5 B- }
' q$ _& G& G. {+ v4 {
    *BUF0~BUF3——接收缓冲移位寄存器单元(32bit),每次由INT1中断服务程序解出的存于CY的二进制位,通过累加器连同CY的右移操作,传送到BUF0——BUF3内。
; {* X+ U( Q4 m$ \8 s$ Q*LENG——码长计数器,用于计数器解出的二进制位数。
2 O" X, H0 ]1 w' j7 m* V*(29H).0——码间隔标志位,当收到码组间隔时该标志被置位。
- Q0 c9 x, f" {; @& ~6 ~3 r8 W*(29H).1——用户识别码标志位,当收到一组码的前8位为01H时该标志被置位。6 @; ?# a9 W* @/ W
以下是主程序的设计要点:4 j. ?4 G  d- Z  }) m, t$ J
*正确地解码必须从一组码的起始进行。1 l6 `% w0 [5 F6 G- P% H
, i( u2 x) k2 ?( L& w7 F6 E% X  w
" u7 q# c  U; Q# T5 j

3 T7 u! K$ F2 J- a5 o' M为此程序在初始化后,首先检测码间隔标志(29H).0,如果为1,表明是一组码的开始,程序就将码长计数器清零,以例从头开始计数。% j3 u7 _4 ]3 w6 C0 f
*为防止其它遥控码的干扰,当接收到前8位码后,要检查它的值是否为01H。如果是,则置位用户码标志(29H).1。只有用户码标志为1时,收到的后8位码才作为有效操作码处理。
5 z9 I5 i/ K; o! x+ x2 ]*为了得到正确的解码结果,要检查32位遥控编码中用户码和操作码各自的反相一致性。正极性的用户码留在BUF3中,负极性的用户码留在BUF2中;正极性的操作码留在BUF1中,负极性的操作码留在BUF0中。然后比较BUF3和BUF2中的内容,比较BUF1和BUF0中的内容,如果都满足反相一致才进入下一步,否则,作无效码处理。, z: N3 k- x0 W. a8 F+ c
以上所述方法非常简单地实现了红外遥控信号的接收解码,极大地节约了硬件实现的资源开销。只要修改汇编代码的部分参数,就可以适用于多种红外遥控器信号的接收和解码。
0 m) E5 j! i( C! ?$ q0 d+ m
1 ^( a; }; R2 m/ G
. o# l$ n# I' n- a3 ~

该用户从未签到

2#
发表于 2019-7-15 19:03 | 只看该作者
看看单片机用作通用红外遥控接收器的设计
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-19 13:18 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表