51单片机解码红外遥控器原理
NEC标准:遥控载波的频率为38KHz(占空比为1:3);当某个按键按下时,系统首先发射一个完整的全码,如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。 一个完整的全码=引导码+用户码+用户码+数据码+数据反码。 其中,引导码高电平4.5ms,低电平4.5ms;系统码8位,数据码8位,共32位;其中前 16 位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后 16 位为 8 位的操作码和 8位的操作反码,用于核对数据是否接收准确。收端根据数据码做出应该执行什么动作的判断。连发代码是在持续按键时发送的码。它告知接收端,某键是在被连续地按着。
NEC标准下的发射码表示
发射数据时0用“0.56ms高电平+0.565ms低电平=1.125ms”表示,数据1用“高电平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.778ms”表示;数据1用“高电平1.778ms+低电平1.778ms”表示。 连续码重复延时114ms。
NEC、TOSHIBA、SAMSONG公司的编码格式有其共通之处:遥控全码都由“引导码+系统码+系统码(或系统码取反)+数据码+数据码取反”组成;数据“0”和“1”的定义相同;不同的只是引导码高低电平的持续时间不同,系统码位数有长有短,第一个简码和全码最后一位之间的延时不同,简码的引导脉冲不同等;所以可以把相同的部分做成通用子程序,包括产生数据“0”和“1”的子程序“ON
键值处理,可采用外中断的方式,有键按下时,就向CPU发出中断请求,当然这里面还包括了去抖动、多键同时按时只处理一键的处理部分。
机芯的不同状态由单片机P3口的P3.5、P3.4、P3.1、P3.0四位的输入数值来区分判断,比如“0000”表示工作于东芝TC90××系列状态,“0001”则表示要求工作于NEC公司的PD61××系列状态。
判断了是哪一只键按下以及处于机芯的哪种状态以后,程序就严格按照相应的遥控编码方式来进行遥控码的发射,也就是说将一定时段、一定数值的电平脉冲调制在38KHz载波上,逐一发射出去。
流程图如图所示
51单片机解码红外遥控 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)