NEC协议——红外遥控的使用
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协议——红外遥控的使用相关推荐
- 【物联网毕设基础】单片机:NEC 协议红外遥控器
文章目录 NEC 协议红外遥控器 NEC 协议红外遥控器 家电遥控器通信距离往往要求不高,而红外的成本比其它无线设备要低的多,所以家电遥控器应用中红外始终占据着一席之地.遥控器的基带通信协议很多,大概 ...
- 红外遥控c语言,NEC协议红外遥控器
家电遥控器通信距离往往要求不高,而红外的成本比其它无线设备要低的多,所以家电遥控器应用中红外始终占据着一席之地.遥控器的基带通信协议很多,大概有几十种,常用的就有 ITT 协议.NEC 协议.Shar ...
- 16.3 NEC协议红外遥控器
家电遥控器通信距离往往要求不高,而红外的成本比其它无线设备要低的多,所以家电遥控器应用中红外始终占据着一席之地.遥控器的基带通信协议很多,大概有几十种,常用的就有 ITT 协议.NEC 协议.Shar ...
- NEC红外协议编码,38K红外遥控编码,红外遥控发射接收电路选型设计
NEC为红外遥控最常用的编码,红外载波频率为38KHz,其协议小巧简单,非常适合家电设备的控制.其他的还有 Phillips(RCA)的RC-5和RC-6,但那只是IR协议的少数. 本篇博文参照国外博 ...
- 基于stm32f103红外遥控美的空调
一.红外nec协议 红外遥控的编码目前广泛使用的是:NEC Protocol的PWM(脉冲宽度调制)和Philips RC-5 Protocol的PPM(脉冲位置调制),而美的空调大多采用nec协议的 ...
- 基于定时器捕获功能的红外解码程序(NEC协议)
文章目录 前言 一.红外协议简介 1. ITT Protocol 2. NEC 协议 3. Nokia NRC17 协议 二.红外解码程序(NEC协议) 1. 软硬件环境及红外解码状态图 2. 基于定 ...
- arduino 的红外遥控解码
测试发现 遥控器的角度不一样 或者有反射 导致解析的码也不一样 程序 /** IRrecvDemo-LED* =====================功能说明================ ...
- 基于stm32的红外遥控
内容分三个部分: (1)红外遥控协议 (2)硬件连接 (3)代码 1.红外遥控协议 红外遥控是一种无线.非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备 ...
- 红外遥控协议-NEC协议
为方便理解所看到的波形是从红外接收管出来的信号,跟协议所说的信号高低(0或1)刚好相反. NEC协议是众多红外遥控协议的其中一种,除NEC外,还有RC5.RC6等其它的.市面上买到的非学习型万能电视遥 ...
最新文章
- 24小时轮播怎么实现的_轮播的实现方式
- Java I/O系统学习系列一:File和RandomAccessFile
- 微信小程序 html modal,微信小程序参考微信设计规范做的modal模态框
- (十)HTML5本地存储——SQLLite实现web留言本
- 谁最终需要Java模块?
- 哈哈,这个小游戏很有意思!
- SAAS产业趋势洞察——乘风破浪会有时
- Android--控件属性汇总
- WinForm下DataGridView导出Excel的实现
- iphone连上wifi却上不了网_我想问问为何我的手机连上家里的wifi,可以用,但是将网线连接路由器与主机电脑时,电脑却上不了网...
- 手动升级麦咖啡(McAfee)病毒库的步骤
- Linux 根分区扩容
- 驻云CEO教你0门槛搭建电商网站,精选产品组合限量神券 低价买
- 如何用公众号关联认证小程序
- Maven clean基本命令
- 测试适合眉形的软件_扫一扫测眉毛 测试适合眉型的软件
- matlab工具函数newp,常用的 MATLAB 神經網絡工具箱函數
- 转载 顺藤摸瓜:让盗号者得不偿失
- mnist 转换为record 使用tf data 转换 读取 训练
- uniapp项目中引入iconfont图标
热门文章
- 阿里云和中移物联网M5311的MQTT通讯
- python网络爬虫 抓取金融分析师名单
- centos7升级gcc,并安装redis
- pytorch构造可迭代的Dataset——IterableDataset(pytorch Data学习二)
- Jedis使用java连接Redis
- pandas查看两个series、list元素的包含关系(查看一个series的每个元素是否在另一个series中)
- xamppmysql访问被拒绝_XAMPP中无法开始MySQL的问题
- php自动裁剪黑边,视频画面裁剪怎么将视频四周的黑边去除?
- matlab有趣表白程序_小人表白MATLAB代码
- Activity基础