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

发布者:technology1最新更新时间:2012-03-14 来源: 现代电子技术 关键字:遥控器  软件解码  单片机  红外线 手机看文章 扫描二维码
随时随地手机看文章

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

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

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

2 红外遥控器信号接收芯片外围电路
  接收电路可以使用集成红外接收器成品,一般不需要任何外接元件就能完成从红外接收到输出TTL电平兼容信号的所有工作。注意选择接收器件时要保证接收器件的中心频率与发射信号的中心频率相匹配。接收器对外只有3个引脚:VCC,GND和1个脉冲信号输出OUT。与单片机接口非常方便,如图2所示。  

    脉冲信号输出接CPU的普通输入引脚或中断输入引脚(IO/INT)。采取这种连接方法,软件解码既可工作于查询方式,也可工作于中断方式。在实际应用中,还可以进一步增加抑制干扰电路和提高驱动能力电路,增强系统的稳定性。

3 未知信号格式遥控器信号码的识别
  在应用系统中,要完成对遥控器信号的解码并实现对系统功能的控制,必须了解遥控器信号码(即遥控器所发射脉冲流)的格式,即信号的引导脉冲高低脉冲的宽度、“0”,“1”的表示法,以及遥控器识别码、各个功能键的键码。对信号码的识别应该从分析脉冲流的各个高、低脉冲的时间入手,通过分析各个高、低脉冲的时间,分析得出信号码的格式。下面提供一种软件测试信号码的方法,以供参考。
    笔者采用PIC16C72单片机,4 MHz晶振,红外发射器芯片为BA6121-001,通过软件中断的方法,对手中未知格式的信号码进行测试识别。遥控器接收器OUT端接RB0/INT,测得在遥控器空闲的情况下输出为高,INT首先采用下降沿触发。第一次INT发生时,启动定时器,每次中断要将触发形式设置为上一次触发的相反形式,以保证在下次电平变化时产生中断;定时器溢出中断记录每次脉冲期间定时器溢出的次数;为了提高检测精度,应提高定时器的时间分辨率,但过高的时间分辨率会引起单个脉冲期间定时器溢出,记录每个脉冲期间溢出次数又浪费了大量数据寄存器。这里笔者采取了折中的办法,即数据寄存器高6位只记录定时器值的高6位,低2 位用来记录定时器溢出次数,既节省了数据寄存器数量,又在一定程度上保证了较高的检测精度。数据存储格式如图3所示。

  由于此程序只为测试程序,可在仿真器中读出寄存器组中所记录的各高低脉冲所对应的定时器值,计算得出高低脉冲的时间数据,分析数据可知遥控器信号码的格式。下面给出部分INT和定时器0中断服务程序:[page]
  

  这里需要合理设置定时器的预分频值,笔者多次实验,得出较为合理的预分频值为1∶8,定时器时间分辨率为8μs,最大定时时间为 (4×256+252)×8×1μs=10.2 ms,测量精度达到最高,误差为32μs。通过对所得数据分析,得出遥控器的信号码格式如图4所示。

  图中“头”(即引导脉冲):低8.84 ms,高4.40 ms。 “1”:低0.60 ms,高1.62 ms;“0”:0.60 ms低,0.50ms高;16 b识别码:19D6H采用PIC16C72单片机,最多可以检测54 b的信号码,足以满足一般情况下的需求。

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键码的反码相对应。⑤根据键码,选择所应执行的命令。
    由于篇幅所限,仅给出判断“0”部分程序:  
  
 
  注意,在程序容易发生死循环或者出错的地方,要检验定时器是否溢出。一旦发生溢出,要立即使程序复位,以便程序能够在出错之后返回到程序开始部分,增强系统的可靠性。基于以上设计思想可以在多种单片机上实现遥控器的解码。读者可自行尝试应用中断方法实现遥控器的信号解码。
  本文所介绍的红外遥控器接收发送原理及信号码识别和解码程序,可以方便地移植到其他系统,其方法简洁灵活。此方法具有一般性,对于具体的应用,可自行变通。

  参考文献

[1]窦振中.PIC系列单片机原理和程序设计[M].北京:北京航空航天大学出版社,1998.
关键字:遥控器  软件解码  单片机  红外线 引用地址:基于单片机系统的红外遥控器应用

上一篇:基于单片机的高速信号测试接口板的实现
下一篇:MSC1210在微位移传感器系统的应用

推荐阅读最新更新时间:2024-03-16 12:55

单片机SPI通信接口
UART、I2C和 SPI 是单片机系统中最常用的三种通信协议。前边我们已经学了 UART 和I2C通信协议,这节课我们来学习剩下的 SPI 通信协议。 SPI 是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。SPI 通信原理比 I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的 SPI 是 4 根线,分别是 SSEL(片选,也写作 SCS)、SCLK(时钟,也写作 SCK)、MO
[单片机]
<font color='red'>单片机</font>SPI通信接口
单片机项目 温度记录仪
main.c /** * 工程名称:温度记录仪 * Mode 0: 温度采集间隔选择模式,用以确定温度采集间隔 * Mode 1: 采集并显示实时时间,采集温度并缓存 * Mode 2: 查看采集到的10个温度样本 * * */ #include stc15f2k60s2.h #include stdint.h #include timer.h #include digitalTube.h #include independentKey.h #include DS18B20.h #include DS1302.h uint8_t mode = 0; //工作模式 uint8_t c
[单片机]
<font color='red'>单片机</font>项目 温度记录仪
STM32F系列单片机内部FLASH编程
STM32F系列单片机内部含有较大容量的FLASH存储器,但没有EEPROM存储器,有时候对于参数的保存不得不另外加一片EEPROM芯片。这对于现如今大部分MCU都是FLASH+EEPROM的配置而言,显的相当的不厚道,尤其是从AVR转过来的开发者们,极为不方便。考虑到STM32F系列自身FLASH容量较大,且有自编程功能,所以很多时候可选择用FLASH模拟EEPROM,存储参数。STM32F系列的FLASH容量一般都足够大,笔者的所有设计中,最高也只用到其相应FLASH的60%左右,还有很多未用到的空间,用于存储参数还是相当方便的。另外,操作FLASH还能方便的实现IAP功能,这对于某些应用,是非常实用的。   STM32F系列
[单片机]
STM32F系列<font color='red'>单片机</font>内部FLASH编程
基于单片机的楼宇定时广播系统设计
1 引 言 楼宇广播系统在学校教学楼的应用非常广泛,需要每天按时播放楼宇管理通知、上下课铃声、眼保健操背景音乐等定时广播信息。因此要求此广播系统稳定可靠、音质清晰、操作方便。市场上已有的此类系统大多是由计算机控制的一套设备,投资大,电能等资源消耗大,如果作为控制中心的计算机遭受病毒攻击,系统容易崩溃,稳定性差,需要经常维护。因此结合教学楼现有设备条件设计出稳定性好,操控灵活,由集成电路构成的一套定时广播系统是十分必要的。 2 定时广播系统组成 较新的教学楼其电气化程度都比较高,一般配有水警、火警检测及其报警系统,报警终端是分布于各楼层的扩音设备。如有警情发生,控制中心将报警音频信号通过功率放大器送到各楼层的扩音器发
[单片机]
基于<font color='red'>单片机</font>的楼宇定时广播系统设计
STM32单片机的IIC硬件编程---查询等待方式
IIC器件是一种介于高速和低速之间的嵌入式外围设备,其实总体来说,它的速度算是比较慢的。通常情况下,速度慢的器件意味着更多的等待,这对于精益求精的嵌入式工程师来说,简直就是一个恶梦,低速器件的存取数据实在是太浪费资源。如何面对这种低速设备,而使系统运行达到最优化?我觉得应当尽可能多的使用硬件完成,这样软件的开销便会减小,系统软件不用过多的时间去等待这些数据,而专注于硬件的请求和处理。 IIC协议,在笔者看来,其实并不是一种很好的协议,它没有较好的出错恢复机制,它是基于一种状态机模式的通讯协议,在这个状态转换中出现任意一步错误,将会导致总线不可恢复,极脆弱。在400KHZ的最高带通讯速率下,很多时候也极易产生干抗,因其采用了
[单片机]
基于MSP430单片机的称重式液位仪的设计
1 引言 液位测控仪是属于智能化仪器仪表的一种(指采用了微处理器的仪器仪表),其发展始于70年代[1]。它是一种集测量与控制于一体的智能化产品,适用于石油化工、冶金、电力、制药、环保等行业中各种介质的液位测量。本仪器主要针对罐体内液体进行测量并能计算其重量,适用于对各种液态物质进行静态和动态测量与监控,并具有超限报警和主-从站模式联网功能。 2 系统设计方案 2.1 液位传感器的选择 一般情况下在液位测量中所采用的传感器有:压力传感器、超声波传感器、浮子式传感器等,由于系统设计中要求在测量液位的同时还要实现液体重量的检测。在液罐内,液体重量P的检测可直接利用计算得到,即P=H*S*ρ(H为液体高度CM;S为圆面积M
[单片机]
基于MSP430<font color='red'>单片机</font>的称重式液位仪的设计
[单片机框架][bsp层][AT32F415][bsp_pwm] PWM配置和使用
9.1.3.6 PWM输入模式 该模式是输入捕获模式的一个特例,除下列区别外,操作与输入捕获模式相同: 两个ICx信号被映射至同一个TIx输入。 这2个ICx信号为边沿有效,但是极性相反。 其中一个TIxFP信号被作为触发输入信号,而从模式控制器被配置成复位模式。 例 如 , 你 需 要 测 量 输 入 到 TI1上 的 PWM信 号 的 长 度 ( TMRx_CC1寄 存 器 ) 和 占 空 比(TMRx_CC2寄存器),具体步骤如下(取决于CK_INT的频率和预分频器的值)。 选择TMRx_CC1的有效输入:置TMRx_CCM1寄存器的C1SEL=01(选择TI1)。 选择TI1FP1的有效极性 (用来捕获数据到T
[单片机]
[<font color='red'>单片机</font>框架][bsp层][AT32F415][bsp_pwm] PWM配置和使用
基于森国科MCU SPIN的落地扇和循环扇应用方案
本期内容重点介绍,针对三相低压风扇电机驱动,森国科SGK32G031芯片可提供的一款高性价比解决方案,加速实现低功耗、轻量化、节能化的落地扇&循环扇应用。 森国科MCU SPIN(SGK32G031)芯片 高性能 高可靠性 芯片采用32-bit Arm Cortex-M0内核,主频60MHZ,内置USART ,集成业内领先的高采样率的高速12bit ADC ,集成2个高速 模拟 比较器 ,2个OPA 运算放大器 , 硬件 除法器; 芯片针对电机应用进行了多项设计优化,具备了高精准高可靠 时钟 系统、可支持移相的 TI MER、以及-40℃~105℃增强 工业 级工作温度范围等多项高可靠性优势。 小尺寸、多应用 芯片采用Q
[嵌入式]
基于森国科<font color='red'>MCU</font> SPIN的落地扇和循环扇应用方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved