NEC协议是众多红外遥控协议的其中一种,下面以蓝桥杯的单片机开发板实现红外解码。

相关芯片与元器件介绍


此图为跳线帽的解法,在做红外通信时应接3,5;4,6。

此图左为红外发射装置和HX1838集成芯片,放大与接受于一体,可实现对红外线的解调。
此图右为一简单的红外发射装置,发出的红外线信号易受干扰,且无法实现与HX1838的通信,若要实现红外发射,必须加上高频载波(38KHz),可以用555定时器产生高频载波。(通信原理相关知识,我只了解皮毛……)

NEC协议的格式

首先来看NEC协议的典型脉冲链:
主要分为:
引导码----用户码(区分不同遥控器)----用户码反码----键码(键值)----键码反码
框图:

具体形式:

注意:由于在HX1838芯片解码时,输出管脚接受到的编码是红外线的编码的反码。

而具体的引导码形式和逻辑位的形式如下图所示:

按照上图,就可以写代码了!

代码实现及流程图

首先搬运流程图(来自https://blog.csdn.net/jiabao817/article/details/80568610)

注意读取一次数据的过程全部在一次外部中断中进行,P1.1口在接收到引导码的低位时拉低(与外部中断用杜邦线接上),便进入了外部中断,然后进行一系列的读数据操作。读高电平的时间和读低电平的时间分别用两个函数去实现,类似于超声波测距的方法,这里还需注意遇到异常情况要跳出中断。

//读取高电平时间
uint GetHighTime()
{TH1=0;TL1=0;TR1=1;while(IR_input){if(TH1>=0x40)break;}TR1=0;return (TH1*256+TL1);
}//读取低电平时间
uint GetLowTime()
{TH1=0;TL1=0;TR1=1;while(!IR_input){if(TH1>=0x40)break;}TR1=0;return (TH1*256+TL1);
}//外部中断的服务函数
void Int1_Service() interrupt 1
{uint time;uchar i,j;uchar byte=0;time=GetLowTime();if((time<7833)||(time>8755)){IE1=0;                    //清除外部中断,防止其再进入return;}time=GetHighTime();if((time<3686)||(time>4608)){IE1=0;return;}//连续读取四个字节的数据for(i=0;i<4;i++){for(j=0;j<8;j++){time=GetLowTime();if((time<313)||(time>718)){IE1=0;return;}time=GetHighTime();if((time>313)&&(time<718)){byte=byte>>1;}else if((time>1345)&&(time<1751)){byte>>=1;byte|=0x80;}else{IE1=0;return;}}Buf[i]=byte;byte=0;}}

(还有两个礼拜就要比赛了,然而我才刚开始准备……
最近事情是真的多,国赛题目都不一定能做完,蓝桥杯真的要随缘了……
这日子过得是真的迷茫,有苦却没法说……)

References:
https://blog.csdn.net/weixin_43444989/article/details/89302008
https://wenku.baidu.com/view/62e1bd7a02768e9951e738f3.html
https://blog.csdn.net/yannanxiu/article/details/26171705
https://www.cnblogs.com/openusb/archive/2010/01/07/1641357.html

NEC协议——红外遥控的使用相关推荐

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

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

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

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

  3. 16.3 NEC协议红外遥控器

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

  4. NEC红外协议编码,38K红外遥控编码,红外遥控发射接收电路选型设计

    NEC为红外遥控最常用的编码,红外载波频率为38KHz,其协议小巧简单,非常适合家电设备的控制.其他的还有 Phillips(RCA)的RC-5和RC-6,但那只是IR协议的少数. 本篇博文参照国外博 ...

  5. 基于stm32f103红外遥控美的空调

    一.红外nec协议 红外遥控的编码目前广泛使用的是:NEC Protocol的PWM(脉冲宽度调制)和Philips RC-5 Protocol的PPM(脉冲位置调制),而美的空调大多采用nec协议的 ...

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

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

  7. arduino 的红外遥控解码

    测试发现   遥控器的角度不一样  或者有反射  导致解析的码也不一样 程序 /** IRrecvDemo-LED* =====================功能说明================ ...

  8. 基于stm32的红外遥控

    内容分三个部分: (1)红外遥控协议 (2)硬件连接 (3)代码 1.红外遥控协议 红外遥控是一种无线.非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备 ...

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

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

最新文章

  1. 24小时轮播怎么实现的_轮播的实现方式
  2. Java I/O系统学习系列一:File和RandomAccessFile
  3. 微信小程序 html modal,微信小程序参考微信设计规范做的modal模态框
  4. (十)HTML5本地存储——SQLLite实现web留言本
  5. 谁最终需要Java模块?
  6. 哈哈,这个小游戏很有意思!
  7. SAAS产业趋势洞察——乘风破浪会有时
  8. Android--控件属性汇总
  9. WinForm下DataGridView导出Excel的实现
  10. iphone连上wifi却上不了网_我想问问为何我的手机连上家里的wifi,可以用,但是将网线连接路由器与主机电脑时,电脑却上不了网...
  11. 手动升级麦咖啡(McAfee)病毒库的步骤
  12. Linux 根分区扩容
  13. 驻云CEO教你0门槛搭建电商网站,精选产品组合限量神券 低价买
  14. 如何用公众号关联认证小程序
  15. Maven clean基本命令
  16. 测试适合眉形的软件_扫一扫测眉毛 测试适合眉型的软件
  17. matlab工具函数newp,常用的 MATLAB 神經網絡工具箱函數
  18. 转载 顺藤摸瓜:让盗号者得不偿失
  19. mnist 转换为record 使用tf data 转换 读取 训练
  20. uniapp项目中引入iconfont图标

热门文章

  1. 阿里云和中移物联网M5311的MQTT通讯
  2. python网络爬虫 抓取金融分析师名单
  3. centos7升级gcc,并安装redis
  4. pytorch构造可迭代的Dataset——IterableDataset(pytorch Data学习二)
  5. Jedis使用java连接Redis
  6. pandas查看两个series、list元素的包含关系(查看一个series的每个元素是否在另一个series中)
  7. xamppmysql访问被拒绝_XAMPP中无法开始MySQL的问题
  8. php自动裁剪黑边,视频画面裁剪怎么将视频四周的黑边去除?
  9. matlab有趣表白程序_小人表白MATLAB代码
  10. Activity基础