基于单片机的红外遥控器解码器的设计
TC9012F是一种通用型红外遥控信号发送用CMOS大规模集成电路,适用于电视(TV),磁带录像机(VTR),激光唱机等设备的遥控操作。市场上,以TC9012F为核心的9012型红外遥控器被广泛使用且价格便宜。将设计的基于单片机AT89C51的9012型红外遥控解码器应用于生产即时显示系统中,作为参数设置和系统控制用红外遥控器,在实际应用中收到了良好效果。
1 红外线遥控信号发送器电路 TC9012F的遥控信号
TC9012F为4位专用微控制器,其内部振荡电路的振荡频率fosc典型值为455 kHz。当不按下操作键时,其内部455 kHz的时钟振荡器停止工作,以减少电池消耗。内部分频电路将振荡频率,fosc进行12分频后,变成频率fc=37.9 kHz,占空比为1/3的脉冲载波信号。 红外遥控信号发送器电路由集成电路TC9012F、键盘矩阵电路、驱动器和红外发光二极管组成,遥控信号为37.9 kHz的脉冲载波被遥控编码脉冲调制的已调波,如图1所示。
遥控编码脉冲由引导码、用户码、功能码和功能码的相反码组成,用户码是同一组码发送两次,如图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所示。
由图2和图3可以看出,遥控编码脉冲波形的输出时间为192TCP或224TCP,α为用户码(8位)的输出时间。当α≥26TCP时,遥控编码脉冲波形输出时间为224TCP.另外,对于连续发送的编码脉冲中用户码第一位的相反码的脉冲间隔时间,当SO="1"时,则SO="0",该时间为2TCP,当SO="0"时,则SO="1",该时间为4TCP.
2解码器硬件设计
解码器硬件以AT89C51单片机为核心,如图5所示,图中只给出接收红外遥控信号的部分电路。红外遥控信号经过红外接收模块接收后,解调为遥控信号的编码脉冲由输出端A输出,其波形如图3和图4所示,此信号经过反相器74LS04输出到AT89C51的外部中断INT0输入端.单片机通过运行程序对红外遥控器TC9021所发出的编码脉冲进行接收和译码。
3单片机程序设计
单片机程序主要解决的问题就是如何对接收到的9021型红外遥控器所发射的信号进行解码,编码脉冲信号是由引导码、用户码、和功能码等部分组成,我们只对获取其功能码过程进行分析。在单片机设置中,将单片机AT89C51内部定时器/计数器T0设为定时方式1,定时时间为1 ms;设外部中断INT0为下降沿中断触发方式,由于在接收时将编码脉冲信号进行反相,因此,每当INT0外管脚信号下降沿到来时,外部中断INT0发生中断,启动定时器T0,定时器每次中断定时时间为1 ms并累加到定时计数器中,在下一次外部中断INT0发生中断时读取定时计数器中的时间,通过对两个脉冲之间的定时时间的分析来对遥控器功能码进行解码。图6、图7和图8分别给出解码器主程序、定时器T0中断程序和外部中断INT0中断程序的流程图。
4结 语
生产即时显示系统面向生产现场,对生产效率进行量化管理,目前在发达国家和国内一些外资企业已经得到广泛的应用。他通过即时显示生产中的定额任务量、生产目标以及当前时刻实际完成的生产数量,可以使生产情况一目了然,提高了生产效率。此显示系统一般都安放在生产线上方,工作人员需要经常对显示系统进行操作,设定和修改数据,用红外遥控器对生产即时显示系统进行不接触的参数设定,可以使操作灵活方便,抗干扰强。