资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
单片机实现红外接收解码深圳 金雨和摘要:接收到红外遥控器的脉冲波形,并通过解析其脉冲波形得到红外遥控器相应按键键码,实现对相应设备的控制。本文详细介绍红外遥控技术原理及怎么通过使用 C51 单片机实现红外遥控,希望能为利用单片机进行红外开发的朋友提供些许帮助。关键词:红外信号,遥控器,C51 单片机,前导码,用户码,反码引言遥控器相信大家不会陌生,日常生活中会使用到各种各样的遥控器,比如电视机、DVD 机、空调、机顶盒甚至音响、热水器等都用到遥控器,其实红外技术已经走进与人们的生活并且与人们的生活息息相关了。红外遥控器作为设备的输入控制具有操作简便、价格便宜等诸多好处。您可以根据您公司产品需要和遥控器提供商协商定制遥控器,包括遥控器键盘布局、每个按键的键码等。遥控器键盘上每个按键的键码是一个小于 256 的一个数值,按键后通过遥控器红外管产生脉冲发送出去,红外接收器接收到脉冲后,对脉冲流进行分析,提取键码值,并按照键码值实现其遥控目的。红外遥控信号接收:红外接收电路可以使用集成接收器,接收器包括红外接收管及信号处理 IC,接收器对外只有三个引脚,一个接电源的 Vcc 脚、一个接地的 GND 脚、一个脉冲信号输出脚,当然脉冲信号输出脚直接接单片机的某个可以使用的 IO 脚就可以了。脉冲波形分析:每次按键,红外接收器这边会收到一串脉冲宽度不等的脉冲波形流,其脉冲流由 35 个脉冲波形构成:前导码:第 1 个脉冲波形用户码 1:第 2 到第 9 个脉冲波形用户码 2:第 10 到第 17 个脉冲波形键码:第 18 到第 25 个脉冲波形键码反码:第 26 到第 33 个脉冲波形连续按键脉冲:第 34 和第 35 个脉冲为结束脉冲(也即连续按键脉冲) ,在每次按键结束后会有两个结束脉冲,如果一直按键不放的话,会一直发送连续按键脉冲,并可以认为在收到 10 个连续按键脉冲后是下一个按键。注意:不同的遥控器产生的用户码值可能不一样,笔者碰到两种不同的用户码:0x00,0xFF 及 0x04,0x7F。脉冲流中有四种不同的脉冲波形宽度:其中前导码脉宽为:40(4ms) 脉冲宽度 50(5ms)连续按键脉宽为: 21(2.1ms) 脉冲宽度 25(2.5ms)bit 0 脉宽为: 3(0.3ms) 脉冲宽度 7(0.7ms)bit 1 脉宽为: 14(1.4ms) 脉冲宽度 19(1.9ms)在收到一串脉冲流后,就要对其进行分析,先要检测第一个脉冲波形是不是前导码,如果不是,则继续检测前导码,如果是则检测如下 32 个脉冲波形:用户码 1 为 1 字节,由 8 个脉冲波形组成(其中一个脉冲波形表示字节中 1 bit) ;用户码 2 为 1 字节;键值为 1 字节;键值反码为 1 字节,键值反码为键值取反值。先判断所收到用户码是否正确,如果不正确则丢弃此次所收键码,如果正确则利用键值反码取反与键值比较,判断收码是否正确,如果不正确则丢弃所收键码。如下图所示:从上图可以看出其用户码为:0b00100000-0b11111110 ,由于其低位在前,故转换后得到用户码为:0b00000100-0b01111111 ,即 0x04,0x7F ;其键码及键码反码为:0b00010010-0b11101101 ,同样也是低位在前,转换后得到键码及键码反码为:0b01001000-0b10110111 ,即 0x48,0xB7。实现:1、 初始化初始化时当然要先初始化单片机红外接收管脚为高阻输入状态,其次要初始化定时器,因为检测分析脉冲波形时需要用到定时器,根据上面对脉冲流波形分析可以知道最窄的脉宽为 bit “0”,为 0.3ms 左右,所以定时器最好定时为每 0.1ms 中断一次比较好,但是定时器的值怎么设置呢,这样根据单片机的振荡器决定。2、 脉冲波形分析首先当然是检测前导码,单片机红外接收管脚在初始化时已经设置为高阻输入状前导码:用户码:键码:结束码:态(即高电平状态) ,当有红外输入时,状态变为低电平状态,一旦检测到有低电平过来,则开始准备检测前导码。得到每个脉冲波形序号,并根据定时器统计出每个脉冲波形在高电平状态维持的时间,通过其时间值检测第一个脉冲是否是前导码,如果不是则重新检测前导码,如果是前导码则分析其后每个脉冲波形是 bit “0”,还是 bit “1”,并按顺序每八个波形为一个字节方式保存到用户码 1 字节变量、用户码 2 字节变量、键码字节变量、键码反码字节变量,直到收满 32 个 bits。3、 收码判断所收到的用户码是否正确、键码及键码反码是否正确,如果都正确则认为此次收码为正确收码,否则丢弃。收码完后,还会有结束脉冲波形,如果用户一直按住某个键不放,遥控器会一直发送连续按键脉冲波形,如果多次收到连续按键,可以认为再次收到键码,这个可以根据实际需要定。结束语:正确收到键码后,可以通过单片机的 IIC 通信方式将键码值发送给上层主控系统,真正实现上层对遥控命令的处理。联系人: 金雨和联系电话: 13066920405联系地址: 深圳市福田区深南中路竹子林求是大厦东座 1110 室邮政编码: 518040
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号