红外遥控NEC解码程序

红外遥控NEC解码程序
红外遥控NEC解码程序

//=============================//

/********************************

本解码程序完成于2017.07.29日,

看起来不难,却花了我很多心思。

今我愿与网友分享此代码,希望

能帮助跟我一样的初学者!!!

此代码中定时器使用的是STC89C52

的定时计数器2,位16位自动重装

定时器。此代码解码后解码数据显示

在串口工具上。

********************************/

//=============================//

/********************************

西安石油大学:王普

********************************/

//=============================//

#include

typedef unsigned char uchar;

uchar count;

ucharwedat[33];

uchardat[4];

bitreceive_flag , chuli_data_ok;

sbit bus=P3^2;

voidinit()

{

TMOD=0x22;//定时器1,0都是8位自动重装寄存器

RCAP2H=0xfe;

RCAP2L=0xff;

TH2=(65535-256)/256;

TL2=(65535-256)%256;

EA=1;

ET2=1;

IT0=1; //红外外部中断

EX0=1; //外部中断允许位

TH1 = 0xfd; //此溢出率为波特率9600

TL1 = 0xfd;

TR1 = 1; //启动定时器1

SM0 = 0;

SM1 = 1; //设置串口工作方式1,10位异步收发器

}

void timer0() interrupt 5

{

TF2=0;

count++;

}

void EX_INT0() interrupt 0 //红外遥控信号进入中断服务程序

{

static ucharnum; //静态变量,每次进入其值不变,num是每个脉宽的编号

static uchar flag,flag1; //辅助标志位

TR2=1; //当IT0下降沿发生,脉宽进入,打开定时器2

if(flag == 1) //第一次flag=0,不执行下面程序,直接出中断程序,下次进入执行{

if(( count < 60) && (count >= 40) ) //检测起始码宽度,符合条件进入

{

num=0; //起始码编号为0,存入数组中

flag1=1; //辅助标志位,用于进入下面程序

}

}

if(flag1==1) //第二次进入中断后将33和脉宽依次存入数组中,编号为0~32 {

wedat[num] = count; //读取T2定时器中断程序中的计数值

count = 0; //都去完成后,清零

num++; //编号++

}

flag=1; //第一次flag=0,第二次进入后为1,开始执行脉宽存储程序if(num> 32) //如果num大于32,也就是说33个脉宽都存入了,0~32,共33个。1位起始码,16位用户码,16位键码

{

receive_flag=1; //存储完成后标志位置1,用于主函数中判断

num=0; //编号清零,用于下次按键后,红外进入

flag=0; //辅助标志位清零

flag1=0; //辅助标志位清零

TR2=0; //关闭定时器T2,等待下次按键后,进入中断程序再次启动

}

}

void chulidata() //处理存储脉宽的数组

{

uchari,j,z=1,byte,temp; //此处z=1,是因为wedat[0]是起始码,z=1可以将起始码直接过滤

for( i=0 ; i<4 ; i++ ) //4个字节处理

{

for( j = 0 ; j < 8 ; j++ ) //8位依次处理

{

temp = wedat[z]; //将每个数组里的脉宽赋值给变量temp

if(temp > 6) //如果32个脉宽中哪个脉宽计数时间大于6,也就是1536us,那肯定就是1

{

byte = byte | 0x80; //如果是1,那就给byte的最高位置1

}

if( j < 7 ) //如果一个字节还没处理完

{

byte = byte >> 1; //每次循环到这里,byte的每一位都右移一位,也就是最高位移到次高位,最终数据由最高位进,最终在最低位

}

z++; //每处理完一个字节,序号Z++,共处理4个字节}

dat[i] = byte; //将byte赋值,依次给dat[0],dat[1],dat[2],dat[3]

byte = 0; //byte清零;

}

chuli_data_ok = 1; //4个字节接收完毕标志位,用于主函数判断

}

void main()

{

uchari;

init();

while(1)

{

if(receive_flag) //判断是否接收并储存脉宽完毕

{

chulidata(); //处理数据

receive_flag=0; //标志位置0

if(chuli_data_ok) //如果4个字节数据处理完成

{

for(i=0;i<4;i++) //将四个字节的数据上送给串口,可用串口工具读取

{

SBUF=dat[i]; //依次上送

while(!TI); //是否上送完毕

TI = 0; //将传送成功标志位置0

}

chuli_data_ok=0; //标志位置0

}

}

}

}

红外遥控信号的解码

红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、V CD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。

图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反) 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 图4 遥控连发信号波形 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据

基于51单片机的红外遥控器设计

天津职业大学 二○一五~二○一六学年第1学期 电子信息工程学院 通信系统综合实训报告书 课程名称:通信系统综合实训 班级:通信技术(5)班 学号:1304045640 1304045641 1304045646姓名:韩美红季圆圆陈真真指导教师:崔雁松 2015年11月17日

一、任务要求 利用C51单片机设计开发一套红外线收发、显示系统。 具体要求: ●编写相关程序(汇编、C语言均可); ●用Proteus绘制电路图并仿真实现基本功能; ●制作出实物 二、需求分析(系统的应用场景、环境条件、参数等) 现在各种红外线技术已经源源不断进入我们的生活中,在很多场合发挥着作用。 机场、宾馆、商场等的自动门,会在人进出时自动地开启和关闭。原来,在自动门的一侧有一个红外线光源,发射的红外线照射到另一侧的光电管上,红外线是人体察觉不到的。当人走到大门口,身体挡住红外线,电管接收不到红外线了。根据设计好的指令,触发相应开关,就把门打开了。等人进去后,光电管又可以接到红外线,恢复原来的线路,门又会自动关闭。因此这种光电管被称为“电眼”,在许多自动控制设备中大显身手。 在家庭中,许多电子设备如彩色电视、空调、冰箱和音响等,都使用了各种“红外线遥控器”。利用它我们可以非常方便的转换电视频道或设定空调的温度档次。 三、概要设计(系统结构框图/系统工作说明流程图) 红外线收发、显示系统硬件由以下几部分组成:红外遥控器,51单片机最小系统,接收放大器一体集成红外接收头,LED灯显示电路。 红外线接收是把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。这些工作通常由一体化的接收头来完成,输出TTL兼容电平。最后通过解码把脉冲信号转换成数据,从而实现数据的传输。 红外遥控系统电路框图

38K红外遥控解码

#include #define uint08 unsigned char #define uint16 unsigned int sbit IR=P3^2; uint08 a[4],k,IR_number; uint16 x; void init_int0_time0() //外部中断0与定时器中断0初始化函数 { TMOD=0x01; //定义定时中断0在模式1 TH0 =0x00; //0000 0000 TL0 =0x00; //0000 0000 TR0 =1; ET0 =1; //打开定时中断0 IT0 =1; //边沿触发 EX0 =1; //打开外部中断0 EA =1; //打开总中断 } void int0() interrupt 0 { x=TH0*256+TL0; //读取两次中断时间差 TH0=0; TL0=0; //恢复寄存器,准备下一次读数 if(12000<=x&&x<=15000) //判断IR开始信号 k =0; else if(1000<=x&&x<=2500) //判断IR信号为0/1 { a[k/8]=a[k/8]>>1; if(2000<=x&&x<=2500) a[k/8]|=0x80; k++; } if(k==32&&a[2]==~a[3]) //判断读取的数据是否正确 { IR_number=a[2]; } } void time0(void) interrupt 1 //定时器0 { } 说明:a[0],a[1]为用户码,a[2]为红外遥控信号数据,a[3]为a[2]的反码,应用时在“IR_number=a[2];”这条语句前面加个判断用户码是否正确的语句,然后在主函数中读出IR_number就可以了,目的是提高解码的准确度,减少误差。

红外遥控原理及解码程序

红外遥控系统原理及单片机 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC 的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、VCD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周

期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反)上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。

万能红外遥控解码模块【精选】

https://www.360docs.net/doc/925361621.html,/item.htm?id=7693624806 该模块采用5V电源供电,可以完成目前应用最广泛的多种红外遥控编码的解码,包括飞利浦(RC5)编码(典型编码芯片如SAA3010及兼容芯片如PT2210 等)和NEC编码(典型编码芯片如uPD6121,uPD6122, TC9012 )以及众多的兼容芯片型号,(如PT2221, PT2222, SC6121, SC6122,SC9012 等等),采用该模块,可以缩短开发时间,节约CPU 资源,降低总体成本。 特点 ●使用简单、可靠 ● 支持多种编码 ● 兼容SPI 及UART(波特率9600)的串行输出 ● 采用数字滤波技术,高抗干扰,无误码 ● 接收有效指示输出 ● 工业级温度范围 储存温度-65至+150℃ 工作温度-40至+85℃ 任意接口对地电压-0.3至6V 红外编码介绍 目前应用于家电等领域的红外线遥控装置,并没有统一的国际标准,目前市场上所见的红外线遥控编码芯片,超过10 种之多,分别由飞利浦公司、NEC 公司、SONY 公司、东芝公司、三菱公司、JVC 公司等生产,使用的编码方式各不相同。目前应用最广泛、兼容产品最多的,是飞利浦公司(RC5编码)的和NEC 公司的编码芯片。本模块可以完成这两种格式编码的解码工作。 RC5 编码: RC5 编码由飞利浦公司推出,其编码芯片有SAA3010,SAA3006 等,是应用很

广泛的一种编码方式。 RC5 编码采用双相位编码方式,用不同相位分别代表“0”和“1”。传送每一位的时间固定为1.778mS。 每一个指令包括1.5bits 的起始位(2 个逻辑1),1 个翻转位,5 位系统码(地址码),以及6 位命令码(键码),因此,最多可以支持64 个键。 翻转位在每次有新的按键按下去的时候翻转一次,这里指的新按键,也包括同一个键抬起后再次按下的情况。如果某个键持续按下,则编码芯片会不断地重复发送同样的数据。翻转位保持不变。而如果该键中途抬起后再次按下,则再次按下后所发送的数据中的翻转位发生翻转,其它数据保持不变。 NEC 编码: NEC 编码由NEC 公司推出,其典型编码芯片为uPD6121,uPD6122,除了NEC 公司的产品,市场上还有大量与之相兼容的产品,如PT2221, PT2222, SC6121, SC6122,SC9012 等等。是应用最广泛的一种编码方式。 该编码方式采用脉冲位置编码方式,利用脉冲间的时间间隔来区分“0”和“1”。 每个指令包括32 位数据,包括16 位的用户码、以及8 位键数据码和键数据码的反码。因为具有反码可以作为校验的依据,因此该种编码方式具有很低的误码率。理论上该编码方式可以支持256 个键,实际的编码芯片一般可支持64 个

红外遥控控制系统设计

河南科技学院机电学院单片机课程设计报告 题目:红外遥控控制系统设计 专业班级:电气工程及其自动化103 姓名:张明军 时间:2012.12.15 ~2012.12.28 指导教师:田丰庆邵锋张素君完成日期:2012年12月28 日

红外遥控控制课程设计任务书 1.设计目的与要求 设计出一个用于红外遥控控制的控制器。准确地理解有关要求,独立完 成系统设计,要求所设计的电路具有以下功能: (1)有效遥控距离大于10米。 (2)遥控控制的路数在5路以上。 (3)采用数码管显示当前工作的控制电路。 (4)通过遥控器可以任意设置用户密码(1-16位长度),只有合法用户才能有修改电路控制的功能,同时系统掉电后能自动记忆和存储密码在系统中。 (5)密码的输入时间超过12秒或者连续3次输入失败,声音报警同时锁定系统,不让再次输入密码。此时只有使用管理员密码方能对系统解锁。 2.设计内容 (1)画出电路原理图,正确使用逻辑关系; (2)确定元器件及元件参数; (3)进行电路模拟仿真; (4)SCH文件生成与打印输出; 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。 论文结构清晰,层次分明,理论严谨

目录 1引言 (1) 2总体设计方案 (2) 2.1 设计思路 (2) 2.2设计方框图 (3) 3设计原理分析 (4) 3.1发射电路设计 (4) 3.2接收电路设计 (7) 3.3 软件设计 (9) 4 结束语 (12) 参考文献 (13) 附录一 (14) 附录二 (15)

红外遥控控制系统 摘要:本设计由发射器和接收器两部分组成。指令键、指令信号产生电路、调制电路、驱动电路及红外线发射器组成。当指令键被按下时,指令信号产生电路便产生所需要的控制信号,控制指令信号经调制电路调制后,最终由驱动电路驱动红外线发射器,发出红外线遥控指令信号。 接收器由红外线接收器件、前置放大电路、解调电路、指令信号检出电路、记忆及驱动电路、执行电路组成。当红外接收器件收到发射器的红外指令信号时,它将红外光信号变成电信号并送到前置放大电路进行放大,再经过解调器后,由信号检出电路将指令信号检出,最后由记忆电路和驱动电路驱动执行电路,实现各种操作。 控制信号一般以某些不同的特征来区分,常用的区分指令信号的特征是频率和码组特征,即用不同的频率或者编码的电信号代表不同的指令信号来实现遥控。所以红外遥控系统通常按照产生和区分控制指令信号的方式和特征分类,常分为频分制红外线遥控和码分制红外线遥控。 关键词:4×4矩阵键盘;AT89C51;接收器件;震荡特性 1 引言 红外线遥控是目前使用很广泛的一种通信和遥控技术。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可*而且能有效地隔离电气干扰。 远程遥控技术又称为遥控技术,是指实现对被控目标的遥远控制,在工业控制、航空航天、家电领域应用广泛。红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备广泛采用,并越来越多的应用到计算机系统中。红外线又称红外光波,在电磁波谱中,光波的波长范围为 0.01um~1000um 。根据波长的不同可分为可见光和不可见光,波长为0.38um~0.76um 的光波可为可见光,红外线遥控是利用近红外光传送遥控指令的,波长为0.76um~1.5um 。用近红外作为遥控光源,是因为目前红外发射器件( 红外发光管 ) 与红外接收器件 ( 光敏二极管、三极管及光电池 ) 的发光与受光峰值波长一般为 0.8um~0.94um ,在近红外光波段内,二者的光谱正好重合,可获得较高的传输效率及较高的可靠性。随着远程教育系统的不断发展和日趋完善,利用多媒体作为教学手段各级各类学校都得到了广泛应用。但经常会遇到同时使用多种设备,如: DVD 、 VCD 、录像机、电视机等,由于各种设备都自带遥控器,而且不同的设备所遵循的红外传输规约也不尽相同,操纵这些设备得用多种控器,给使用者带来了诸多不便。基于单片机的控制指令来对多种设备进行远程控制,从而方便快捷的实现远程控制。红外遥控的特点是不影响周边环境的、于10 米)遥控中得到了广泛的应用。

基于单片机的红外解码.温度及液晶显示

中国矿业大学徐海学院 技能考核培训 姓名:顾嘉诚学号: 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)

红外遥控接收程序

#include "remote.h" UINT IrCode; //高8位为系统码,低八位为数据码 /*************************************************************************** *FUNCTION NAME: DelayIr *CREATE DATE: 2012/6/7 *CREATED BY: XS *FUNCTION: IR采样延时:0.14ms *MODIFY DATE: 2012/6/7 *INPUT: 无 * *RETURN: 无 ***************************************************************************/ void DelayIr(UCHAR timer) { UCHAR i; while(timer--) { for (i = 0; i<13; i++); } } /*************************************************************************** *FUNCTION NAME: RemoteDecode *CREATE DATE: 2012/6/7 *CREATED BY: XS *FUNCTION: IR遥控解码 *MODIFY DATE: 2012/6/7 *INPUT: 无 * *RETURN: 无 ***************************************************************************/ void RemoteDecode(void) { UCHAR i,j,n = 0; UCHAR irDat[4] = {0}; EX0 = 0;

红外遥控解码原理

红外线遥控器解码原理 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。

UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G 最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码 (9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。 代码格式(以接收代码为准,接收代码与发射代码反向) ①位定义 ②单发代码格式 ③连发代码格式 注:代码宽度算法: 16位地址码的最短宽度:1.12×16=18ms 16位地址码的最长宽度: 2.24ms×16=36ms 易知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms ∴32位代码的宽度为(18ms+27ms)~(36ms+27ms)

最简单详细的红外解码程序

#include //包含头文件名 sbit IRIN=P3^2; //定义红外接收头的外部接口,即外部中断0 sbit BEEP=P1^5; //定义蜂鸣器接口,我的在P1^5 unsigned char IRCOM[7]; //定义数组,用来存储红外接收到的数据 void delay(unsigned char x) { //延时子程序unsigned char i; //延时约x*0.14ms while(x--) //不同遥控器应设置不同的参数

{for(i=0;i<13;i++){}} //参数的选择咱们先不管,先看这个 } void beep() { unsigned char i; //蜂鸣器发声子程序 for(i=0;i<100;i++) { delay(4); //这个得看你的蜂鸣器内部是否有振荡源 BEEP=~BEEP; } //如果没有振荡源就应该输入脉冲信号 BEEP=1; }

void IR_IN() interrupt 0 using 0 //外部中断0程序 { unsigned char j,k,n=0; //先定义变量,记住n=0 EX0=0; //禁止中断,以免再次进入中断 delay(15); //延时0.14ms*15=2.1ms if(IRIN==1) //如果在这期间有高电平说明 { //信号不是来自遥控的,返回主程序 EX0=1; return; } while(!IRIN){delay(1);} //死循环,等待9ms前导低电平信号的结束for(j=0;j<4;j++) //一共有4组数据

课程设计-红外遥控开关(完整版附程序)

2008届计算机与信息学院 计算机科学与技术专业 一.课程设计题目:红外遥控开关 二.课程设计任务内容 1.课程设计的目的意义: 通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练: ⑴、调查研究、分析问题的能力; ⑵、使用设计手册、技术规范的能力; ⑶、查阅中外文献的能力; ⑷、制定设计方案的能力; ⑸、计算机应用的能力; ⑹、设计计算和绘图的能力; ⑺、技术经济指标的分析能力; ⑻、语言文字表达的能力。 2.本课题研究的主要内容: 设计一个多路红外遥控开关,利用市售彩电遥控器(以编码芯片LC7461为例),发送遥控器键盘数字信号,控制器接收解码,控制相应的输出。 基本要求: ⑴、设计实验电路(要求利用实验仪的硬件资源) ⑵、分析实验原理 ⑶、列出实验接线表 ⑷、采用汇编语言编写实验程序 ⑸、通过实验验证功能的实现 ⑹、编写课程设计说明书

红外遥控技术的出现,大大方便了人们的生活,而单片机技术的出现,给现代工业测控领域带来了一次新的革命。红外线遥控器具有体积小、功耗低、功能强、成本低等特点从而成为了当今非常流行的一种控制方式,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 红外遥控器是一种利用红外遥控系统来控制被控对象的系统.整个系统由数字电路和模拟电路两个部分组成。发射部分包括键盘矩阵、编码调制、红外发射器;接收部分包括红外接收、解调、解码电路。 关键字:红外遥控器,红外发射,红外接收,单片机

红外遥控编解码全攻略

-DYDIY- 红外遥控编解码全攻略 作者:杜洋 2005-9-26 红外遥控器的解码并对电器进行遥控一直是广大单片机爱好者的一个心愿。自己动手实现红外遥控电器也是大家单片机学习提高的一个重要的实验。现在网上关于红外线遥控器的解码的资料和文章很多,可是我在半年前学习红外遥控的解码时可是费了不少的力气。因为网上大部分资料和源程序都是针对某一种的红外遥控进行说明,只有买了和文章中一样的遥控器才可以继续实验。而且网上很少有遥控器的编码资料(用单片机模拟红外遥控器),经过了半年的学习与实践现在终于对红外遥控信号的编解码有了一个微薄的认识,在止写成文章希望对初学红外遥控的朋友有一定的帮助,更渴望有深入了解这方面的高手批评指正,谈谈自己的理解与看法,我就算是抛砖引玉了。呵呵! 红外遥控器的解码: 大部分的红外遥控的解码资料都是采用串口或是利用一个专用的单片机解码电路取码,前者的制作麻烦而且还要有专用的软件支持。后者则必须单独做一块解码板,而且一般只对某一种或一类的红外遥控器有效。而我有一种方法,只用一条不需要电路板的接线,用声卡测出红外遥控的波型。经过了长时间的使用效果很好,而且不仅对各种红外遥控的解码,还可以对无线通信或各种低波特率的编码进行分析,相当一个高级的试波器。 红外遥控器声卡波形解码一法: 采用我的解码方法需要以下的条件: 1,一台有MIC输入的声卡的电脑。 2,一条制作好的红外转换线(自己制作,以下有介绍) 3,安装高级音频编辑软件COOL EDIT PRO 2.0(各大下载网均有破解版下载) 红外遥控协议说明: 一般的,红外遥控的编码由前导码、地址码和数据码组成。而且有比较精准的时序要求。遥控码的发射由38KHZ或40KHZ的载波信号,由信号的时间长度来表示二进制数据。遥控的协议表示方法很多,下面是几种典型的例子:1, 1 E-mail:dydiy@https://www.360docs.net/doc/925361621.html,

51单片机红外解码程序

51单片机红外解码程序 1、红外遥控系统 通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。 发射部分包括键盘矩阵、编码调制、LED红外发送器; 接收部分包括光、电转换放大器、解调、解码电路。 下面,我们将使用下面两种设备: 另外,使用51单片机进行解码。 2、原理图

从原理图看出,IR的data脚与51的PD2(P3.2)相连。 2、红外发射原理 要对红外遥控器所发的信号进行解码,必须先理解这些信号。 a) 波形 首先来看看,当我们按下遥控器时,红外发射器是发送了一个什么样的信号波形,如下图: 由上图所示,当一个键按下超过22ms,振荡器使芯片激活,将发射一组108ms 的编码脉冲(由位置1所示)。如果键按下超过108ms仍未松开,接下来发射的 代码(连发代码由位置3所示)将仅由起始码(9ms)和结束码(2.5ms)组成。 下面把位置1的波形放大:

由位置1的波形得知,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(用户编码)(9ms~18ms),高8位地址码(用户编码)(9ms~18ms),8位数据码(键值数据码)(9ms~18ms)和这8位数据的反码(键值数据码反码)(9ms~18ms)组成。 b) 编码格式 遥控器发射的信号由一串0和1的二进制代码组成.不同的芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。XS-091遥控板的0和1采用PWM方法编码,即脉冲宽度调制。下图为一个发射波形对应的编码方法: 放大0和1的波形如下图: 这种编码具有以下特征:以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。 3、红外接收原理 a) 波形 红外接收头将38K载波信号过虑,接收到的波形刚好与发射波形相反:

红外遥控制作详解

红外遥控制作详解 摘要:文章从实际应用角度出发,详细分析了红外遥控器的编码原理,硬件电路搭建,并给出了遥控器信号发送与接收的程序流程。 引言:红外遥控自1974年发明以来,因其体积小、重量轻、价格低廉、使用灵活、功耗低及抗干扰能力强等特点得到很广泛的应用,在日常生活中随处可见,如红外线鼠标,红外线打印机,红外线键盘等等。本文将以红外遥控电路为例,详细介绍红外遥控的制作流程。 一、原理介绍 红外遥控系统由发射和接收两大部分组成,红外发射管将电能转化为光能,接收管感应红外光,将光能转化为电信号。其通信的机理是利用单片机控制NE555发送脉宽调制的串行码,以脉宽为1ms、间隔0.5ms、周期为1.5ms的组合表示二进制的“0”;以脉宽为3ms、间隔0.5ms、周期为3.5ms的组合表示二进制的“1”,通过一个9ms的起始码(低电平),和一个5ms结果码(高电平)这个码值使程序能够判断是否可以开始接收数据。

二、硬件解析 整体硬件电路见附录。下面我们详细分析一下其中几个重点模块。 1.NE555调制模块 如果仅控制芯片的控制信号来驱动红外发射管的红外线发射,是不能让红外接收头收到信号的。接收头所能判断的信号为一定频率信号。大多数红外接收头能接收的中心频率为38kHz,但也有一些接收头中心频率为36kHz、37kHz、39kHz、40kHz,如果发射频率与接收频率相差1kHz,大多可以正常遥控,相差2kHz以上则会出现遥控不灵现象。而单片机的信号频率没有这 么大,因此,我们要对控制芯 片输出的控制信号进行调制。 这里我们所介绍的调制电路 以NE555为中心,加以一 定的外围电路,构成多谐振荡 器。 先来看一个NE555的 经典多谐振荡电路,如图1。 它的原理是把施密特触发器 的反相输出端经RC积分电路 接回到它的输入端,构成多谐

红外遥控编码格式

红外遥控编码 红外遥控编码常用的格式有两种:NEC和RC5 NEC格式的特征: 1:使用38 kHz载波频率 2:引导码间隔是9 ms + 4.5 ms 3:使用16位客户代码 4:使用8位数据代码和8位取反的数据代码 下面的波形是从红外接收头上得到的波形:(调制信号转变成高低电平了) 不过需要将波形反转一下才方便分析:

NEC 协议通过脉冲串之间的时间间隔来实现信号的调制(英文简写PPM)。逻辑“0”是由0.56ms的38KHZ载波和0.560ms的无载波间隔组成;逻辑“1”是由0.56ms的38KHZ载 波和1.68ms的无载波间隔组成;结束位是0.56ms的38K载波。 遥控器的识别码是Address=0xDD20;键值是Command=0x0E;

注意波形先是发低位地址再发高位地址。所以0000,0100,1011,1011反转过来就是1101,1101,0010,000十六进制的DD20; 键值波形如下:

也是要将0111,0000反转成0000,1110得到十六进制的0E;另外注意8位的键值代码是取反后再发一次的,如图0111,0000 取反后为1000,1111。 最后一位是一个逻辑“1”。 RC5编码相对简单一些: 下面的遥控器地址是1A,键值是0D的波形 同样由于取自红外接收头的波形需要反相一下波形以便于分析:

反相后的波形: 根据编码规则:

得到一组数字:110,11010,001101 根据编码定义 第一位是起始位S 通常是逻辑1 第二位是场位F通常为逻辑1,在RC5扩展模式下它将最后6位命令代码扩充到7位代码(高位MSB),这样可以从64个键值扩充到128个键值。 第三位是控制位C 它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松手还是松手后重复按。 如图所示是同一按键重复按两次所得波形,只有第三位是相反的逻辑,其它的位逻辑都一样。

红外遥控器接收程序

//STC89C52RC //11.0592MHZ #include #include #define uchar unsigned char #define uint unsigned int #define TH0_V ALUE 0xc5 #define TL0_V ALUE 0xc5 // 定时器计数值 #define ANT P2^4 //红外IO口,可任意一个IO //系统变量定义区============================================================ volatile unsigned char irr_b=0,s_s=0;//irr_b接收状态指示,s_s显示许可 volatile signed long da=0; //32位数据码 volatile unsigned char wb=0, a=0; //wb为接收到的位数,a为接收到信号高低电平判断依据volatile unsigned int js=0; //定时器计数 volatile unsigned char a1=1,a2=1; //上升沿处理变量 void timer_init(void) { ET0=0; TMOD=0x02; TCON=0x10; TL0=TL0_V ALUE; TH0=TH0_V ALUE; ET0=1; } void timer_start() { TR0=1; EA=1; } void timer0_interrupt(void) interrupt 1 //大约63us中断一次

红外线遥控系统原理及软件解码实例

红外线遥控系统原理及软件解码实例 简介:红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功 关键字:红外 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1、红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED 红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 、遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、VCD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125 ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25 ms的组合表示二进制的“1”,其波形如图2所示。 图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反)

上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。U PD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108 ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 图4 遥控连发信号波形 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8 位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。 图5 引导码图6连发码 3 、遥控信号接收 接收电路可以使用一种集红外线接收和放大于一体的一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。 接收器对外只有3个引脚:Out、GND、Vcc与单片机接口非常方便,如图7所示。

红外遥控器解码原理及示Mini51Board上测试成功

红外遥控器解码原理及示,Mini51Board上测试成功 一、编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有 以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”, 其波形如下图所示。 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。编码数据, 载波,发射,接收解码如下图所示: UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别

不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,发 射波形图如下图所示。 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码 (2.5ms)组成。 二、解码 红外接收头将38K载波信号过虑,得到与发射代码反向接收代码

红外遥控控制按键程序

#include"reg51.h" #include"intrins.h" #define unint unsigned int #define unchar unsigned char sbit IRIN=P3^3; sbit KEY0=P1^4; sbit KEY1=P1^5; sbit KEY2=P1^6; sbit KEY3=P1^7; sbit LED=P3^7; bit flag_time=0; bit flag_ir=0; bit ir_date=0; bit time0=1; bit time1=1; unsigned char date[4]={0,0,0,0}; /*************************/ void int_time3(void); void int_ation(void); //开始初始化 void int_ation(void); void service_int0(void); //////*红外检测延时用*////// void service_int1(void) interrupt 1 { TH0=0x9e; TL0=0x58; flag_time=1; } void int_ation(void) //开始初始化 { TMOD=0x01; //开计时中断0初始化 TH0=0x3c; TL0=0xb3; TR0=1; ET0=1; EA=1; } ////////////红外中断入口////// void service_int0(void) { unsigned char i=0,j=0; if (IRIN==1) return; flag_time=0;

手把手教你红外遥控解码实验

手把手教你红外遥控解码实验 单片机轻松入门教学 ------- 『电子驿站』原创,转载请注明出处! --------------------------------------------------------------------------- ------------------------------------ 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 【红外遥控系统】 通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1a 图1b 【遥控发射器及其编码】 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示,连发波形如图4所示。 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 当遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。 代码格式(以接收代码为准,接收代码与发射代码反向) ① 位定义

相关文档
最新文档