




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于51单片机的红外遥控解码报告一、 红外遥控技术简介经网上查询相关资料得知红外遥控技术分为发射与接收两部分,发射部分包括键盘,编码调制,红外发送器,而接收部分包含光电转换放大器,解调,解码电路。在本次任务中,主要是基于红外发射的相关规律以及51单片机的特点编写解码程序与显示程序。按编码分类红外遥控技术则分为两种,一种为NEG码,一种为RC5码,这里着重介绍NEG码。1、NEG码的相关特点NEG码格式特征如下:1、 使用38KHZ载波频率2、 引导码间隔9ms+4.5ms3、 使用16位客户码4、 使用8位数据码以及8位数据反码下面为相关特征波形:NEG码的数据帧构成:二进制0与1的表示方法:注:解码时接收码与发射码反相。2、RC5码的相关特点二进制0与1的表示方法: RC5码编码字举例:第一位是起始位S 通常是逻辑1。第二位是场位F通常为逻辑1,在RC5扩展模式下它将最后6位命令代码扩充到7位代码(高位MSB),这样可以从64个键值扩充到128个键值。第三位是控制位C 它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松手还是松手后重复按。(如图所示是同一按键重复按两次所得波形,只有第三位是相反的逻辑,其它的位逻辑都一样)其后是五个系统地址位,最后是六个命令位。二、 红外遥控的解码及设计思路这里采用基于NEG码的解码,使用VS_1838b红外一体化接收头,其结构图如下:l 3个引脚,Out、GND、Vccl 工作电压 Vcc 2.7 5.5 Vl 接收距离 L 18 20 Ml 载波频率 f =38k Hzl 低电平输出 VOL Vin=0V Vcc=5V 0.2 0.4 Vl 高电平输出 VOH Vcc=5V 4.5 V以下为发送码与接收码的对比:(上文提及的反相)收编码1001实例图:接收到的( VS_1838b 输出的)数据帧格式:注:数据输出低位(bit0)在前,高位(bit7)在后。遥控信号的解码算法及编程思路: 解码的关键是如何识别“0”和“1”,从位的定义可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。 解码过程具体如下:(1)初始化外部中断0(或者1)为下降沿中断。(2)进入外部中断服务程序,关闭外部中断。(3)对引导码进行判断。如果引导码正确,准备接收下面的一帧遥控数据,以查询方式判断遥控的数据是0还是1。如果非引导码,则退出外部中断。(4)先后依次接收地址码、地址反码、数据码、数据反码。(5)当接收到32位数据时,说明一帧数据接收完毕。比较数据码和数据反码,若数据码取反后与数据反码不同,则表示为无效数据,应放弃本次接收数据。(6)开启外部中断,准备下一次遥控接收。查询方式与上述过程中的(2)(5)一致,这里不再重复。三、 基于51单片机 的红外解码编程实现本次解码主要应用了开发板的单片机P0,P1输出,P3.2中断,红外接收管,74HC138译码以及数码管显示电路。程序实现的具体的流程如下:1、由红外接收数据帧,并将其按高低电平传至中断感应P3.2,由P3.2的接收信号用NEG码的特征延时进行判断,首先,看是否满足引导帧,若满足,则进行地址码与数据码的储存,其中0与1的判断按上文中的延时进行判别。若不满足引导帧,则跳出判断,继续主循环。2、在满足的情况下,数据存储完毕后进行数据的比较,即8位数据与8位反码的数据的比较,若满足互为反码,则数据正确,若不满足则数据无效,跳出判断,继续主循环。3、在数据有效的情况下进行数据的显示输出,这里采用十六进制的七段数码管显示,末位恒显示为H,由于十六进制与二进制的换算是四位一组,故而将8位数据分为两组,由于所用开发板共有八个数码管,故而仅用末三个,由138译码分别将其选出并显示。单片机开发板实物图如下:注:由于本次作业并未对红外遥控地址码有鉴别要求,故此编程不做相关讨论,若有需要可根据保存的地址数据进行比较判别继而选择数据是否有效即可。首先,对程序进行变量定义与中断初始化:继而进入主循环,在主循环里编写了相关转换与显示:至此主程序结束。在主程序中所涉及到的变量为全局变量,于程序头有定义:延时函数于中断程序中有应用,中断程序如下:以上为中断NEG引导码的识别,继而为16位地址码与8位数据码,8位数据反码的存储。数据存储完毕后对数据码以及数据反码进行校验,若互为反码,则数据有效,若不是,则数据无效舍弃。由于程序中涉及到的时间有9ms,4.5ms,0.56ms,1.685ms,为程序中调用延时程序计算与比较方便,此延时程序基础延时为0.14ms。以下附有调试成功的解码效果图:其中第一张为未收到信号解码图,由于默认的存储字符组为0,故显示为00H,下面两张为接收相应按键信号的解码图。四、 感想与体会附录:源代码#include#define POUT P0 /定义输出端sbit LSA = P10;sbit LSB = P11;sbit LSC = P12; /定义输出至138入口的输出端sbit IR = P32; /定义中断口表示unsigned char yima16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /0-F 显示字符unsigned char STORE4; /用来存放读取到的红外值void DelayMs(unsigned int ); /延时函数声明void main() /主程序int m,n; unsigned char DIS2;/用以中间换算显示IT0=1;/下降沿触发EX0=1;/打开中断0允许EA=1;/打开总中断IR=1;/初始化端口while(1) /主循环DIS0=STORE24;/高四位DIS1=STORE2&0x0f;/低四位 for(m=0;m3;m+) switch(m) case(0): LSA=1;LSB=1;LSC=1; POUT=0x76; break;/ 末尾显示H case(1): LSA=0;LSB=1;LSC=1; POUT=yimaDIS1; break; / 第七位显示第四位换算数值 case(2): LSA=1;LSB=0;LSC=1; POUT=yimaDIS0; break; / 第六位显示高四位换算数值 n=10;while(n-);/延时以清晰显示POUT=0; /清零void DelayMs(unsigned int x) /延时程序 0.14msunsigned char i;while(x-)for (i = 0; i0)/等待9ms的低电平过去 DelayMs(1);c-; if(IR=1)/如果正确等到9ms低电平c=40;while(IR=1)&(c0) /等待4.5ms的高电平过去DelayMs(1);c-;for(i=0;i4;i+)/共有4组数据for(j=0;j0)/等待信号前面的560us低电平过去DelayMs(1);c-;c=40;while(IR=1)&(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融行业演讲培训
- 福建省建瓯市芝华中学2026届化学九上期中学业质量监测试题含解析
- 校本培训特色亮点
- 2026届云南省昆明市石林县英语九年级第一学期期末经典模拟试题含解析
- 如何管理好案场
- 2026届南京市秦淮区四校化学九上期末联考模拟试题含解析
- 2025-2026学年统编版(2024)小学语文二年级上册(全册)每课知识点归纳
- 2026届江苏省镇江市润州区化学九上期中联考试题含解析
- 延庆区2025年度医师资格考试现场审核通知
- 2025年烧伤整形美容外科实习生出科考试试题及答案
- 2021年康平县工会系统招聘笔试试题及答案解析
- 一生一特长·一师一专长实施方案
- 游标卡尺的使用flash动画演示教学课件
- 汽车发动机电控系统实训工作页
- 矿山救援队伍训练大纲及考核要求
- 石油钻井用钻具培训讲义课件
- 管理层财务基础知识培训
- 整理词根词缀法初中英语学习
- 立式储罐重量表
- (高清版)建筑楼盖结构振动舒适度技术标准JGJ_T 441-2019
- 电气系统调试方案
评论
0/150
提交评论