基于51单片机的红外解码

基于51单片机的红外解码

ID:40643404

大小:3.09 MB

页数:12页

时间:2019-08-05

基于51单片机的红外解码_第1页
基于51单片机的红外解码_第2页
基于51单片机的红外解码_第3页
基于51单片机的红外解码_第4页
基于51单片机的红外解码_第5页
资源描述:

《基于51单片机的红外解码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于51单片机的红外遥控解码报告一、红外遥控技术简介经网上查询相关资料得知红外遥控技术分为发射与接收两部分,发射部分包括键盘,编码调制,红外发送器,而接收部分包含光电转换放大器,解调,解码电路。在本次任务中,主要是基于红外发射的相关规律以及51单片机的特点编写解码程序与显示程序。按编码分类红外遥控技术则分为两种,一种为NEG码,一种为RC5码,这里着重介绍NEG码。1、NEG码的相关特点NEG码格式特征如下:1、使用38KHZ载波频率2、引导码间隔9ms+4.5ms3、使用16位客户码4、使用8位数据码以及8位数据反码下面为相关特征波形:NEG码的数据帧构成:二进制0与1的表示方法

2、:注:解码时接收码与发射码反相。2、RC5码的相关特点二进制0与1的表示方法:RC5码编码字举例:第一位是起始位S通常是逻辑1。第二位是场位F通常为逻辑1,在RC5扩展模式下它将最后6位命令代码扩充到7位代码(高位MSB),这样可以从64个键值扩充到128个键值。第三位是控制位C它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松手还是松手后重复按。(如图所示是同一按键重复按两次所得波形,只有第三位是相反的逻辑,其它的位逻辑都一样)其后是五个系统地址位,最后是六个命令位。一、红外遥控的解码及设计思路这里采用基于NEG码的解码,使用VS_1838b红外一体化接收头,其结构

3、图如下:l3个引脚,Out、GND、Vccl工作电压Vcc2.7~5.5Vl接收距离L1820Ml载波频率f=38kHzl低电平输出VOLVin=0VVcc=5V0.20.4Vl高电平输出VOHVcc=5V4.5V以下为发送码与接收码的对比:(上文提及的反相)收编码‘1001’实例图:接收到的(VS_1838b输出的)数据帧格式:注:数据输出低位(bit0)在前,高位(bit7)在后。遥控信号的解码算法及编程思路:解码的关键是如何识别“0”和“1”,从位的定义可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所

4、以必须根据高电平的宽度区别“0”和“1”。解码过程具体如下:(1)初始化外部中断0(或者1)为下降沿中断。(2)进入外部中断服务程序,关闭外部中断。(3)对引导码进行判断。如果引导码正确,准备接收下面的一帧遥控数据,以查询方式判断遥控的数据是0还是1。如果非引导码,则退出外部中断。(4)先后依次接收地址码、地址反码、数据码、数据反码。(5)当接收到32位数据时,说明一帧数据接收完毕。比较数据码和数据反码,若数据码取反后与数据反码不同,则表示为无效数据,应放弃本次接收数据。(6)开启外部中断,准备下一次遥控接收。查询方式与上述过程中的(2)~(5)一致,这里不再重复。一、基于51单片

5、机的红外解码编程实现本次解码主要应用了开发板的单片机P0,P1输出,P3.2中断,红外接收管,74HC138译码以及数码管显示电路。程序实现的具体的流程如下:1、由红外接收数据帧,并将其按高低电平传至中断感应P3.2,由P3.2的接收信号用NEG码的特征延时进行判断,首先,看是否满足引导帧,若满足,则进行地址码与数据码的储存,其中0与1的判断按上文中的延时进行判别。若不满足引导帧,则跳出判断,继续主循环。2、在满足的情况下,数据存储完毕后进行数据的比较,即8位数据与8位反码的数据的比较,若满足互为反码,则数据正确,若不满足则数据无效,跳出判断,继续主循环。3、在数据有效的情况下进行

6、数据的显示输出,这里采用十六进制的七段数码管显示,末位恒显示为H,由于十六进制与二进制的换算是四位一组,故而将8位数据分为两组,由于所用开发板共有八个数码管,故而仅用末三个,由138译码分别将其选出并显示。单片机开发板实物图如下:注:由于本次作业并未对红外遥控地址码有鉴别要求,故此编程不做相关讨论,若有需要可根据保存的地址数据进行比较判别继而选择数据是否有效即可。首先,对程序进行变量定义与中断初始化:继而进入主循环,在主循环里编写了相关转换与显示:至此主程序结束。在主程序中所涉及到的变量为全局变量,于程序头有定义:延时函数于中断程序中有应用,中断程序如下:以上为中断NEG引导码的识

7、别,继而为16位地址码与8位数据码,8位数据反码的存储。数据存储完毕后对数据码以及数据反码进行校验,若互为反码,则数据有效,若不是,则数据无效舍弃。由于程序中涉及到的时间有9ms,4.5ms,0.56ms,1.685ms,为程序中调用延时程序计算与比较方便,此延时程序基础延时为0.14ms。以下附有调试成功的解码效果图:其中第一张为未收到信号解码图,由于默认的存储字符组为0,故显示为00H,下面两张为接收相应按键信号的解码图。一、感想与体会附录:源代码#include

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。