1、51 单片机解码红外遥控器原理 电视遥控器使用的是专用集成发射芯片来实现遥控码的发射,如东芝 TC9012,飞利浦SAA3010T 等,通常彩电遥控信号的发射,就是将某个按键所对应的控制指令和系统码(由 0 和 1 组成的序列),调制在 38KHz 的载波上,然后经放大、驱动红外发射管将信号发射出去。不同公司的遥控芯片,采用的遥控码格式也不一样。较普遍的有两种,一种是NEC 标准,一种是 PHILIPS 标准。NEC 标准:遥控载波的频率为 38KHz(占空比为 1:3);当某个按键按下时,系统首先发射一个完整的全码,如果键按下超过 108ms 仍未松开,接下来发射的代码(连发代码)将仅由起始
2、码(9ms)和结束码(2.5ms)组成。 一个完整的全码 =引导码+用户码+ 用户码+数据码+数据反码。 其中,引导码高电平 4.5ms,低电平 4.5ms;系统码 8 位,数据码 8 位,共 32 位;其中前 16 位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后 16 位为 8 位的操作码和 8 位的操作反码,用于核对数据是否接收准确。收端根据数据码做出应该执行什么动作的判断。连发代码是在持续按键时发送的码。它告知接收端,某键是在被连续地按着。NEC 标准下的发射码表示发射数据时 0 用“0.56ms 高电平0.565ms 低电平=1.125ms” 表示,数据 1
3、用“ 高电平0.56ms低电平 1.69ms=2.25ms”表示即发射码“0”表示发射 38khz 的红外线 0.56ms,停止发射 0.565ms,发射码“1”表示发射38khz 的红外线 0.56ms,停止发射 1.69ms需要注意的是:当一体化接收头收到 38kHz 红外信号时,输出端输出低电平,否则为高电平。所以一体化接收头输了的波形是与发射波形是反向的,如图PHILIPS 标准:载波频率为 38KHz;没有简码,点按键时,控制码在 1 和 0 之间切换,若持续按键,则控制码不变。一个全码起始码11控制码用户码+用户码,如图所示。数据 0 用“低电平 1.778ms高电平 1.778m
4、s”表示;数据用“高电平 1.778ms低电平1.778ms”表示。 连续码重复延时 114ms。NEC、TOSHIBA 、SAMSONG 公司的编码格式有其共通之处:遥控全码都由 “引导码+系统码+系统码(或系统码取反)+数据码+数据码取反”组成;数据“0”和“1”的定义相同;不同的只是引导码高低电平的持续时间不同,系统码位数有长有短,第一个简码和全码最后一位之间的延时不同,简码的引导脉冲不同等;所以可以把相同的部分做成通用子程序,包括产生数据“0”和“1”的子程序“ONE”和“ZERO”,9ms、4.5ms 、2.25ms、22ms、45ms 等时间控制子程序。键值处理,可采用外中断的方式,有键按下时,就向 CPU 发出中断请求,当然这里面还包括了去抖动、多键同时按时只处理一键的处理部分。机芯的不同状态由单片机 P3 口的 P3.5、P3.4、P3.1、P3.0 四位的输入数值来区分判断,比如“0000” 表示工作于东芝 TC90系列状态,“0001”则表示要求工作于 NEC 公司的PD61系列状态。判断了是哪一只键按下以及处于机芯的哪种状态以后,程序就严格按照相应的遥控编码方式来进行遥控码的发射,也就是说将一定时段、一定数值的电平脉冲调制在 38KHz 载波上,逐一发射出去。流程图如图所示