红外遥控器51单片机读码解码程序设计
一、红外遥控传输编码协议
鉴于彩电、VCD、DVD音视频系统和家电音响设备所配红外遥控器的控制种类多,各遥控器之间工作时又不能互相干扰,若采用简单的编码方式,很难适应其要 求,所以,家电专业生产厂家给这此遥控器制定了严格的红外线传输编码协议,市面上有几种编码协议,如NEC码、Sonyd码、RECS80码、 Motorola码、Japanese码、SAMSUNG码等,这里仅对NEC编码协议为实例,先详细介绍它的编码方式,然后介绍遥控器的接收解码原理, 再用51单片机把接收的解码信号按键码工作方式读取出来。
图1
1。红外编码NEC协议
NEC协议的编码称为NEC码,采用脉冲相位调制(PPM),红外遥控器调制波的载波频率为38kHz。图2是NEC码的定义和编码格式:图2(a)是 NEC协议的“0”、“1”码的定义,即“0”码定义为0.56ms高电平脉宽(常称为传号)和0.565ms低电平(常称为空号)组成“0”码;“1” 码定义为0.56ms高电平脉宽和1.69ms低电平,组成“1”码。由此可见NEC协议“0”、“1”码定义与我们熟悉的二进制“0”、“1”定义完全 不同。图2(b)是NEC协议传输一帧信息(或信号)码的组成,每一帧信息由引导码(9ms脉宽和4.5ms低电平)开始,后面紧跟着16位地址码(又称 用户码)和16位键码(又称命令码)。在16位地址码中,有的分为低8位地址和高8位地址;而有的高8位地址码是低8位地址码的反码。在16位键码中,其 高8位是键码,低8位是键码的反码。地址码和命令码的发送均是低位在前,高位在后。由上述可见,NEC协议的一帧信息占用的时间长度为67.5ms。
NEC协议规定,每按一次遥控器键,就发送如图2(b)的一帧码,但若按住遥控器不放,则每隔108ms,发一次重复码,如图2(c)所示。重复码的特点 就是在发第一帧编码之后的108ms,又发送新的引导码,引导码的组成是9ms高电平脉宽,接着是2.25ms低电平(即空号),空号之后又是0.5ms 高电平脉宽,然后发送与第一帧相同的16位数据码和16位命令码。只要按键不放,其发送的重复码均以108ms间隔依序进行。按照以上所述,NEC协议一 帧的编码格式如图2(d)所示。
二、红外遥控发射电路
图3是一典型应用电路,IC内部已将编码信号放在38kHz的载波信号上面,再从5脚输出放大,由红外发射管发出。红处接收IC(图4)收到38kHz红 外波,经内部放大检波,输出原编码信号图2(b),因此,载波检波这一过程不用考虑,我们的目的是进行读码解码。
图3
三、红外遥控接收读码
图4为LY51-L2板子上的红外接收IC,脚1为信号输出。根据电路的组合要求,从IC内部电路可看出,输出信号是经过反向(非门电路)的。因此,这里 特别要注意一点,图2(b)信号在IC输出后,信号已取反,即无信号时为高电平,与51单片机的I/O引脚默认输入电平一至为高电平,也符合单片机的低电 平触发中断要求,有信号时,输出的编码信号取反,即引导码9ms高电平取反后为低电平,此时的引导码就可触发单片机中断来读取信号。08例子就采用中断方 式来读取信号,也可以用扫描的方式,但扫描的方式不适用,占用CPU资源大,不利于以后的开发设计,就有如4*4键盘也一样采用中断,有了中断响应 后,CPU才去处理信号,这样大大利用了CPU资源。有关的红外接收在这就简单的介绍下,有兴趣的朋友接着看例子8是如何进行解码的。