一.红外通信基础
1.红外线原理
红外线是波长在760nm~1mm之间的非可见光。红外通信装置由红外发射管和红外接受管组成,红外发射管是能发射出红外线的发光二极管,发射强度随着电流的增大而增大;红外接受管是一个具有红外光敏感特征的PN节的光敏二极管,只对红外线有反应,产生光电流。
2.信号调制原理
- 基带信号:从信号源发出没有经过调制的原始信号,特点是频率较低,信号频率从0开始,频谱较宽。
- 调制:就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程,即用一个信号去装载另一个信号。
红外遥控器使用38KB的载波对原始信号进行解调,原理如下
调制后产生一定频段的高低电平,但红外接收头接受到的信号和调制后的信号电平相反。
3.NEC协议
红外遥控由多种协议控制,这里介绍最主要,应用最广的NEC协议。NEC数据格式:引导码、用户码、用户码(或者用户码反码)、按键键码和键码反码,最后一个停止位。
- 引导码:9ms的载波+4.5ms的空闲。
- 比特值“0”:560us的载波+560us的空闲。
- 比特值“1”:560us的载波+1.68ms的空闲。
协议规定低位首先发送。一串信息首先发送9ms的AGC(自动增益控制)的高脉冲,接着发送4.5ms的起始低电平,接下来是发送四个字节的地址码和命令码。如果你一直按那个按键,一串信息也只能发送一次,一直按着,发送的则是以110ms为周期的重复码。
二.实验例程
1.实验原理
产生下降沿,进入外部中断0的中断函数,延时一下之后检IO口是否还是低电平,是就等待9ms的低电平过去。等待完9ms低电平过去,再去等待4.5ms的高电平过去。接着开始接收传送的4组数据先等待560us的低电平过去检测高电平的持续时间,如果超过1.12ms那么是高电平(高电平的的持续时间为1.69ms,低电平的持续时间为565us。)检测接收到的数据和数据的反码进行比较,是否等到的数据是一样的。
2.实验说明
本实验通过单片机控制红外接受设备接受红外发送设备发送的信号,并通过数码管的显示判断是否接受到信号。实验接线为JP10接J12,J6的A,B,C分别接P2.2,P2.3,P2.4。
3.源代码
/**************************************
> File Name: 红外通信原理
> Author: pengshp
> Mail: pengshp3@outlook.com
> Date: 2015年 7 月 27 日
***************************************/
#include<reg51.h>
#define GPIO_DIG P0
sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;
sbit IRIN = P3^2; //红外接收器位声明
unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,