设计思想为了实现用电视机遥控器操作仪器,可按所示进行红外遥控部件的设计。红外接收器接收电视遥控器发出的红外信号(对应仪器的某一按键的操作),并输出相应的编码信号,在对该编码信号识别后,根据事先的约定向被控仪器发出一控制指令,被控仪器接收到该指令后进行相应操作。
红外遥控信号的识别普通电视遥控器及其一体化的红外接收都是廉价且来源广泛的成熟产品,它们的采用大大简化了红外遥控部件的设计,这种方法的关键是找到红外遥控按键的编码,以下介绍应用于识别各种电视机遥控按键编码的通用方法用示波器测试编码信号的波形通过示波器观察遥控器工作时hs0038的输出波形,结果发现:在没有接收到频带内的红外信号时hs0038输出5v左右的高电平,接收到频带内的信号时则输出0v的低电平。当有遥控信号发出时hs0038输出的是如所示的一系列脉冲信号,共有24次跳变。脉冲电平宽度根据长短不同可分为t1、t2两种,短脉冲宽度约0。76ms~0。85ms,长脉冲宽度约1。58ms~1。75ms。两种脉冲的不同组合就形成了不同按键的特征信号。当持续按某键时,则相同的信号反复出现。用这种方法纪录下每一按键信号的特征t1,t2的组合。通过以上测试可以得出红外编码信号的大致轮廓。
通过单片机进行信号识别选用89c2051单片机进行信号识别,它可以得到各键编码的数据。通过示波器的观察已知hs0038输出是ttl电平可以直接接89c2051的int0口,由此端口检测电平跳变。定时/计数器t0设为定时状态用来计算脉冲宽度。软件流程如所示,当有int0检测到跳变信号时打开计时器t0对脉冲进行计时,信号再次跳变时关掉计时器t0,读th0、tl0,若脉冲宽度大于2ms即结束检测,否则根据电平的跳变反复计时。在此过程中开辟一块内存单元将计时所得的脉冲宽度值存入。采用6mh晶振时,短脉冲th0为01h,长脉冲th0为03h,这样就不用考虑tl0的值了。在测试中发现偶尔有一两个跳变的干扰信号,为了解决这一问题,对所有按键信号进行了分析后发现他们在同一段有相同位置的8个t1短脉冲。检测这一特征,可以用来防止别的红外信号的干扰,以达到去除噪声的效果。在脉冲宽度大于2ms时加入检测8个短脉冲的去干扰程序可达到良好的效果。
软件处理测试仪器受到来自串行口rs―232信号的控制,为了达到遥控的目的建立了遥控按键信号与本机按键信号的一一对应关系,即某一遥控按键发出的信号编码与其对应本地按键的信号编码相同。在原测试仪器程序中加入一条判断转换开关状态的语句,若转换开关为本地状态则检测本地按键,否则跳过本地按键