51单片机外设篇:红外通信
红外遥控
人机界面
当面操作的:按键、旋钮 / 触摸按键、触摸屏
遥控操作的:红外遥控、433M-2.4G无线通信、蓝牙-WIFI-Zigbee-4G-LoRa等无线网络红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出。
通信方式:单工,异步;
红外LED波长:940nm;
通信协议标准:NEC标准(常用)
接收端原理图:
一体集成式接收头内部已经内置了红外载波解调功能,从IRD引脚出来的就是通信的二进制信号。所以单片机的IO可以直接接IRD引脚来读取红外信号中的通信信息。所以38KHz的载波的调制和解调过程对编程是透明的。
红外接收头内部本身是有个反相的,意思就是:平时发送方无发送信号时接收到的是1,发送方有发送载波时接收头IRD引脚输出的是0,这对我们写代码有影响,后面在看协议时序图时刚好是反的。
原理概述
红外通信由发送端和接收端两部分组成,发送端对数据进行编码,然后调制成一系列的脉冲信号,然后通过带有红外发射管的发射电路发送脉冲信号,即红外信号。接收端完成对脉冲信号的接收、放大、检波、整形,然后解调出编码信号,对其解码获取到发送的数据。具体的如下图所示:
NEC协议
NEC协议逻辑1与逻辑0的表示如下图所示:
– 逻辑1为2.25ms,脉冲时间560us。
– 逻辑0为1.12ms,脉冲时间560us。根据脉冲时间长短来解码。推荐载波占空比为1/3至1/4。NEC协议格式如下图所示:
NEC协议中,首次是9ms的高电平脉冲,其后是4.5ms的低电平,接下来就是8bit的地址码(从低有效位开始发),而后是8bit的地址码的反码(主要是用于校验是否出错)。然后是8bit 的命令码(也是从低有效位开始发),而后也是8bit 的命令码的反码。
以上是一个指令码的序列,但当您长时间按住遥控按钮,在这这种情况下,使用NEC协议的红外遥控器将会发射一个以110ms为周期的重复码。也就是说,每一次用户按下遥控器按钮,遥控器在发送一次指令码后,就不会再发送指令码了,而是发送一段重复码。如下图:
重复码由9ms高电平和2.25ms的低电平以及560us的高电平组成,如下图所示:
需要注意的是:1838红外接收器为了提高接受灵敏度。输入高电平,其输出的是相反的低电平。
代码实现
#include "ir.h"// 全局变量在哪个C文件中用就在哪个C文件中定义 // 不能放在头文件中定义 // 如果在多个C文件中都要用到同一个全局变量,应该在一个主要的C文件中定义 // 然后其他C文件中extern声明即可 sbit IRIN = P3^2; unsigned char IrValue[5]; // IrValue的0-3用来放原始数据,4用来放经过校验确认无误的键值 unsigned char Time;void DelayMs(unsigned int x) //0.14ms误差 0us {unsigned char i;while(x--){for (i = 0; i<13; i++){}} }void IrInit(void) {IT0=1;//下降沿触发EX0=1;//打开中断0允许EA=1; //打开总中断IRIN=1;//初始化端口 }void ReadIr() interrupt 0 {unsigned char j,k;unsigned int err;Time = 0; DelayMs(40); // 136us*40if (IRIN == 0) //确认是否真的接收到正确的信号{ err = 1000; //1000*10us=10ms,超过说明接收到错误的信号/*当两个条件都为真时循环,如果有一个条件为假的时候跳出循环,免得程序出错的时侯,程序死在这里*/ while ((IRIN==0) && (err>0)) //等待前面9ms的低电平过去 { DelayMs(1); // 136userr--;} if (IRIN == 1) //如果正确等到9ms低电平{err = 500;while ((IRIN==1) && (err>0)) //等待4.5ms的起始高电平过去{DelayMs(1);err--;}for (k=0; k<4; k++) //共有4组数据{ for (j=0; j<8; j++) //接收一组数据{err = 60; while ((IRIN==0) && (err>0))//等待信号前面的560us低电平过去{DelayMs(1);err--;}err = 500;while ((IRIN==1) && (err>0)) //计算高电平的时间长度。{DelayMs(1);//0.14msTime++;err--;if (Time > 30){EX0 = 1;return;}}IrValue[k] >>= 1; //k表示第几组数据if (Time >= 8) //如果高电平出现大于565us,那么是1{IrValue[k] |= 0x80;}Time = 0; //用完时间要重新赋值 }}}if (IrValue[2] == ~IrValue[3]){IrValue[4] = IrValue[2];return;}} }
51单片机外设篇:红外通信相关推荐
- 51单片机学习篇-- --红外通信(PPM脉时)笔记
开篇先说一句废话···· 本旺名字叫萨摩耶,,Please 叫我旺财,,,哈哈,招财进宝嘛! 开篇 从学完帮网友写完<倒计时数字钟–矩阵按键可调>然后在CSDN上总结完之后,学习了剩下的模 ...
- 51单片机外设篇:点阵式LCD
什么是LCD LCD(Liquid Crystal Display)俗称液晶. 液晶是一种材料,液晶这种材料具有一种特点:可以在电信号的驱动下液晶分子进行旋转,旋转时会影响透光性,因此我们可以在整个液 ...
- 51单片机外设篇:蜂鸣器
蜂鸣器 蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音.报警音等提示信号. 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器: 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发 ...
- 51单片机外设篇:数码管
数码管简介 LED数码管:数码管是一种简单.廉价的显示器,是由多个发光二极管封装在一起组成"8"字型的器件.比如红绿灯. 单个数码管: 多个数码管: 这些引脚由对应的寄存器控制着, ...
- 单片机与PC机一样都是计算机,51单片机与PC机通信资料
<51单片机与PC机通信资料>由会员分享,可在线阅读,更多相关<51单片机与PC机通信资料(14页珍藏版)>请在人人文库网上搜索. 1.专业综合实习报告专 业: 电子信息工程 ...
- 51单片机tea5767收音机 红外遥控 自动搜台 存台 DIY
转自:https://www.cnblogs.com/ningci/p/5464679.html 日向宁次 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔- 55 文章- 0 评论- 1 5 ...
- 学习笔记之51单片机键盘篇(非编码键盘与编码键盘、非编码键盘的扫描方式、独立键盘、矩阵键盘)
这篇博文主要记录51单片机键盘篇(非编码键盘与编码键盘.非编码键盘的扫描方式.独立键盘.矩阵键盘.键盘消抖等)包含原理图.代码等 (一)基础补充 1.键盘的任务 2.键盘的识别 3.如何消除按键的抖动 ...
- 51单片机 ENC28J60 TCP/IP通信
51单片机 ENC28J60 TCP/IP通信 单片机:STC90C516RD+ ENC28J60模块:mini(3.3V供电) 设备:PC.开发板.两个网线.路由器 首先先介绍一下本文的移植针对于单 ...
- 红外报警c语言,基于51单片机的人体红外报警器程序设计
//51单片机简人体红外报警器设计,手动按键控制实现紧急报警.布防.撤防.关闭报警)// #include #define uchar unsigned char #define uint unsi ...
- 23、基于51单片机温控风扇红外遥控智能温度控制系统设计
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Proteus仿真 七.程序源码 八.资料包括 摘要 本设计为一种温控风 ...
最新文章
- Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=localhost_acce
- 2017-2018中国机器人创新Top100榜单深度分析
- Linux常用安全设置
- 前端开发中游览器的兼容问题总结
- webservice第一篇【介绍、Scoket、http调用、wsimport调用】
- 北上广深的请注意,阿里聚安全来找你玩啦~
- HDU1003:Max Sum(简单dp)
- agile java_《Agile Java》阅读笔记
- WIN10 VMWARE 虚拟机安装WIN10 64系统
- sklearn之PCA(主成分分析)
- 国二计算机考试office快捷键,全国计算机二级考试(Office)应试技巧
- jpg格式的矢量化arcgis_ArcGIS实践教程(11)图形的批量矢量化
- FPGA实现AM调制
- 小度总显示服务器连接失败,小度本地端口分配失败是什么意思
- 2021春深入理解计算机系统大作业---hello的一生
- html音乐播放心得体会,音乐欣赏心得体会
- 机器学习(十二):CS229ML课程笔记(8)——K-means,EM算法
- Whistle pc抓包,手机抓包,https抓包
- 区块链技术的安全价值与局限性解析
- 利用计算机实现对个别学习者,利用计算机实现对学习者进行个别指导的教学模式是基于( )理论。...