基于单片机的红外解码数码管显示
- 格式:doc
- 大小:21.00 KB
- 文档页数:4
毕业论文(设计)论文(设计)题目:基于单片机的红外遥控解码器设计所属系别信息工程系专业班级 10大专电子信息工程技术2班姓 名学 号指导教师撰写日期 2013 年 4月本设计是一种以单片机和一体化红外接收器为核心,由单片机最小系统、通信模块、红外接收模块和液晶显示模块组成。
通过红外遥控接收头HS0038将光信号转变成电信号,经放大、解调、滤波后,将遥控脉冲波形送入单片机AT89S52中,利用相应的硬件滤波功能和软件滤波算法,对的输出信号进行信号识别、解码的实时动态处理,得到红外遥控器相应按键键码,单片机将得到的数据送入显示驱动电路,再通过LCD1602更直观的显示出来,实现单片机的红外解码。
经过解码后,可以将多种遥控器进行合成,实现一个遥控器控制多台电器设备。
即减少了遥控器的数量,同时又增强了遥控器的功能。
通过对电路的设计和实际调试,可以在液晶显示模块显示出来红外源码,从而验证了本设计是可行的。
关键词:AT89S52,红外接收HS0038,红外解码The design is a microcontroller and integrated infrared receiver as the core, from the smallest single-chip system, the communication module, the infrared receiving module and liquid crystal display module. Receiving head HS0038 the light signal is converted into electric signal through the infrared remote control, after amplification, demodulation, filtering, remote control pulse waveform into the SCM AT89S52, using the corresponding hardware filter and software filtering algorithm, the output signal of the signal recognition, real-time dynamic processing of infrared remote control decoding, obtained the corresponding key code, SCM will get data into the display driving circuit, and then through the LCD1602 display, infrared decoder chip. After decoding, can be a variety of remote controller synthesis, the realization of a remote control a plurality of electric equipment. Namely, reducing the number of remote control, and strengthen the function of the remote controller. Through the circuit design and debugging, in the liquid crystal display module display infrared source, which verified the design is feasible. Keywords: AT89S52, infrared receiver HS0038, infrared decoder1 引言 (1)2 总体设计方案 (1)2.1 方案论证 (1)2.2 总体设计框图 (1)3硬件电路设计 (2)3.1 单片机及其硬件电路设计 (2)3.1.1 单片机的介绍 (2)3.1.2 时钟电路及RC复位电路 (3)3.2 红外遥控器电路设计 (4)3.2.1 TC9012芯片介绍 (4)3.2.2 红外发射电路 (5)3.2.3 红外接收电路的设计 (7)3.3 1602液晶显示电路 (8)3.3.1 引脚功能说明 (9)3.3.2 指令说明 (9)4程序设计 (10)4.1 红外接收电路主程序流程图 (10)4.2 红外接收电路子程序流程图 (10)5结果分析与讨论 (12)5.1 测试仪器 (12)5.2 硬件调试的方法和过程 (12)5.3 软件调试问题及解决方法 (12)6总结 (13)参考文献: (14)致谢 (15)附录1: 系统电路原理仿真图 (16)附录2: 系统电路实物图 (17)附录3: 程序 (18)1 引言随着电子技术的发展,红外遥控器越来越多的应用到电器设备中,比如电视机、DVD机、空调、机顶盒甚至音响、热水器等都用到遥控器,而这些红外遥控器都是针对各自产品所设计的,从而导致了一般家庭中拥有数个遥控器,那么,能否将这些遥控器的功能进行复用,进而减少遥控器的数量,使遥控器的功能更加强大,就显得十分必要了。
开放实验报告课题名称基于单片机的红外解码器的设计学生姓名系、年级专业信息工程系、11、12级电子信息工程指导教师江世明2014年 5 月20日基于单片机的红外解码器的设计一.实验目的1、了解红外编码原理,模拟红外发射信号;2、用程序实现红外编码的解码;二.实验内容设计基于单片机的红外解码器,实现红外遥控信号智能解码,要求制作出实物,实现解码功能。
三.电路设计1、红外编码原理在实际应用中红外编码将二进制码调制到38MHz的载波频率上,通过在空中传播,由红外接收头接收之后,由内部的解调电路进行解调, 解调出来的就是我们发送的那些二进制码。
红外编码方式根据日本NEC 协议编码。
每次发送四个字节:用户码,用户反码,数据码,数据反码。
数据 0和 1的区别通常体现在高低电平的时间长短上。
一次按键首先发送9ms的低电平和4.5ms的高电平的引导码。
实际生活中,用遥控器发出的信号与上面的信号是相反的,经过红外线接收头解码以后就和上图一样了,值得大家注意的是发射模块的芯片不同,引导区的时间和数据都有所不同,但解决的方法都是一样的。
引导码后就是用户码。
但是怎么来区分0和1呢?前面我们提到了PWM(脉宽调制)。
根据脉冲的宽度来区别0和1.0.56ms低电平之后接0.56ms高电平为0,接1.12ms高电平为1.2、红外解码方法在实际生活中红外解码一般由红外接收头接收并解码。
解码时先跳过9ms 高电平和4.5ms的低电平,然后跳过0.56ms的低电平,最后通过循环等待搞电平的结束并计时。
通过判断高电平时间的长短来区分0(0.56ms)和1(1.12ms)。
最后判断接收到的四个字节(用户码,用户反码,数据码,数据反码)中数据码和取反后的数据反码相不相等。
3、红外编解码电路四、程序设计见附录五、系统仿真仿真分析:仿真照片如上图,当从4*4键盘按下K5时,单片机U1的数码管显示5,同时P3.0发送出如下图所示的脉冲。
上图包含了9ms高电平和4.5ms低电平的引导码和4字节(32位)的信息码,包括用户码(00000000),用户反码(11111111),数据码(00001001),数据反码(11110110)。
基于STC89C54单片机设计的红外解码数码管显示1.红外解码原理红外遥控器发送数据时,是将二进制数据调制成一系列的脉冲信号红外发射管发射出去,红外载波为频率38KHz的方波,红外接收端在收到38KHz的载波信号时,会输出低电平,否则输出高电平,从而可以将“时断时续”的红外光信号解调成一定周期的连续方波信号,再经过1838一体化红外接收头解调便可以恢复出原数据信号。
如图所示,我们可以通过单片机的定时器给红外接收管接收的每个点电平计时,并把每个点电平的时间存起来。
根据时间的不同来分辨是引导码、“0”还是“1”。
下面是我做的实验原理图上图式数码管显示原理图,下面是红外接收管与单片机的连接原理图。
注:上图的J27是和单片机的P3^2相连的。
程序中用到的定时器1、定时器0和外部中断0.下面是实验的C语言程序:/*-----------------------------------------------名称:遥控器红外解码数码管晶显示论坛:无编写:yang-baoan日期:2011.10修改:无内容:按配套遥控器按键,液晶显示4组码值,分别是用户码用户码数据码数据反码显示如下:1E1E00FF------------------------------------------------*/#include<reg52.h>//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit IR=P3^2;//红外接口标志#define DataPort P0//定义数据端口程序中遇到DataPort则用P0替换sbit LATCH1=P2^2;//定义锁存使能端口段锁存sbit LATCH2=P2^3;//位锁存unsigned char Tab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char TempWei[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};/*------------------------------------------------全局变量声明------------------------------------------------*/unsigned char irtime;//红外用全局变量bit irpro_ok,irok;unsigned char IRcord[4];unsigned char irdata[33];unsigned char TempData[8];/*------------------------------------------------函数声明------------------------------------------------*/void Ir_work(void);void Ircordpro(void);void Display(unsigned char FirstBit,unsigned char Num);/*------------------------------------------------定时器0中断处理------------------------------------------------*/void tim0_isr(void)interrupt1using1//using表示工作寄存器,后跟0—3个数分别表示工作寄存器组{irtime++;//用于计数2个下降沿之间的时间}/*------------------------------------------------外部中断0中断处理------------------------------------------------*/void EX0_ISR(void)interrupt0//外部中断0服务函数{static unsigned char i;//接收红外信号处理static bit startflag;//是否开始处理标志位if(startflag){if(irtime<63&&irtime>=33)//引导码TC9012的头码,9ms+4.5ms,此if语句只对下一条语句起作用i=0;irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1irtime=0;i++;if(i==33){irok=1;i=0;}}else{irtime=0;startflag=1;}}/*------------------------------------------------定时器0初始化------------------------------------------------*/void TIM0init(void)//定时器0初始化{TMOD|=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值TH0=0x00;//重载值TL0=0x00;//初始化值ET0=1;//开中断TR0=1;}/*------------------------------------------------外部中断0初始化------------------------------------------------*/void EX0init(void){IT0=1;//指定外部中断0下降沿触发,INT0(P3.2)EX0=1;//使能外部中断EA=1;//开总中断}/*------------------------------------------------定时器1初始化------------------------------------------------*/void Init_Timer0(void){TMOD|=0x10;//使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响TH1=(65536-2000)/256;//给定初值TL1=(65536-2000)%256;EA=1;//总中断打开ET1=1;//定时器中断打开TR1=1;//定时器开关打开}/*------------------------------------------------定时器1中断子程序------------------------------------------------*/void Timer0_isr(void)interrupt3{TH1=(65536-2000)/256;//重新赋值2ms TL1=(65536-2000)%256;Display(0,8);//调用数码管扫描}/*-----------------------------------------------------------数码管显示函数,动态扫描-----------------------------------------------------------*/void Display(unsigned char FirstBit,unsigned char Num) {static unsigned char i=0;DataPort=0;//清空数据,防止有交替重影LATCH1=1;//段锁存LATCH1=0;DataPort=TempWei[i+FirstBit];//取位码LATCH2=1;//位锁存LATCH2=0;DataPort=TempData[i];//取显示数据,段码LATCH1=1;//段锁存LATCH1=0;i++;if(i==Num)i=0;}/*------------------------------------------------键值处理------------------------------------------------*/void Ir_work(void){unsigned int t=200;TempData[0]=Tab[IRcord[0]/16];TempData[1]=Tab[IRcord[0]%16];TempData[2]=Tab[IRcord[1]/16];TempData[3]=Tab[IRcord[1]%16];TempData[4]=Tab[IRcord[2]/16];TempData[5]=Tab[IRcord[2]%16];TempData[6]=Tab[IRcord[3]/16];TempData[7]=Tab[IRcord[3]%16];irpro_ok=0;//处理完成标志}/*------------------------------------------------红外码值处理------------------------------------------------*/void Ircordpro(void)//红外码值处理函数{unsigned char i,j,k;unsigned char cord,value;k=1;for(i=0;i<4;i++)//处理4个字节{for(j=1;j<=8;j++)//处理1个字节8位{cord=irdata[k];if(cord>8)//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差value|=0x80;if(j<8){value>>=1;}k++;}IRcord[i]=value;value=0;}irpro_ok=1;//处理完毕标志位置1}/*------------------------------------------------延时函数,含有输入参数unsigned int t,无返回值unsigned int是定义无符号整形变量,其值的范围是0~65535------------------------------------------------*//*------------------------------------------------主函数------------------------------------------------*/void main(void){EX0init();//初始化外部中断TIM0init();//初始化定时器Init_Timer0();while(1)//主循环{if(irok)//如果接收好了进行红外处理{Ircordpro();irok=0;}if(irpro_ok)//如果处理好后进行工作处理,如按对应的按键后显示对应的数字等{Ir_work();}}}。
中国矿业大学徐海学院技能考核培训姓名:顾嘉诚学号: 22110818专业:信息11-2班题目:基于单片机的红外解码.温度及液晶显示专题:红外解码指导教师:宥鹏老师翟晓东老师设计地点:电工电子实验室时间: 2014 年 4 月通信系统综合设计训练任务书学生姓名顾嘉诚专业年级信息11-2班学号22110818设计日期:2014年4 月5日至2014 年4 月10 日同组成员:姜怀修,刘剑桥,顾嘉诚,彭传锁,何子豪,王业飞设计题目:基于单片机的红外无线控制设计专题题目:红外解码设计主要内容和要求:1.主要内容:2.单片机内部结构红外遥控解码C语言程序设Ds18b20的使用Lcd1602的使用2. 功能扩展要求环境温度液晶显示指导教师签字:目录正文 (5)1.概述 (5)1.1功能描述 (5)1.2单片机资源 (5)2.1管脚图 (5)3.1. 使用资源 (5)2.原理篇 (6)2.1红外发送及接收 (6)2.1.1红外接收概述 (6)2.1.2硬件及原理图 (7)2.1.3红外中断接收部分程序 (8)2.2温度原理 (9)2.2.1 DS18B20 的主要特性 (9)2.2.2原理图与硬件 (10)2.2.3 DS18B20时序和程序 (10)2.3 QC1602A (12)2.3.1 1602外部结构及管脚说明 (12)2.3.2 写命令/数据时序与部分程序 (13)3.效果图 (15)4.软件篇 (15)4.1程序框图 (15)4.1.1 Main函数 (15)4.1.2 中断 (16)4.1.3 60ms定时中断 (16)4.2 完整程序 (16)4.2.1 Project.c文件 (16)4.2.2 onewire.c 文件 (23)5.参考文献 (26)技能考核培训摘要:利用单片机所学内容进行拓展,我们实现了基于单片机的红外解码.温度及液晶显示。
Lcd液晶显示实时环境温度和接收显示红外遥控器的键值,在收到红外信号时会用蜂鸣器作为反馈,以提醒红外一体接收头有接到信号。
#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit wei=P2^4;sbit wei1=P2^5;sbit beep = P2^0;sbit sensor = P0^7;sbit sensor1= P0^6;uchar flag1; //定义全局变量,作为信号检测标志位uchar flag;void chuankou(uchar temp) //与上位机通信,波特率为1200bit/s { uchar table1[]={1,2};uchar m;PCON=0x00;SCON=0x50;TMOD=0x20;TH1=0xE6;TL1=0xE6;TR1=1;for(m=0;m<2;m++){SBUF=table1[temp];while(TI==0);TI=0;}}void delay(uint t){while(t--);}void Test_Voltage(void){if(sensor ==0&sensor1== 1){delay(10000); //延时50毫秒信号确定if(sensor == 0){flag1 = 1; //检测到信号}else{flag1 = 0;}}else{flag1=0;}}void action(void){if(flag1 ==1){wei=0xfe;P0 = 0X25; //数码管显示【2】beep = 0; //检测到信号后,蜂鸣器发出"滴答"声chuankou(1);delay(10000);beep = 1;delay(10000);wei=0xfd;}else{wei=0;P0 = 0X03; //数码管显示【0】}}void Test_Voltage1(void){if(sensor1 ==0&sensor==1){ delay(10000); //延时50毫秒信号确定if(sensor1 == 0){flag = 1; //检测到信号}else{flag= 0;}}else{flag= 0;}}void action1(void){ if(flag ==1){wei1=0xfe;P0= 0X9f; //数码管显示【1】beep =0; //检测到信号后,蜂鸣器发出"滴答"声chuankou(0);delay(10000);beep =1;delay(10000);wei1=0xfd;}else{wei1=0;P0 = 0X03; //数码管显示【0】}}void main(void){while(1){Test_Voltage();action();Test_Voltage1();action1();}}。
红外遥控解码+LCD1602显示完全资料【精】2009-2-9 10:03:00点击:458来源:作者:佚名红外遥控解码实验一.实验目的1. 了解红外遥控编码并用单片机捕捉信号及解码2. 熟悉LCD1602的驱动二.红外遥控器编码遥控器编码分好几种,常见的32位编码码和42位编码码,目前我手中遥控器就是42位编码,如图1所示,当有按键时就会产一个9.12ms低电平和4.5ms高电平的起始码,紧接着是26位系统码,此系统码能区别不同的电器设备,防止不同机种遥控码互相干扰,接下来是8位数据码和8位数据反码,间隔23ms的高电平后,再发一个与启始码完全一样的结束码:以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示:再回头看图1,大家不难看出,图1是遥控器按键1的一串编码三.硬件连接接收电咱我们使用一化红外接红外接收管1838,不需要任何外接无件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,实物如图所示:电路图如下:四.解码以上我们了解了红外遥控的编码及硬件连接,现在就对其进行解码,所谓解码就是能用单片机把以不同宽度的脉冲区别开来,一种比较好思路就是计算两次下降沿间隔时间,当单片机外部中断1口有下降沿时中断一次,并启动定时器,定时器定50us,当下次下降沿到来时我们计算定时器中断的次数,这样我们就能很好的区分不同宽度的脉冲了。
大家可能已经迫不急待的要开始解码了,别急,我们先把注意事项先讲一下,实际上,我们红外接收头收到的信号的是有毛刺的,放大后就如下图,所以在下降沿中断触发后,要做延时去抖处理:*************************************以下是完整解码程序********************************/***********************************************项目:红外遥控解码(EE01学习板演示程序)**作者:一线工人**网站:电子工程师之家**本程序适合42位码遥控器,即26位系统码,16位数据码,如:57L5,55K2,54B4,KD-29,55K8,5Z26A,等型号的遥控器,转贴请保持代码的完整性*********************************************/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit ir=P3^3;//红外端口sbit dm=P1^4;//数码管段码控制位sbit wm=P1^5;//数码管位码控制位sbit led_cs=P1^6;//LED控制位sbit rs=P3^5;//1602数据命令选择端sbit en=P3^4;//1602使能信号uchar num;uchar key_code=0;//遥控键值uchar new_code=0;//有无新按键uint buf_key_code=0;//键值暂存uchar key_bit_count=0;//键编码脉冲计数uint count=0;//定时中断次数计数uint buf_count=0;//定时中断计数暂存uchar common_code_count=0;//前导码脉冲计数uchar ir_status=0;//脉冲接收器所处的状态,0:无信号,1:系统码接收区,2:数据编码接收区uchar code table[]="EE01 DEMO:IR";uchar code table1[]="code:";uchar code table2[]={'0','1','2','3','4','5','6','7','8','9',};void delay_10us(unsigned char y)///延时子程序10us{unsigned char x;for(x=y;x>0;x--);}void delay_ms(uint z)//延时子程序1ms{uint x,y;for(x=z;x>0;x--)for(y=113;y>0;y--);}void init(void)/////初始化{ir=1; //红外端口写1led_cs=0; //关闭LEDEA=1; //开总中断TMOD=0x02; //定时器0,模式2,8位自动装载模式TH0=0Xd1; //定时50usTL0=0Xd1;IT1=1; //INT1下降沿触发ET0=1; //允许定时器中断EX1=1; //允许外部中断}/***********************************************定时器中断***********************************************/void time0() interrupt 1///定时器中断{count++;//定时器中断次数累加}/**********************************************外部中断,红外解码程序**********************************************/void int1() interrupt 2///外部中断{TR0=1;//开定时器中断if(count>12&&count<270)//如果信号合法,则放入buf_count,count清0,对下一个脉冲信号计时{buf_count=count;count=0;}delay_10us(10);//延时100us以消除下降沿跳变抖动if(ir==0)//INT1引脚稳定为低电平,则表法确实是信号,count重新计时,因上面延时了50us,故要补偿1次TO中断{count=2;}if(buf_count>12&&buf_count<270)//若收到的信号合法,则再进行信号分析{if(ir_status==0)//如果之前未收到引导码{if(buf_count>210&&buf_count<270)//判断是否引导码13.5ms{ir_status=1;//系统标记buf_count=0;//}}else if(ir_status==1)///收到引导码{if(common_code_count>=25)//若收完26个脉冲{ir_status=2;//数据解码标记common_code_count=0;//系统码计算清零buf_count=0;//中断计数暂存清0}else if((buf_count>40&&buf_count<70)||(buf_count>12&&buf_count<32)){buf_count=0;common_code_count++;//每收到一个信号自加1}}else if(ir_status==2)//进入数据编码接收{if(key_bit_count<8)//收到数据少于8位,则将收到的数据写入buf_key_code{if(buf_count>40&&buf_count<70){buf_count=0;buf_key_code>>=1;buf_key_code|=0x80;//收到1key_bit_count++;//数据脉冲累加}else if(buf_count>12&&buf_count<32)//收到0{buf_count=0;buf_key_code>>=1;//收到0key_bit_count++;}}else //若收完8位数据则做以下处理{ir_status=0;//接收状态返回到空闲key_code=buf_key_code;key_bit_count=0;buf_key_code=0;buf_count=0;TR0=0;new_code=1;}}}}/**********************************************1062驱动程序**********************************************/void wirte_cmd(uchar cmd)//写命令{rs=0;P0=cmd;en=1;delay_ms(5);en=0;}void wirte_data(uchar dat)//写数据{rs=1;P0=dat;en=1;delay_ms(5);en=0;}void wirte_string(const unsigned char *s)//在第二行第5个字开始写字符串{wirte_cmd(0x80+0x40+0x05);while(*s){wirte_data(*s);s++;}}void init_1602()///1602初始化{dm=0;wm=0;led_cs=0;wirte_cmd(0x38);delay_ms(5);wirte_cmd(0x0c);delay_ms(5);wirte_cmd(0x06);}/*************************************主程序*************************************/void main(){init(); ///初始化init_1602(); //1602初始化while(!new_code);//判断是否有新按键,如果有则执行下面程序,没有则一直循环wirte_cmd(0x01);//1602清屏delay_ms(5);wirte_cmd(0x80);//在第一行写入EE01 DEMO:IRfor(num=0;num<12;num++){wirte_data(table[num]);delay_ms(1);}wirte_cmd(0x80+0x40);//在第二行写入code:for(num=0;num<5;num++){wirte_data(table1[num]);delay_ms(1);}if(key_code<10)//如果按鍵小于10则写入相应的数字{wirte_data(table2[key_code]);delay_ms(2);}else if(key_code<50)//大于10则写入字符,与遥控器对应{switch(key_code){case 21:wirte_string("mute");break;case 28:wirte_string("power");break;case 10:wirte_string("-/--");break;case14:wirte_cmd(0x80+0x40+0x05);wirte_data(0x7f);wirte_data(0x7e);break;//先写字符位置,然后写字符,case 25:wirte_string("SLEEP");break;case 19:wirte_string("P.P");break;case 15:wirte_string("TV/AV");break;case 30:wirte_string("VOL-");break;case 31:wirte_string("VOL+");break;case 27:wirte_string("P+");break;case 26:wirte_string("P-");break;case 16:wirte_string("MENU");break;case 24:wirte_string("A-MODE");break;case 13:wirte_string("SYS");break;case 12:wirte_string("GAME");break;case 20:wirte_string("DISP");break;delay_ms(2);}new_code=0;}}。
53第2卷 第6期基于STC 单片机的红外解码测试仪设计钱小四(厦门建霖健康家居股份有限公司,福建 厦门 361000)摘要:很多家用电器都采用红外遥控作为短距离无线控制方式,文章采用STC 单片机作为核心解码控制器,通过其强大功能分析解码各种红外遥控器的数据,为遥控器厂家及产品设计人员提供一种可靠便捷的解码仪器,能极大的提高制造企业生产效率。
关键词:STC 单片机;红外解码;测试仪中图分类号:TP368.1;TN407 文献标识码:A 文章编号:2096-6164(2020)06-0053-021 红外解码测试仪概述红外解码测试仪是专门用于红外遥控器的数据解码测试仪器,不仅解码常用的NEC 、RC5等市场覆盖率高的协议的遥控器,还可以解码市场上常见空调协议如格力、海信、奥克斯、LG 等长数据的遥控器及其它自定义类型的家用电器红外遥控器;各种协议的解码精度都保持在3%的范围内,超出范围的不良产品均可以通过仪器筛选出;可支持40种以上红外遥控协议,同时也可以兼容无线通讯模块如2.4G 或蓝牙模块的解码测试,能极大提升遥控器生产厂家的生产检测效率,同时也为设计开发人员提供极其便利设计及检测的方法。
2 红外线原理特征描述红外线是波长在760 nm ~1 mm 之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。
红外通信一般采用红外波段内的近红外线,波长在0.75 um ~25 um 之间。
红外数据协会(IRDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在850 nm ~940 nm 之内。
作为无线局域网的传输方式,红外线方式的最大优点是不受无线电干扰,且它的使用不受国家无线管理委员会的限制。
中国遥控器产量占全球总产量的80%;遥控器制造业属于一个发展成熟及竞争激烈的行业,集中度较高。
国内遥控器企业目前大多停留在劳动力密集的代加工状态,受成本限制测试仪器使用率低、生产效率低下。