1 引言
红外遥控是目前常用的一种通信和遥控方法,红外遥控装置具有体积小、功耗低、功能强、成本低等特点,因而其广泛应用于各种家电产品、金融和商用设施,以及工业设备中。但是各种产品的遥控并不能互相兼容,本文介绍一种利用单片机设计通用自学习型红外遥控的方法,可以实现对多种产品红外线遥控。本装置采用了最小化模式设计,电路简单,可靠性高,此技术应用于我们开发的多媒体中央控制器产品中,获得了令人满意的效果。该方案可以还可应用于自学习万能遥控器和智能家庭集中控制器等设备。
2 红外遥控原理
一般的红外遥控系统由红外遥控信号发射器、红外遥控信号接收器、微处理器
和外围电路构成的。当遥控器的某个按键按下,其内部的信号发射器产生遥控编码脉冲,由红外发射管串行输出,遥控接收模块型号1838 完成对遥控信号的接收、放大、检波、整形、解调出遥控编码脉冲,遥控编码脉冲是一组串行二进制编码,对于一般的红外遥控系统,此串行输入到微控制器,由其内部完成遥控指令解码,并执行相应的遥控功能。
3 一般红外遥控信号编码脉冲的波形
红外遥控器发射的遥控编码脉冲,由前导码、系统码、功能码、功能码的反码组成如图1 所示
前导码是一个遥控码的起始部分,由一个高电平和一个低电平组成。作为接受数据的准备脉冲,这些编码是经38 kHz 的载波脉宽调制后发射出去。
通过分析大量不同类型的红外遥控码波形,遥控码的数据帧间歇宽度均为10ms以上,前导码的高电平均为5ms以上,通常为9ms左右,编码位在10us和5ms之间,在本设计中只考虑遥控器发射信号的高低电平宽度,不考虑其编码方式,以简化设计。
4 系统硬件电路的设计
图2 单键通用学习型遥控器原理图
考虑到有的遥控器的编码比较长,需要比较多的内部RAM,单片机采用了 AT89C52 P2.5 口接学习按键,P2.7口接发射按键,P1.7 口用于作为遥控码的输出口,输出38 kHz 的遥控码,INT0口用于红外线接收头的输出信号的输入。
5 系统主要程序的设计
5.1 主程序如图3
上电复位后,主程序扫描按键,当确认有按键按下时,若是学习键,则进入学习状态;若是发射键,则将已学习的遥控编码脉冲发射出去。
5.2 遥控编码学习子程序
该程序实现遥控前导码的识别,遥控编码高低电平宽度计时和结束位识别功能,程序流程如图4 所示。
在设计中,采用了计数器对信号高低电平计时的方法来采集数据并保存。前导码由一个9ms左右的高电平和一个低电平组成的,判断是否是前导码的方法是:判断开始的高电平是否大于5ms。如果大于5ms的话,就认为是前导码,并保存前导码的低电平。然后依次保存采集到的编码信号,如果采集到编码信号的高电平大于5ms的话,就认为是编码已经结束,置0 作为标志学习子程序结束。
5.3 遥控编码发射子程序
由软件实现遥控信号的载波合成,用定时中断1产生38kHz的载波信号用,定时中断0控制定时中断1的开关,定时器0定时长短由相应的遥控信号电平宽度计数值确定。如果需发射的遥控信号为高电平时,关定时中断1;如果为低电平,则开定时中断1,输出38kHz载波信号到红外发射控制脚P1.7,从而实现遥控信号的脉宽调制发射。
6 结语
在本设计中,采用了不考虑红外信号的编码方式,只采集其高低电平宽度的方法,使得可采集各种编码方式的信号发射时,不是用硬件,而是采用以软件方式产生载波的方法。节约了硬件设备,并使电路简化。本设计非常简单地实现了红外遥控信号的接收和转发,本设计的装置已用于多媒体中央控制器产品中对多媒体电子产品进行红外控制操作,在实际应用过程中获得了满意的效果,该装置还可应用智能家居产品中对空调电动窗帘灯光音响等电器设备进行控制。