搜档网
当前位置:搜档网 › 基于单片机系统的红外遥控器应用

基于单片机系统的红外遥控器应用

基于单片机系统的红外遥控器应用
基于单片机系统的红外遥控器应用

遥控器应用

摘要 ............................................ Abstract ..........................................

1 红外遥控器信号发射原理简介......................

2 红外遥控器信号接收芯片外围电路..................

3 遥控编码 ........................................

一、编码格式 ...................................

二、单片机遥控接收电路..........................

4软件解码应用程序.................................

5 结语 ...........................................

参考文献 ..........................................

摘要

介绍红外遥控器与单片机的硬件接口,并从原理出发给出软件解码的方法。通过软件程序对红外遥控器发射的脉冲波形检测得出信号码,从而为软件解码提供依据。红外遥控器由于其体积小、功耗低、功能强、成本低的特点,已经在家电产品设备中广泛应用。现代智能化仪器仪表系统、工业设备中的控制输入也较多地使用红外遥控器。本文给出红外遥控器信号发射原理、红外接收器的连接方式和单片机软件解码应用程序,并提供了一种对未知格式的遥控器信号码检测的应用程序。

关键词:遥控器;软件解码;单片机;红外线

Abstract

Introduction infrared remote control and microcontroller hardware interface and software decoding are presented and from the principle of the method. Through the infrared remote control software program launched in the letter obtained pulse detection number, and thus provide the basis for software decoding. Infrared remote control because of its small size, low power consumption, strong function, and low costs, has been widely used in home appliances equipment. Modern intelligent instrumentation

systems, industrial equipment, the control input is greater use of infrared remote control. In this paper, principle of infrared remote control signal transmission, infrared receiver connection and SCM software decoding applications, and provides a remote control for unknown format letter number detection applications.

Keywords: remote control; software decoding; SCM; infrared

1 红外遥控器信号发射原理简介

通用红外发射器由指令键、指令信号产生电路、调制电路、驱动电路及红外发射器组成。如图1所示。

遥控器所产生的脉冲编码的格式一般为:

??? 引导脉冲(头)─识别码(用户码)─键码─键码的反码

其引导脉冲为宽度是10 ms左右的一个高脉冲和一个低脉冲的组合,用来标识指令码的开始。识别码、键码、键码的反码均为数据编码脉冲,用二进制数表示。“0”和“1”均由ms量级的高低脉冲的组合代表。识别码(即用户码)是对每个遥控系统的标识。通过对识别码的检验,每个遥控器只能控制一个设备动作,有效的防止了多个设备之间的串扰。当指令键按下时,指令信号产生电路便产生脉冲编码。键码后面一般还要有键码的反码,用来检验键码接收的正确性,防止误动作,增强系统的可靠性。这些指令信号由调制电路调制成32~40 kHz的信号,经调制后输出,最后由驱动电路驱动红外发射器件(LED)发出红外遥控信号。

2 红外遥控器信号接收芯片外围电路

接收电路可以使用集成红外接收器成品,一般不需要任何外接元件就能完成从红外接收到输出TTL电平兼容信号的所有工作。注意选择接收器件时要保证接收器件的中心频率

,GND和1个脉冲信号输出与发射信号的中心频率相匹配。接收器对外只有3个引脚:V

CC

OUT。与单片机接口非常方便,如图2所示。

脉冲信号输出接CPU的普通输入引脚或中断输入引脚(IO/INT)。采取这种连接方法,软件解码既可工作于查询方式,也可工作于中断方式。在实际应用中,还可以进一步增加抑制干扰电路和提高驱动能力电路,增强系统的稳定性。红外线遥控信号发送器电路 TC9012F 的遥控信号,TC9012F为4位专用微控制器,其内部振荡电路的振荡频率fosc典型值为455 kHz。当不按下操作键时,其内部455 kHz的时钟振荡器停止工作,以减少电池消耗。内部分频电路将振荡频率,fosc进行12分频后,变成频率fc=37.9 kHz,占空比为1/3的脉冲载波信号。红外遥控信号发送器电路由集成电路TC9012F、键盘矩阵电路、驱动器和红外发光二极管组成,遥控信号为37.9 kHz的脉冲载波被遥控编码脉冲调制的已调波,三、遥控信号的解码算法及程序编制,遥控器无键按下。红外发射二极管不发出信号,遥控接收头输出信号1。有键按下时.O和1编码的高电平经遥控头倒相后会输出信号O.由于与单片机的中断脚相连,将会引起单片机中断(单片机预先设定为下降沿产生中断)。单片机在中断时使用定时器0或定时器1开始计时.到下一个脉冲到来时,即再次产生中断时,先将计时值取出。清零计时值后再开始计时.通过判断每次中断与上一次中断之间的时间间隔。便可知接收到的是引导码还是O和1。如果计时值为9ms。接收到

的是引导码,如果计时值等于1.12ms,接收到的是编码O。如果计时值等于2 25ms.接收到的是编码1。在判断时间时,应考虑一定的误差值。因为不同的遥控器由于晶振参数等原因,发射及接收到的时间也会有很小的误差。

??? 以接收TC9012遥控器编码为例,解码方法如下:

??? (1)设外部中断0(或者1)为下降沿中断,定时器0(或者1)为16位计时器.初始值均为O。

??? (2)第一次进入遥控中断后,开始计时。

??? (3)从第二次进入遥控中断起,先停止计时。并将计时值保存后,再重新计时。如果计时值等于前导码的时间,设立前导码标志。准备接收下面的一帧遥控数据,如果计时值不等于前导码的时间,但前面已接收到前导码,则判断是遥控数据的O还是1。

(4)继续接收下面的地址码、数据码、数据反码。

(5)当接收到32位数据时,说明一帧数据接收完毕。此时可停止定时器的计时,并判断本次接收是否有效.如果两次地址码相同且等于本系统的地址,数据码与数据反码之和等于0FFH,则接收的本帧数据码有效。否则丢弃本次接收到的数据。

(6)接收完毕,初始化本次接收的数据,准备下一次遥控接收。

3 遥控编码

遥控编码脉冲由引导码、用户码、功能码和功能码的相反码组成,用户码是同一组码发送两次,如图2所示。用户码为8位,所以整个脉冲码为32位。引导码作为接收数据的准备脉冲,他由8TCP(4.5 ms)的高电平和8TCP(4.5 ms)的低电平组成。用户码和功能码采用脉冲位置调制(PPM)方式编码,根据脉冲之间的时间间隔来区分码值的"0"或"1"。对应于二进制数字信号的"0"或"1",脉冲时间间隔分别为2TCP(1.125 ms)和4TCP(2.25 ms),而每一脉冲的宽度仍不变,均为TCP(0.562 6 ms)。由于用户码发送两次,功能码与其相反码一起发送,因此系统的误动作很少。

本遥控器采用第一次发送的遥控信号的编码脉冲(图3所示)和第二、第三次连续发送的遥控信号的编码脉冲(图4所示)不同的工作方式。这样,当按键一直按着的时候,从第二次连续发送开始,只发送引导码和用户码第一位SO的相反码SO,因此可减少接收处理时间和红外发光二极管功耗,遥控编码脉冲经脉冲载波调制后由TC9021F的第脚输出,再经激励器驱动红外发光二极管,发送出波长为940nm的脉冲红外光。假设用户码为十六进制的76H则第一次发送的遥控信号的编码脉冲如图3所示。

解码器硬件以AT89C51单片机为核心,如图5所示,图中只给出接收红外遥控信号的部分电路。红外遥控信号经过红外接收模块接收后,解调为遥控信号的编码脉冲由输出端A输出,其波形如图3和图4所示,此信号经过反相器74LS04输出到AT89C51的外部中断INT0输入端.单片机通过运行程序对红外遥控器TC9021所发出的编码脉冲进行接收和译码。

用单片机解码红外遥控器

遥控器使用方便,功能多.目前已广泛应用在电视机、VCD、DVD、空调等各种家用电器中,且价格便宜,市场上非常容易买到。如果能将遥控器上许多的按键解码出来.用

作单片机系统的输入.则解决了常规矩阵键盘线路板过大、布线复杂、占用I/O口过多的弊病。而且通过使用遥控器,操作时可实现人与设备的分离,从而更加方便使用。下面以TC9012编码芯片的遥控器为例。谈谈如何用常用的51系统单片机进行遥控的解码。

一、编码格式

1、0和1的编码

遥控器发射的信号由一串O和1的二进制代码组成.不同的芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。TC9012的O和1采用PWM方法编码,即脉冲宽度调制,其O码和1码如图1所示(以遥控接收输出的波形为例)。O码由O.56ms 低电平和0.56ms高电平组合而成.脉冲宽度为1.12ms.1码由0.56ms低电平和1.69ms 高电平组合而成.脉冲宽度为2.25ms。在编写解码程序时.通过判断脉冲的宽度,即可得到0或1。

2、按键的编码

当我们按下遥控器的按键时,遥控器将发出如图2的一串二进制代码,我们称它为一帧数据。根据各部分的功能。可将它们分为5部分,分别为引导码、地址码、地址码、数据码、数据反码。遥控器发射代码时.均是低位在前。高位在后。由图2分析可以得到.引导码高电平为4.5ms,低电平为4.5ms。当

接收到此码时.表示一帧数据的开始。单片机可以准备接收下面的数据。地址码由8位二进制组成,共256种.图中地址码重发了一次。主要是加强遥控器的可靠性.如果两次地址码不相同.则说明本帧数据有错.应丢弃。不同的设备可以拥有不同的地址码.因此。同种编码的遥控器只要设置地址码不同,也不会相互干扰。图中的地址码为十六进制的0EH(注意低位在前)。在同一个遥控器中.所有按键发出的地址码都是相同的。数据码为8位,可编码256种状态,代表实际所按下的键。数据反码是数据码的各位求反,通过比较数据码与数据反码.可判断接收到的数据是否正确。如果数据码与数据反码之间的关系不满足相反的关系.则本次遥控接收有误.数据应丢弃。在同一个遥控器上.所有按键的数据码均不相同。在图2中,数据码为十六进制的0CH,数据反码为十六进制的0F3H(注意低位在前).两者之和应为0FFH。

单片机程序主要解决的问题就是如何对接收到的9021型红外遥控器所发射的信号进行解码,编码脉冲信号是由引导码、用户码、和功能码等部分组成,我们只对获取其功能码过程进行分析。在单片机设置中,将单片机AT89C51内部定时器/计数器T0设为定时方式1,定时时间为1 ms;设外部中断INT0为下降沿中断触发方式,由于在接收时将编码脉冲信号进行反相,因此,每当INT0外管脚信号下降沿到来时,外部中断INT0发生中断,启动定时器T0,定时器每次中断定时时间为1 ms并累加到定时计数器中,在下一次外部中断INT0发生中断时读取定时计数器中的时间,通过对两个脉冲之间的定时时间的分析来对遥控器功能码进行解码示例程序如下:

E1INT:

PUSHACC PUSH PSW CLRTR1 MOV RM—TLEN,

TH1??? 、

MOVTH1,#00H

MOV TL1,#00H

SETBTR1

MOV A,RMJLEN

JNZ LBL—RM—DAT—BIT

MOV RM—ADDR.#00H

MOV RM—RADDR,

#00H

MOV RM—DAT,#00H

MOV RM—RDAT,#00H

MOV RM—BIT_CNT,#00H

CLR RM—OK

CLR RM—GUIDE

POPPSW

POPACC

RET1 I BI RM DAT BIT:

??? MOV A,RM_TLEN

??? CJNE A,#23H,LBL—RM_ADDR_DAT

??? SETB RM—GUIDE

??? SJMP LBLE1

INT-RET

LBLRM_ADDR_DAT;

??? JNB RM—GUIDE,LBL—RM—ERROR

??? CJNE

A,#04H,LBL_RM_ONE

??? CLR C

??? SJMP

LBL_RM—SHIFT

LBLRM—ONE:

??? CJNE A。#08H。

LBL—RM—ERROR

??? SETB C

LBL_RM_SHIFT:

??? MOV A,RM—RDAT

??? RRC A

??? MOV RM—RDAT.A

??? MOV A,RM—DAT

??? RRC A

??? MOV RM—DAT,A

??? MOV A,

RM—RADDR

??? RRC A

??? MOV RM RADDR.A

??? MOV A。

RM—-ADDR

??? RRC A

??? MOV

RM—.ADDR.A

LBL—RM—END:

??? INC RM—BIT—CNT

??? MOV

A,RM_BIT_CNT

??? CJNE A,#32,LBLE1

INT_RET

??? CLRTR1

??? MOV TH1,#00H

??? MOVTL1,#00H

??? MOV

HOUR.RM—ADDR

??? MOV MINUTE,

RM—DAT

??? MOV RM—_ADDR,

#00H

??? MOV RM—RADDR,

#00H

??? MOV RM—DAT,

#00H

??? MOV RM—RDAT,

#00H

??? MOV RM一

8IT_CNT,#00H

??? CLR RM—GUIDE

??? SEITB RM—OK

??? SJMP LBL—E1

INT—RET

LBL—RM—ERROR:

??? CLRTR1

??? MOV TH1,#0OH

??? MOVTL1,#00H

??? MOV RM—_ADDR,

#00H

??? MOV RM—RADDR,#00H

??? MOV RM—DAT,#00H

??? MOV RM—RDAT,#00H

??? MOV

RM—B1T—CNT,#00H

??? CLR RM—GUIDE

LBL—E1 INT—RET:

POPPSW

POPACC

RETI

??? 二、单片机遥控接收电路

??? 红外遥控接收可采用较早的红外接收二极管加专用的红外处理电路的方法。如CXA20106,此种方法电路复杂,现在一般不采用。较好的接收方法是用一体化红外接收头,它将红外接收二极管、放大、解调、整形等电路做在一起,只有三个引脚.分别是+5V电源、地、信号输出。常用的一体化接收头的外形及引脚见图3和图4。红外接收头的信号输

出接单片机的INTO或INTl脚.典型电路如图5所示.图中增加了一只PNP 型三极管对输出信号进行放大。

??? 以上以Tc9012编码格式为例,说明了解码的原理与方法。只要注意一帧数据的格式及引导码、O码和1码的时间长度.其它编码芯片如HT6121、M50560、LC7461等也非常容易解码。

4软件解码应用程序

在已知遥控器信号码格式的条件下,可以通过单片机软件程序实现解码。以笔者手中的遥控器为例,根据上面已测得的信号码,采用PIC16C54单片机,4 MHz 晶振,提供一种软件解码的应用程序。

PIC16C54单片机是一款有着较高性能价格比的低档单片机,最适合低价格、低功耗、小体积的设备。PIC16C54没有中断系统,程序采用软件查询法,查询输入引脚的电平变化,采用定时器定时,根据定时器的记录值和已知的信号格式比较,判断各部分接收是否正确以及分辨键码并执行相应的命令。

由于遥控器脉宽时间值是在一个小范围内波动,而且检测过程中定时器也存在误差。因此,对信号的识别不能采取精确比较法,本程序采用了区间比较法,即判断定时器的记录值是否在预先计算的区间内。由88于引导脉冲和数据脉冲的时间相差很大,解码时对定时器采用不同的预分频,以尽量提高解码的准确度。

①引导脉冲判断:低8.84 ms,高4.40 ms,预分频1∶64,理论计算得定时器值应为:低8AH,高44H。如实际所得低部分在85H和90H之间、高部分在40H和4AH之间,则认为引导脉冲接收正确。

②“0”,“1”判断:数据脉冲流的低电平脉宽相同,忽略不判断;高电平脉宽是判断数据流每位是“0”还是“1”的依据。“0”对应高0.50 ms,“1”对应高1.62 ms,预分频1∶8,理论计算得定时器值应为:“0”对应高3EH,“1”对应高0CAH。如所得“0”对应高在39H和42H之间、“1”对应高在0C5H 和0D0H之间则认为接收正确。

③判断16 b识别码是否和已知的识别码(19D6H)相同。

④判断8 b键码是否与8 b键码的反码相对应。

⑤根据键码,选择所应执行的命令。

注意,在程序容易发生死循环或者出错的地方,要检验定时器是否溢出。一旦发生溢出,要立即使程序复位,以便程序能够在出错之后返回到程序开始部分,增强系统的可靠性。基于以上设计思想可以在多种单片机上实现遥控器的解码。读

者可自行尝试应用中断方法实现遥控器的信号解码。

5 结语

生产即时显示系统面向生产现场,对生产效率进行量化管理,目前在发达国家和国内一些外资企业已经得到广泛的应用。他通过即时显示生产中的定额任务量、生产目标以及当前时刻实际完成的生产数量,可以使生产情况一目了然,提高了生产效率。此显示系统一般都安放在生产线上方,工作人员需要经常对显示系统进行操作,设定和修改数据,用红外遥控器对生产即时显示系统进行不接触的参数设定,可以使操作灵活方便,抗干扰强

参考文献

[1]窦振中.PIC系列单片机原理和程序设计[M].北京:北京航空航天大学出版社,1998.

[2]徐科军.传感器与检测技术(第二版).北京:电子工业出版社[3]何立民,单片机应用系统设计.北京:航天航空大学出版社[4]胡汉才,单片机原理及其接口技术,北京:清华大学出版社,1996

[5]5赵负图,传感器集成电路手册.第一版,化学工业出版社

相关主题