51单片机~红外通信工作原理

一. 红外接收原理







位定义:脉冲位置调制方式,用“0”和“1”的时间区分,在一小段脉冲中,位“0”表示0.56ms+("1"的时间)ms,而位“1”表示0.56ms+(“1”的时间)ms。由于“1”的时间不同,所以产生了“0”和“1”的区分
但是通常会产生误差,导致无法精确到某一毫秒,此时就产生“1"与”0“之间的一个分介点,比如0.56~1.57ms,分别是位“0”和位“1”的高电平1时长,此时可采取低于1ms位“0”,高于1ms位“1”来解决误差问题。

二。红外传输代码:

#include "reg52.h"typedef unsigned int u16;
typedef unsigned char u8;sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;sbit IRIN=P3^2;u8 IrValue[6];  //存储接收到的用户码,用户反码,数据码,数据反码
u8 Time;  //保存高电平时间
u8 DisplayData[8];
u8 code smgduan[17]={0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};
//0~F的显示码
/*延时函数*/
void delay(u16 i)
{while(i--);
}/*数码管显示*/
void DigDisplay()
{u8 i;for(i=0;i<3;i++){switch(i)  //位选{case 0:LSA=0;LSB=0;LSC=0;break;case 1:LSA=1;LSB=0;LSC=0;break;case 2:LSA=0;LSB=1;LSC=0;break;}P0=DisplayData[2-i];//发送数据delay(100);P0=0X00; //消隐}
}/*******红外初始化*******/
void Initred()
{IT0=1; //下降沿触发EX0=1; //打开中断0允许位EA=1;  //打开总中断IRIN=1; //初始化端口
}/*****中断函数******/
void RedInit() interrupt 0
{u8 j,k;u16 err;Time=0;delay(700);  //7ms//***起始信号判断***//if(IRIN==0)   //确认是否接收到正确信号{err=1000; //1000*10US=10ms,超过说明接收到错误信号/*当两个条件都为真,是循环,如果其中一个为假跳出循环,免得程序出错,死在这里*/while((IRIN==0)&&(err>0)) //等待前面9ms的低电平过去{delay(1);err--; }if(IRIN==1)  //9ms过去后,有4.5ms的高电平,此时要判断是否为高电平{err=500;while((IRIN==1)&&(err>0))  //如果是高电平,在等待4.5ms过去{delay(1);err--;}//***起始信号判断成功要开始接收四组数据***//for(k=0;k<4;k++){for(j=0;j<8;j++)//每一组但是八位数据{err=60;while((IRIN==0)&&(err>0))   //接收时要判断是位“0”还是位“1”{                           //等待信号前面的560us低电平过去delay(1);err--;}err=500;while((IRIN==1)&&(err>0))  //计算高电平时间长度{delay(10);  //0.1ms,表示Time每加一,时间经过0.1msTime++;err--;if(Time>30)  //所以这是判断是否超过3ms{return;}}IrValue[k]>>=1;  //k表示第几组数据if(Time>=8)      //同样,Time表示时间判断,是否>=0.8ms,如果高电平出现大于565us,那么是1{IrValue[k]|=0X80;}Time=0;   //用完时间要重新赋值}}}if(IrValue[2]!=~IrValue[3])  //数据码和数据反码的相反对比{return;   //若不相等则出错}}
}void main()
{Initred();while(1){DisplayData[0] = smgduan[IrValue[2]/16];DisplayData[1] = smgduan[IrValue[2]%16];DisplayData[2] = smgduan[16];DigDisplay();}
}

51单片机~红外通信工作原理相关推荐

  1. 51单片机红外通信及控制LED灯(LCD1602显示)

    51单片机红外通信及控制LED灯(LCD1602显示) 大家好,又和大家见面了,离上一次DS18B20传感器的文章已经过去了一个星期了,这期我将给大家带来,基于STC89C52芯片和HS0038红外接 ...

  2. 51单片机红外通信解码教程

    ** 下面先提供一段芯片手册 ** HT6221/2解码手册 下面我们对这个遥控器编写一个解码程序, 依照模块化设计的思想,逐个函数进行编写 因为波形是与时间相关联的,我们先编写延时函数 //函数功能 ...

  3. 51单片机串口通信原理、相关寄存器配置与简单串口收发程序代码

    目录 1. 串口通信原理 2. 51单片机串口通信 2.1 串口简要模式图 2.2 相关寄存器 (1)PCON.SCON.SBUF (2)IE.IPH.IP (3)配置T1定时器 2.3 波特率和系统 ...

  4. 51单片机串口通信模板_深入理解51单片机串口通信及通信实例

    串口通信的原理 串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 ...

  5. 51单片机串口通信模板_51单片机串口通信

    51 单片机串口通信 51 单片机串口通信(转载) 2009-03-03 18:22 一.串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计 算机端,而且也能实现计算机对单 ...

  6. 51单片机~串口通信(讲解+代码)

    51单片机~串口通信 (一)计算机串行通信原理: 综上:所以在设置的时候,经常将SCON设置为0X50==0101 0000 ,使用方式1. (二)工作: 中断控制 led灯,每发送一条指令灯亮或灭( ...

  7. 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)

    前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...

  8. 单片机搭建环境烧录方法_单片机仿真器的工作原理解析

    仿真器出现的原因 1.早期的单片机内部没有ROM,比如8031.8032,这种单片机只能外部扩展紫外擦除的EPROM存储器,就是芯片上带窗口的ROM.紫外擦除的ROM需要用紫外灯照射较长时间(10分钟 ...

  9. 单片机看门狗工作原理

    刚学习单片机的萌新都听说过单片机看门狗,但是对于其工作原理并不是很清楚,今天这篇文章将为大家介绍单片机看门狗工作原理,一起来了解一下吧! 一.单片机看门狗是什么 在由单片机组成的微型计算机系统中,单片 ...

  10. 51单片机红外电子密码锁【红外对管矩阵键盘数码管LCD1602显示模块】

    系统功能 51单片机红外电子密码锁系统主要由红外线编码电路.红外线解码开锁电路.掉电保护电路.声光提示报警电路.键盘及显示电路等组成,编写相应的程序代码并进行结果测试和仿真演示. 利用红外遥控技术和单 ...

最新文章

  1. python 替换array中的值_Python五个隐藏的特性,你可能从未听说过
  2. HDU 2037 今年暑假不AC
  3. [转]oracle中查询指定行数的记录
  4. iis php cgi.exe 漏洞,IIS4\IIS5 CGI环境块伪造0day漏洞
  5. ASP.NET Core MVC 源码学习:MVC 启动流程详解
  6. GStreamer 编写一个简单的MP3播放器
  7. linux nand 坏块_NAND Flash的坏块管理设计
  8. 学习老男孩linux全程班决心书
  9. HDU 5979 2016ICPC大连 I: Convex
  10. java字符串_Java字符串
  11. 所有关于php上传,关于php文件上传
  12. matlab 切割图像像素,matlab – 使用图形切割与种子点的图像分割
  13. Android菜鸟的成长笔记(23)——获取网络和SIM卡信息
  14. Java编程--如何突破程序员思维
  15. hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2
  16. 数据结构—顺序表基本操作(c语言代码)
  17. 测试苹果手机主板软件,iphone手机硬件检测工具使用方法
  18. k8s 服务注册与发现(二)Kubernetes内部域名解析原理
  19. 微软巨资收购Skype 网络电话行业受关注
  20. 图解网络:组建一个网络需要用到哪些硬件设备?

热门文章

  1. 【转录调控网络】基因转录调控网络——转录因子调控网络分析
  2. Zigbee 应用层协议自定义
  3. 此windows副本不是正版_阳光单职业传奇正版-阳光单职业传奇正版官网版v2.0
  4. python怎么创建桌面快捷方式_Python3创建RIDE桌面快捷方式的另一种方法
  5. 服务器系统开启telnet,Telnet怎么打开 Win7/Win8系统开启Telnet服务方法图解
  6. QWebEngineView崩溃及替代方案
  7. C/C++复习:向量的数量积
  8. 真假蜘蛛识别php,真假百度蜘蛛IP识别终极技巧:一学就会!
  9. 随机地址生成器_Python文章自动生成器火了!没错,它的名字叫“狗屁不通”!...
  10. 码农十分钟的音律概述 纯律 五度相生律 十二平均律