NEC协议载波:38khz

其逻辑1与逻辑0的表示如图所示:

逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us。所以我们根据脉冲时间长短来解码。推荐载波占空比为1/3至1/4。

NEC协议格式:

首次发送的是9ms的高电平脉冲,其后是4.5ms的低电平,接下来就是8bit的地址码(从低有效位开始发),而后是8bit的地址码的反码(主要是用于校验是否出错)。然后是8bit 的命令码(也是从低有效位开始发),而后也是8bit 的命令码的反码。

  以上是一个正常的序列,但可能存在一种情况:你一直按着1个键,这样的话发送的是以110ms为周期的重复码,如下图:

就是说,发了一次命令码之后,不会再发送命令码,而是每隔110ms时间,发送一段重复码。

重复码由9ms高电平和2.25ms的低电平以及560us的高电平组成。

需要注意的是:1838红外一体接收头为了提高接受灵敏度。输入高电平,其输出的是相反的低电平。

  搞了一个下午和晚上,NEC解码出来还是有点细微差错。查了很久,也没有收获。心里有点小郁闷。今早起来,仔细地看了看他人的参考代码。突然被下面一个小小的细节折服了。

请注意这段代码:

 1 void hal_NEC_decode(uchar *addr,uchar *addrt,uchar *comm,uchar *commt)
 2 {
 3     uchar i,j,k;
 4     uchar tmp1=0;
 5
 6     while(NECFinshFlag==0);
 7     NECFinshFlag=0;
 8
 9     for(i=0,k=1;i<4;i=i+1)
10     {
11         for(j=1;j<=8;j++)
12         {
13             if(NECTimerTable[k++] > 7)
14             {
15                 tmp1 |=0x80;
16             }
17             tmp1 >>=1;
18         }
19         switch(i)
20         {
21             case 0:*addr=tmp1;break;
22             case 1:*addrt=tmp1;break;
23             case 2:*comm=tmp1;break;
24             case 3:*commt=tmp1;break;
25         }
26         tmp1=0;
27     }
28 }

最后tmp1的值是被右移了1位。所以改为下代码

 1 void hal_NEC_decode(uchar *addr,uchar *addrt,uchar *comm,uchar *commt)
 2 {
 3     uchar i,j,k;
 4     uchar tmp1;
 5
 6     while(NECFrameFlag==0);
 7     NECFrameFlag=0;
 8
 9     for(i=0,k=1;i<4;i=i+1)
10     {
11         tmp1=0;
12         for(j=0;j<8;j++)
13         {
14             tmp1 >>=1;//事先右移一位,防止最后一次循环的出错
15             if(NECTimerTable[k++] >8)
16             {
17                 tmp1 |=0x80;
18             }
19         }
20         switch(i)
21         {
22             case 0:*addr=tmp1;break;
23             case 1:*addrt=tmp1;break;
24             case 2:*comm=tmp1;break;
25             case 3:*commt=tmp1;break;
26         }
27     }
28 }

  仅仅修改了这么一个代码顺序,程序就能比较完美的解析NEC协议来了。可见写程序,小小的细节也是非常重要,可能会牵扯到整个的成功。

  总结:以后编写按1bit(不管是从LSB还是MSB开始)接收组成一个字节的程序,要格外的注意循环左移或者右移的情况。实现将临时变量移动一下,免得最后1位还需要移动而造成的错误。

  最后附上NEC协议的命令码(市面上常见的遥控板)

转载于:https://www.cnblogs.com/yulongchen/archive/2013/04/12/3017409.html

红外协议之NEC协议相关推荐

  1. java关于NEC的红外解码_红外协议之NEC协议

    NEC协议载波:38khz 其逻辑1与逻辑0的表示如图所示: 逻辑1为2.25ms,脉冲时间560us:逻辑0为1.12ms,脉冲时间560us.所以我们根据脉冲时间长短来解码.推荐载波占空比为1/3 ...

  2. STC15系列 8系列解码红外遥控器(NEC协议)(12mhz)

    本次解码过程,使用[外部中断0],[定时器0]相互组合 废话少续,直接上源代码,只需要简单修改,即可完成配置 /*=========================================== ...

  3. 红外遥控c语言,NEC协议红外遥控器

    家电遥控器通信距离往往要求不高,而红外的成本比其它无线设备要低的多,所以家电遥控器应用中红外始终占据着一席之地.遥控器的基带通信协议很多,大概有几十种,常用的就有 ITT 协议.NEC 协议.Shar ...

  4. 【物联网毕设基础】单片机:NEC 协议红外遥控器

    文章目录 NEC 协议红外遥控器 NEC 协议红外遥控器 家电遥控器通信距离往往要求不高,而红外的成本比其它无线设备要低的多,所以家电遥控器应用中红外始终占据着一席之地.遥控器的基带通信协议很多,大概 ...

  5. 基于定时器捕获功能的红外解码程序(NEC协议)

    文章目录 前言 一.红外协议简介 1. ITT Protocol 2. NEC 协议 3. Nokia NRC17 协议 二.红外解码程序(NEC协议) 1. 软硬件环境及红外解码状态图 2. 基于定 ...

  6. 16.3 NEC协议红外遥控器

    家电遥控器通信距离往往要求不高,而红外的成本比其它无线设备要低的多,所以家电遥控器应用中红外始终占据着一席之地.遥控器的基带通信协议很多,大概有几十种,常用的就有 ITT 协议.NEC 协议.Shar ...

  7. STM32F4驱动NEC协议的红外接收头

    红外遥控是一种无线.非接触式控制技术,具有抗干扰能力强.传输可靠.价格便宜.功耗低.易实现等优点.被很多的家用电器所采用.目前常用的红外遥控器协议有NEC协议(PWM脉冲宽度调制).Philips R ...

  8. 红外遥控协议-NEC协议

    为方便理解所看到的波形是从红外接收管出来的信号,跟协议所说的信号高低(0或1)刚好相反. NEC协议是众多红外遥控协议的其中一种,除NEC外,还有RC5.RC6等其它的.市面上买到的非学习型万能电视遥 ...

  9. NEC协议——红外遥控的使用

    NEC协议是众多红外遥控协议的其中一种,下面以蓝桥杯的单片机开发板实现红外解码. 相关芯片与元器件介绍 此图为跳线帽的解法,在做红外通信时应接3,5:4,6. 此图左为红外发射装置和HX1838集成芯 ...

最新文章

  1. 实现WIFI客户端上网设置说明
  2. SSM框架前台传中文到后台乱码问题的解决办法
  3. 中关键字 表示空类型_C语言数据类型
  4. sql server模糊查询、分组
  5. mapinfo图层导入奥维_(通信技能分享)怎样把谷歌地球上画的路线图导入到测试软件中!...
  6. Python爬虫-- Scrapy框架
  7. #地形剖面图_备战中考 地理图表判读——地形剖面图
  8. 守望先锋游戏反外挂技术测评
  9. python excel行列转置_Excel 行列转换的最简方法
  10. 网站分析实战总结(一)
  11. java随机不重复点名_怎样用java做一个点名器,除重复,并且用键盘输入
  12. c# directory.getfiles按照文件名称
  13. 有关R星游戏(尤其是荒野大镖客玩家)二次验证码/两步验证/谷歌验证绑定相关问题
  14. 利用感知机实现鸢尾花分类问题
  15. 一些CSS兼容性处理写法汇总。
  16. 书桌台灯怎么选?分享儿童卧室灯品牌
  17. 论文文献引用规范和标准(国标GBT7714)@endnote国标样式@citation交叉引用编号
  18. JNI ---- JNA
  19. 【装机指南】显示器篇
  20. Rocky版新功能集锦之一:Magnum

热门文章

  1. 基于深度学习的NLP 32页最新进展综述,190篇参考文献
  2. 【工业4.0】深度报告:独家解密工业4.0真正图谋?跟踪软件帝国的十年
  3. DeepMind推出分布式深度强化学习架构IMPALA,让一个Agent学会多种技能
  4. 刷爆技术圈的《知识图谱》终于补货了,最后 968 份,低至 2 折,抢完不补!...
  5. 安谋中国发布“玲珑”i3i5 ISP处理器,剑指何方?
  6. 程序员版《我和我的家乡》,拼搏奋斗的IT人是家乡的骄傲!
  7. [CF1042F]Leaf Sets
  8. Fault,Error与Failure的联系与区别
  9. 探讨SQL Server 2005.NET CLR编程
  10. 五.获得MYSQL数据库自动生成的主键