----有关遥控 有关射频 有关无线通讯的 专业文档资料站 315MHz.COM 遥控网 RF315.COM 射频网 

 RF315.COM首页 | 遥控制作(无线 红外 载波 DTMF等) | 相关元器件 | 基础知识 | 标准、法规 | │传感器 单片机 自控 CAD等综合版│

遥控制作(无线 红外 载波 DTMF等)>红外线遥控>电视遥控器的单片机译码程序

  日期:2004-09-17 11 作者:唐山王裕琛 来源:电子报

电视遥控器的单片机译码程序

    《电子报》2000年第50期第十三版《彩电红外遥控器在仪表中的应用》一文,介绍了使用M50462AP的遥控器的工作原理和应用。笔者也曾将此遥控器用于电子日历和银行利率屏等,今把遥控器的译码介绍给读者,供参考。
    笔者使用众合牌H-106A型彩电遥控器(熊猫牌、SR5417型电视遥控器均可),并为遥控器定做了PVC贴模,将遥控器上的文字改成电子日历、利率屏中的功能键。上述遥控器使用的都是M50462AP或它的可互换集成电路,其C4、C5脚悬空,发送的前8位识别码,固定为11100010(E2H),后8位是键功能操作码。
    遥控器发送的编码顺序,笔者认为是按D7~D0顺序发送出的*。例如:数字4的操作码是00011000,串行发出的完整指令代码依次是11100010 00011000(E218H)。
  这一点和某些资料介绍的不同,但无关紧要,比如识别码E2,我们是把8位码依次左移;如果把8位码依次右移,识别码就变成了47H,相当于按D0~D7的顺序发送了。
    CPU的型号为AT89C51,红外接收器外形和接收电路如图1所示。接收头的输出接89C51的INT1。
    按一次电视遥控器,一般要发送几组代码,传送一组指令码的时间是44ms。键一按下,传送指令码按44ms的重复周期持续发送,直至手松开为止。笔者在89C51的RAM区开辟了6个字节的数据缓冲区(2AH~2FH),存储48位脉冲数据(如图2所示),以便找到两组相同的16位数据。
    在主程序中设INT1为负跳变触发。定时器T1工作在方式2,中断禁止。用6MHz晶振时机器周期为2μs。脉冲宽度为1ms的代码0和脉冲宽度为2ms的代码1的计数值△T0和△T1分别为 :△T0=1ms/2μs=500=1FAH,△T1=2ms/2μs=1000=03E8H
    在INT1中断服务程序中,读T1的计数值,计数值等于△T0计为0,计数值等于△T1计为1,同时将TH1、TL1清0。存储的位置从2AH的最高位开始,直至2FH的最低位(存满48位)为止。
    因为遥控器、单片机频率误差、T0计数误差等原因,△T0、△T1很难保证正好等于算式中的值。为此,给“0”、“1”读数规定了0.1ms的误差范围,对应的计数值是32H,即:“0”的范围为:01F4H±32H=01C2H~0226H,“1”的范围为:03E8H±32H=03B6H~041AH。
    范围选大了,抗阳光的干扰性能差,特别是下午的阳光容易造成误动作;范围选小了,又很不容易接收到信号。对于不同厂家的遥控器,因其所用的陶瓷振子不同,基准频率的差异,范围也略有不同。经过一段时间的实验,确定“0”的范围为△T0-~△T0+=0190H~0200H;“1”的范围为△T1-~△T1+=0390H~0400H。
    中断服务程序中判断数据是“0”还是“1”的程序框图如图3所示。将TH1、TL1中的数据K送R2、R3,调用子程序判断K的大小。K值在△T0-~△T0之间计为“0”,K值在△T1-~△T1+之间计为“1”,将判断结果送到暂存字节U0_X1。暂存字节够8位后送入数据缓冲区,计数值够48位后判断键值。
    当(2AH)=(2CH)=OE2H,且(2BH)=(2DH)时,2BH中的内容即是键值。否则,就将2AH~2FH中的内容带进位位左移一位后,再判是否满足上述条件。满足,则2BH中的内容为键值,不满足再左移、判断。若左移16次仍不满足条件,则判数据无效。若数据有效,将键值送键值存储单元NO_M(1EH),主程序按键定义转相应的处理程序,并向1EH送无效码FFH。
    遥控器的调试
    1. 键值的确定
    不同厂家的遥控器对应的键值编码有些不同。调试时可以在本文程序标号为“X1S_0”处设断点,读取NU_M单元的数值,即键值。当然,前提是硬件要先调试好。也可以使用稳定性较好的示波器,当接收头收到信号时仔细观察接收头输出的波形,每两个负脉冲之间距离长的为1,距离短的为0,然后根据二进制码去判断键值。
    2. 遥控器接收头的引脚
    接收头外形多数如图1所示。如果对引脚接线还有怀疑,可以用《电子报》2000年第48期第十一版《速判红外接收头引脚的方法》一文进行判断。
    目前市面上还有一种接收头外形如图4所示,厚度只有几毫米,类似7805,面对遥控器开孔一面时,从左向右数,引脚依次为GND、+5V、OUT。此遥控器较便宜,但质量不如图1所示的遥控器。
    3. 其他
    有的红外接收头的GND脚未接外壳,使用时应将GND脚接外壳,以增强抗干扰能力。用示波器可以很清楚地看到,GND脚未接外壳时,不按遥控器,接收头也有许多杂波。
在单片机控制的电子日历和利率屏中,用上述遥控器修改数据,取得了较好效果。

                                                                  

    编者注:由于篇幅关系,遥控译码部分的程序清单无法刊出,需要的读者可发E-mail到《电子报》单片机公共实验室(sys@netdzb)免费索取。



  

 

315MHz.COM 版权所有 联系我们