文档库 最新最全的文档下载
当前位置:文档库 › 红外NEC编码协议说明

红外NEC编码协议说明

史上最全的红外遥控器编码协议

目录 1)MIT-C8D8 (40k) 2) MIT-C8D8(33K) 3)SC50560-001,003P 4)M50462 5)M50119P-01 6)M50119L 7)RECS80 8)M3004 9)LC7464M 10)LC7461-C13 11)IRT1250C5D6-01 12)Gemini-C6-A 13)Gemini-C6 14) Gemini-C17(31.36K)-1 15)KONKA KK-Y261 16)PD6121G-F 17)DATA-6BIT 18)Custum-6BIT 19)M9148-1 20)SC3010 RC-5 21) M50560-1(40K) 22) SC50560-B1 23)C50560-002P 24)M50119P-01 25)M50119P-1 26)M50119P 27)IRT1250C5D6-02 28)HTS-C5D6P 29)Gemini-C17 30)Gemini-C17 -2 31)data6bit-a 32)data6bit-c 33)X-Sat 34)Philips RECS-80 35)Philips RC-MM 36)Philips RC-6 37)Philips RC-5 38)Sony SIRC 39)Sharp 40)Nokia NRC17 41)NEC 42)JVC 43)ITT

44)SAA3010 RC-5(36K)45)SAA3010 RC-5(38K)46)NEC2-E2 47) NEC-E3 48) RC-5x 49) NEC1-X2 50) _pid:$0060 51) UPD1986C 52) UPD1986C-A 53) UPD1986C-C 54) MV500-01 55) MV500-02 56) Zenith S10

NEC协议的红外遥控器驱动程序

创作编号:BG7531400019813488897SX 创作者:别如克* 是不是觉得红外遥控+51单片机是绝妙组合?但是在编程时才发现超级纠结?其实也没那么纠结,自己摸索摸索,总能找出办法来的。 本程序占用了51单片机的定时器0以及中断1两个资源,为的是使单片机能接收到每一个红外脉冲信号,一个都不能少。如果舍不得用这两个资源,还有另一种查询的办法,就是不一定每个信号都能收到,可自己琢磨一下。

需要全套NEC协议红外遥控器资料的,到网上找,到处都有,而且很全。 另外,对着资料写程序如果实在写不出,可以找个示波器,把波形录下来好好研究研究。毕竟有些时候资料会过时,只要里面有一点东西变化了,程序就完全不一样了。这种弯路,尽量少走。 本程序只是头文件,具体到应用上还要各位自己动脑筋了,希望对大家有所帮助。共同学习,共同进步! /****************************************************************** INF_NEC.h 用于NEC协议的遥控器,主控器为51单片机。用户码8位,分布于2-17个脉冲;按键码8位,分布于18-33个脉冲。皆为前8原码,后8反码。 注意:本驱动占用51单片机的外部中断1以及定时器0两个资源,编程时注意 不要再乱动这两个资源。 *******************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar nec_flag=0;//nec_flag:遥控码的标志位。0:无信号;1、2:信号采集;3、可用信号 uchar nec_num=0;//nec_num:红外码的序号 uint nec_time=0;//nec_time:定时器的计时次数nec_time*250us uchar nec_cod[2]={0,1};//遥控器的编号,编号0为原码,编号1为反码 uchar nec_dat[2]={0,1};//遥控器的数据,数据0为原码,数据1为反码 #ifndef __INF_NEC__ #define __INF_NEC__ extern void nec_init(); extern void nec_act(); #endif void nec_init() //外中断1及定时器0的初始化函数 { TMOD=(TMOD&0xf0)|0x02; //定时器0模式2,8位自动重装 TH0=0x19; TL0=0x19; //11.0592MHz晶振,计数230次,大概时间250us ET0=1;TR0=0; //定时器0使能,先关着 IT1=1;EX1=1; //外部中断1使能,用来接收红外信号

基于NEC标准的红外编码及解码原理及进程

基于NEC 标准的 主要器件:AT89c51、HS0038HS0038工作频率为38 kHz,能对得到TTL 电平的编码信号,再送给外只有3 个引脚: VS 、GND 和原理:采用 常用电器的NEC 38KHZ (即脉宽调制的方法)信息传给单片机,再通过单片机编码:NEC 标准:用 0.56ms 用0.565ms 高电平+1.685ms 发送的格式:引导码+用户码电平+4.5ms 的低电平组成。用第二次发送的用户码可为第一次是为了判断发送的信息是否正确注意:上面说的低电平和高电平志。即低电平期间不发射38KH 间发射38KHZ 的红外波。 标准的红外编码及解码原理及进程0038红外接收头、红外发射管、 能对收到遥控信号进行放大、检波、整形、解再送给单片机,经单片机解码并执行相关控制程1个脉冲信号输出引脚,使用方便,性能可EC 标准实现红外编码及解码。将要发送的通法)的载波发送出去,再由一体化红外接收单片机程序实现解码。 ms 的高低平+0.565ms 的低电平代表数据中5ms 的低电平代表数据中的1。 户码+用户码+操作码+操作反码。引导码为成。用户码和操作码均用8位的十六进制发送。 第一次发送用户码的反码,也可不为,发送反码,操作码也一样。 高电平不是实际的电平概念,只是个代表0和38KHZ 的红外波,此时发射管可亮可灭 。高电平 形、解调,制程序,对可靠。 数据通过头接收把中的0,9ms 的高送。 反码主要1的标高电平期

发射电路:如上图所示,D1为红外发射管,9014为低噪小功率NPN三极管,R1为10欧姆,R2为50欧姆,为了使发射管发射的距离加长常使R2为零, R1为4.7K欧姆。 功能:优势:通过对NEC标准红外编码的学习,可同时控制多个接收装置而不产生干扰。因红外发射芯片的地址码为固定的一个,只能控制单独的一个装置 或控制相同地址码的装置,且只能控制与遥控器上键数相同的功能,大多数为 十多个。而学习编码的优势是只用一个单片机就能至少有256个地址码(地址码不取反的话地址码将更多),一个地址码有对应的多个受控装置,可见学习 红外编码可大大节约资源。 解码原理及编程参考上面的编码原理。 实现中的问题:搜集资料不容易,且相同标准一个协议大家说的都不尽相同, 让人很难搞准那个是对的。 焊接的电路没理想的那么好使,红外接收头的距离没开发板上的接受的距离远。红外发射的距离更短,只有十多厘米。 进程:电路已焊接好,程序已写好,下面进入调试阶段。电路还需改进,尽可 能使其发射的距离加长。

红外线遥控器解码程序

资料整理自互联网,版权归原作者! 欢迎访问 https://www.wendangku.net/doc/6c10030579.html, 新势力单片机,嵌入式
专业技术论坛:https://www.wendangku.net/doc/6c10030579.html,
红外线遥控器解码程序
Wang1jin 收藏. 交流论坛: https://www.wendangku.net/doc/6c10030579.html,/ 推荐网站: https://www.wendangku.net/doc/6c10030579.html, 个人博客: https://www.wendangku.net/doc/6c10030579.html,
红外线遥控是目前使用最广泛的一种通信和遥控手段.由于红外线遥控装置具有体积小,功耗低,功能强,成本低等特点,因 而,继彩电,录像机之后,在录音机,音响设备,空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控.工业设备中, 在高压,辐射,有毒气体,粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰.
1 红外遥控系统
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图 1 所示.发射部分 包括键盘矩阵,编码调制,LED 红外发送器;接收部分包括光,电转换放大器,解调,解码电路.
2 遥控发射器及其编码
遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明, 现以日本 NEC 的 uPD6121G 组成发射电路为例说明编码原理.当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码 也不同.这种遥控码具有以下特征:
采用脉宽调制的串行码,以脉宽为 0.565ms,间隔 0.56ms,周期为 1.125ms 的组合表示二进制的"0";以脉宽为 0.565ms, 间隔 1.685ms,周期为 2.25ms 的组合表示二进制的"1",其波形如图 2 所示.
个人博客:https://www.wendangku.net/doc/6c10030579.html,
电子综合站点:https://www.wendangku.net/doc/6c10030579.html,

(完整word)红外遥控协议分析之:NEC协议

红外遥控编码传输协议 生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,如NEC、Philips RC-5、Philips RC-6、Philips RC-MM、Philips RECS80、 RCA、X-Sat、ITT、JVC、Sharp、Nokia NRC17和Sony SIRC等。 国内最常用的规范有两种:NEC和Sony SIRC。这两种规范的调制方式分别为:PPM(脉冲间隔调制)和PWM(脉冲宽度调制)。谈到这两个概念,我需要具体讲解一下,因为我在网上查阅相关资料时甚是郁闷,好多说法相互矛盾。有说NEC属于PWM的因为它的脉宽不同,PPM的脉宽是固定的。而细心地朋友如果探究到NEC的典型芯片的芯片手册时,会发现上面这种说法是错误的。比如UPD6121这款红外远程控制芯片的调制方式为PPM。后来终于在一家国外的网站上找到了能够自圆其说的解释。个人认为比较正确,拿来和大家分享。 要想认清红外遥控编码传输协议的具体内容,我想还是先捡其重点来讲一下,编码规范中最重要的当属调制这部分了。而主流的调制方式有两种分别为PPM和PWM,当然其他还有好几种,这里先不讲解,免得糊涂了。本文就先介绍下PPM和PWM的区别。 PPM(Pulse Position Modulation),其实更加准确的说法应该是PDM(Pulse Distance Modulation)即脉冲间隔调制: 上图为典型编码规范NEC协议的调制图,为PPM调制。可以看出不管是“0”还是“1”,有高频调制波的地方(下文称其为脉冲)其宽度都是相同的位560us,而脉冲间的间隔则是不同的:“1”时为(2.25ms-560us),“0”时为(1.12ms-560us)。由此得来PPM的称号。 再来看下PWM的调制波形吧: 显然可以看出,“1”的脉冲宽度为1.2ms,“0”的为600us。而脉冲间隔不管是“0”还是“1”,均为600us。从而PPM和PWM的两个概念认识清楚!当然不同规范中PPM和PWM 这两种调制方式的脉宽及脉冲间隔可能不同,上面两个图只是示例而已。

红外遥控编码格式

红外遥控编码 红外遥控编码常用的格式有两种: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 它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松手还是松手后重复按。 如图所示是同一按键重复按两次所得波形,只有第三位是相反的逻辑,其它的位逻辑都一样。

6122编码格式,红外遥控的编码,载波38KHz

红外、6122编码、38KHz载波一、红外遥控编码简介 一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,如图1 所示: 发射部分主要包括键盘矩阵、编码调制、红外发射管; 接收部分包括光、电信号的转换以及放大、解调、解码电路。 举例来说,通常我们家电遥控器信号的发射,就是将相应按键所对应的控制指令和系统码( 由0 和1 组成的序列),调制在32~56kHz 范围内的载波上(目的为:抗干扰及低功率),然后经放大(接三极管)、驱动红外发射管(透明的头)将信号发射出去。 二、6122编码格式简介 流行的控制方法是应用编/ 解码专用集成电路芯片来实现。 不同公司的遥控芯片,采用的遥控码格式也不一样。本文是NEC(代表芯片WD6122)PWM( 脉冲宽度调制) 标准。 遥控载波的频率为38kHz( 占空比为1:3) ;当某个按键按下时,系统首先发射一个完整的全码,然后经延时再发射一系列简码,直到按键松开即停止发射。简码重复为延时108ms,即两个引导脉冲上升沿之间的间隔都是108ms。如图2所示即为完整的NTC编码。

正常发码:引导码(9ms+4.5ms)+用户编码+用户编码(或者是用户编码的反码)+键数据码+键数据反码+延时: 将正常发码标识出来,从图中可以看出“0”和“1”的表示方法。(不要问为什么是这样,规定!标准!高性能!) 重复码:9ms+2.25ms+延时

三、程序思想 ①低功耗。写程序前要想到,没有用过的,可以新建工程只用sleep命令; ②需要知道用户编码(客户码),每个键对应的编码,这些都是自己或者客户设定的; ③高电平期间:用38KHz的方波表示,低电平期间:用低电平表示。也就是说,高电平不是一直都是高,其实是38KHz的方波,这也是为什么上面②和③图中9ms高电平期间有方格。 (我用的公司自己的精简指令集,就不再上传。需要的话,私信) 四、电路 做为波形的输出端,加三极管,放大。 下图为矩形键盘组成的按键,图中黑色二极管为红外发射管。

红外遥控器编码

关于红外遥控的一点资料整理 最近发现家里遥控器老是弄混(唉,遥控器多了,也是一件麻烦事)。如果有一种可对家中各种红外遥控器发射的控制信号进行识别、存储和再现的智能型红外遥控器,用这样一个遥控器控制家中所有电器该多好。这就是大家称作的学习型红外遥控器。于是,下了不少工夫查找了许多资料,对红外遥控也做了一点表面研究,现总结一点文档,与大家一同探讨(有不对之处,请大家指正!);另外由于本人愚顿还未开窍,还有部分东西想不太明白,在此也向专家们请教,请知道的老兄支点招,在此小弟先谢过了!!! 一、红外遥控概述 红外遥控系统一般都是由发射部分和接收部分组成。 1、发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它发出的便是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通Φ5发光二极管相同,只是颜色不同。 2、接收部分主要元件是红外接收管,它是一种光敏二极管(实际上是三极管,基极为感光部分)。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。 由于红外发光二极管的发射功率一般都较小(100mW左右),所

以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用μPC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装(如图中的HS0038),均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VO或OUT)。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。 https://www.wendangku.net/doc/6c10030579.html,/upfiles/img/200682114849807.jpg(图一) 3、红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。 红外遥控常用的载波频率为38KHZ,这是由发射端编码芯片所使用的455KHZ晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455KHZ÷12≈37.9 kHz≈38KHZ。也有一些遥控系统采用36kHz、40kHz、56kHz等。 红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需

红外遥控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位异步收发器

单片机红外遥控编码与解码

用电器、视听产品的普及,红外线遥控器已被广泛使用在各种类型的家 电产品上(如遥控开关、智能开关等)。其具有体积小、抗干扰能力强、功 耗低、功能强、成本低等特点,在工业设备中也得到广泛应用。 一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,如图 1 所示: 其中发射部分主要包括键盘矩阵、编码调制、红外发射管;接收部分包 括光、电信号的转换以及放大、解调、解码电路。举例来说,通常我们家电 遥控器信号的发射,就是将相应按键所对应的控制指令和系统码( 由0 和1 组成的序列),调制在32~56kHz 范围内的载波上,然后经放大、驱动红外发 射管将信号发射出去。此外,现在流行的控制方法是应用编/ 解码专用集成 电路芯片来实现。 不同公司的遥控芯片,采用的遥控码格式也不一样。在此介绍目前广泛 使用较普遍的两种,一种是NEC Protocol 的PWM( 脉冲宽度调制) 标准, 一种是Philips RC-5 Protocol 的PPM( 脉冲位置调制) 标准。 NEC 标准(代表芯片WD6122):遥控载波的频率为38kHz( 占空比为 1:3) ;当某个按键按下时,系统首先发射一个完整的全码,然后经延时再 发射一系列简码,直到按键松开即停止发射。简码重复为延时108ms,即两 个引导脉冲上升沿之间的间隔都是108ms。如图2所示即为完整的NTC编码。

对于NTC编码,由引导码、用户编码低位,用户编码高位、键数据编码、键数据编码五部分组成,引导码由一个9ms的载波波形和4.5ms的关断时间 构成,它作为随后发射的码的引导,这样当接收系统是由微处理器构成的时候,能更有效地处理码的接收与检测及其它各项控制之间的时序关系。编码 采用脉冲位置调制方式(PPM)。利用脉冲之间的时间间隔来区分“0”和“1”。每次8位的码被传送之后,它们的反码也被传送,减少了系统的误 码率。数据0 可用“高电平0.56ms +低电平0.56ms”表示,数据1 可用“高电平0.56ms +低电平1.68ms”表示。 PHILIPS 标准(代表芯片SAA3010):载波频率为38kHz ;没有简码, 点按键时,控制码在1 和0 之间切换,若持续按键,则控制码不变。一个 全码可等同于起始码、控制码、系统码、数据码的时间总和,数据0 用“低 电平0. 889ms +高电平0. 889ms”表示;数据1用“高电平0. 889ms +低电平0.889ms”表示,如图3 所示。

红外遥控编码格式及学习模式

红外遥控编码格式及学习模式 1、编码格式 现有的红外遥控包括两种方式:PWM(脉冲宽度调制)和PPM(脉冲位置调制)。 两种形式编码的代表分别为NEC和PHILIPS的RC-5、RC-6以及将来的RC-7。 PWM(脉冲宽度调制):以发射红外载波的占空比代表“0”和“1”。为了节省能量,一般情况下,发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。例如常用的电视遥控器,使用NEC upd6121,其“0”为载波发射0.56ms,不发射0.56ms;其“1”为载波发射0.56ms,不发射1.68ms;此外,为了解码的方便,还有引导码,upd6121的引导码为载波发射9ms,不发射4.5ms。upd6121总共的编码长度为108ms。 但并不是所有的编码器都是如此,比如TOSHIBA的TC9012,其引导码为载波发射4.5ms,不发射 4.5ms,其“0”为载波发射0.52ms,不发射0.52ms,其“1”为载波发射0.52ms,不发射1.04ms。 PPM(脉冲位置调制):以发射载波的位置表示“0”和“1”。从发射载波到不发射载波为“0”,从不发射载波到发射载波为“1”。其发射载波和不发射载波的时间相同,都为0.68ms,也就是每位的时间是固定的。 通过以上对编码的分析,可以得出以某种固定格式的“0”和“1”去学习红外,是很有可能不成功的。即市面上所宣传的可以学习64位、128位必然是不可靠的。 另外,由于空调的状态远多于电视、音像,并且没有一个标准,所以各厂家都按自己的格式去做一个,造成差异更大。比如:美的的遥控器采用PWM编码,码长120ms左右;新科的遥控器也采用PWM编码,码长500ms左右。如此大的差异,如果按“位”的概念来讲,应该是多少位呢?64?128?显然都不可能包含如此长短不一的编码。 2、学习模式 现在用来学习红外的CPU,无外乎以下几种: MCS-51系列、microchip pic16系列、winbond w741系列、holtek ht48系列 以上的CPU由于价格便宜、使用量大,被广泛使用在遥控器上。 以上的CPU的基本点是:执行速度在1us左右,数据存储器一般为256个字节。如果按固定格式学习,一般可以学到128位(其他程序会占用一些数据存储器);如果不按固定的格式,需要找出编码的最小公约数作为基本单位,则可以学习到的位数大大降低,达不到实用的效果。但是,即使如此,找到的最小公约数不可能满足所有的红外设备,除非最小单位为26us(1000000/38k)。如果达到这个速度,以上CPU的速度远远不够,并且由于存储量的加大,数据存储器也远远不够用。 针对以上红外学习的缺陷,本人设计了一套智能家居的系统解决方案。由于采用高速CPU,使得智能家居的所有功能都可以在它上面实现,无需再像以前一样需要多个子系统,同时也节约了成本。欢迎智能家居生产厂商探讨和合作,推动整个市场的发展。 对于电视、音响等,一般使用专用的遥控芯片,比如nec,philips,toshiba,sanyo,mitsubish,panasonic的芯片,其编码格式固定,一个键只有一个编码,学习比较容易。 而空调不一样,各家空调厂商都是按自己的要求用cpu做遥控芯片,编码形式就有很多种。比如可能没有引导码(电视音响类都有)、校验方式取累加和(电视音响类一般取反码)等。因为空调的状态多,必须一次发送完毕,有制冷、温度、风速、自动、定时、加湿、制热等,所以编码很长,并且同一个按键,在不同状态下发送的编码不一样,造成学习上的困难。 正是由于红外编码格式没有同一的标准,非常杂乱,专门的遥控器方案厂商想出了各种方案.

红外遥控解码原理(日本NEC的uPD6121G)

红外遥控解码原理(日本NEC的uPD6121G)这里我们以红外线遥控编码芯片为uPD6121G(或者是 HT622、7461等芯片)为例来说明用单片机实现红外遥控解码的详细过程。红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 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)组成。 代码格式(以接收代码为准,接收代码与发射代码反向) ①位定义 ②单发代码格式 ③连发代码格式注:代码宽度算法:

NEC协议的红外遥控程序(任意IO口)

/**************************************************************************** NEC_INF_S.h 用于NEC协议的遥控器与51单片机结合的驱动程序,可用任意IO口,不占用中断资源。用户码8位,分布于2-17个脉冲;按键码8位,分布于18-33个脉冲。 皆为前8原码,后8反码,并且接收数据时低位在前,高位在后。 主控器为51单片机,晶振频率为11.0592MHz。 注意:由于未用中断,所以信号的接收是靠查询方式的,可能会漏掉若干次红外信号。 *****************************************************************************/ #include #define uchar unsigned char #define uint unsigned int #define N 5000//用于在while()中循环时超时跳出的数的上限,可小刀 sbit nec_dat=P3^3;//任意IO口,用到哪个自己改哪个 uchar nec_id[2]={0};//遥控器的编码号,第一个为原码,第二个为反码 uchar nec_data[2]={0};//遥控器的命令号,第一个为原码,第二个为反码 uchar nec_status=0;//遥控器的按键状态信息。0:无按键;1:一次按键;2:连续按键 uchar nec_actflag=0;//用于带到主函数里的按键响应标志。0:不动作;1:动作 #ifndef NEC_INF_S_h #define NEC_INF_S_h void nec_init();//初始化函数,注意一定要拉高,拉低就错误了 void nec_delay();//延时0.8ms左右,要求要非常精确,这是正确读数的关键 void nec_pulsedat();//读第2到第32个脉冲,第一个脉冲已判定 void nec_getdat();//扫描式读遥控器的数据,可能有时会扫描不到 #endif void nec_init()//初始化函数,注意一定要拉高,拉低就错误了 { nec_dat=1; } void nec_delay()//延时0.8ms左右,要求要非常精确,这是正确读数的关键 { uchar i; for(i=0;i<245;i++); }

NEC%三菱%索尼%飞利普%东芝等6种红外遥控器编码及程序

HT48CA0 APPLICATION NOTE . Application Circuit .Working Register Define ;***************************************************** ;@***** Filename : SAMPLE.ASM (Remote 64KEY) ****** ;@************** OSC:455KHz CARRY:38KHz *********** ;@****************** HT48CA0 ****************** ;;***************************************************** ;;***** System memory Map ***** M_INDIRECT1 equ [00h] ;Indirect addressing register M_MP0 equ [01h] ;Data Memory point M_ACC equ [05h] ;Accumulator M_PCL equ [06h] ;Program Counter Lower-order M_TBLP equ [07h] ;Table Pointer M_TBLH equ [08h] ;Table Higher-order byte M_STATUS equ [0ah] ;Micro controll status PORT_A equ [12h] ;PA I/O register PORT_B equ [14h] ;PB I/O register HOLTEK HT48CA0 (64KEY) .

NEC码红外遥控完整编码

红外遥控编码程序如下: NEC .SECTION 'DATA' a_REM_CODE DB ? ;KEY DATA CODE a_CUSTOMER_1 DB ? ;遥控器头码(客户码)低八位 a_CUSTOMER_2 DB ? ;遥控器头码(客户码)高八位 #define CUS_6221_1 00110100b ;1234H #define CUS_6221_2 00010010b ;@------------------------------------------------ NEC_CODE .SECTION 'CODE' ;@************* SUBROUTINE[xx]: Send Remote Code ************ ;;遥控码发送: SEND_REMOTE_CODE: clr WDT ;清除进位标志,检测遥控发送的有效的按键 SZ fg_SendActive ;SZ表示以0结尾的字符串 JMP READY_SEND ;跳转到READY_SEND模块 ret READY_SEND: NEC_CODE: mov A,a_KEY_NUM ;将数值发送到寄存器A中,直接寻址 mov M_TBLP,A TABRDL a_REM_CODE ;查表专用指令 MOV A,CUS_6221_1 ;读取遥控头码(客户码)低八位数值 MOV a_CUSTOMER_1,A MOV A,CUS_6221_2 MOV a_CUSTOMER_2,A 以上为READY_SEND运行模块,同时是为后面NEC码发送的准备;首先将一 个按键的数值已以直接寻址方式发送到寄存器A中,将寄存器A的是发送到M_TBLP中,然后查表a_REM_CODE,将CUS_6221_1的值发送到寄存器中,在赋值给遥控器头码(客户码)低八位a_CUSTOMER_1,同理,将CUS_6221_2赋值给遥 控器头码(客户码)低八位a_CUSTOMER_2,随后即开始发送NEC遥控码。NEC引导码发送并开始编译: ;;--- Starting send NEC Remote code --- SEND_NEC: ;Check No Key Code ffH SIZA a_REM_CODE ;取出变量的大小 JMP LEADNEC_CODE ;跳转指令 Ret ;返回地址出栈,从而实现转移到返回地址处 LEADNEC_CODE: ; 1 Instruction Cycle = 8.79us clr pn_IR ;High Level 9 ms (455KHz:1023 Cycle) mov A,002d ; [(3*168)+5]*2 = 1018 mov a_SR13,A LEADIND_CODE_00: mov A,168d mov M_ACC,A LEADIND_CODE_01:

NEC红外编码

HT49CVX 遥控接收软件模块设计指南 文件编码:HA0077s 概述 本软件模块用于接收译码编码格式为NEC格式(见图1) 的红外遥控器信 号,由于使用了RMT TIMER,所以适用于带有RMT TIMER功能的 HT49CVX系列。 功能及原理 本软件模块适用译码NEC格式的红外编码,NEC格式如下图所示: 图1 NEC编码格式 使用时请将红外信号接到PC.7/RMT引脚,由波形的上升和下降缘触发RMT TIMER来记录高、低准位的宽度,每记录一对高低准位后,再采用相对宽 度的方法,即判断高准位与低准位的宽度的相对大小,来判定接收到该bit 的信号是bit ″0″或bit ″1″。 在接收Lead Code和Repeat Code的时候,则是采用判断相对宽度和判断 高低准位的宽度是否在给定的范围里面相结合的方法,例如,在系统频率为 4MHz时,如果lo_count>hi_count 并且 lo_l

图2 在接收到第一对高低准位后,随即判断该bit是否为Lead Code,如果不是, 则软件模块将自行初始化;如果是,则继续接收以后的讯号,在接收完全部 的Custom Code和Data Code后,将判断接收到的Custom Code是否与 预置的一致并且Data Code的高低字节是否互反,如果不是,则软件模块 将自行初始化;如果接收有效,则设立旗标为有效值,并继续判断是否有 Repeat Code进入,若有,则设立对应旗标为有效值。 在红外讯号结束以后,持续的高准位会使RMT溢出,产生中断,在发生4 次溢出中断以后,软件模块便认为讯号已经结束,将进行初始化 使用说明 软件模块: RECEIVER_SWIP子程序 IP Name (Label) 系统资源功能描述 功能接收NEC编码格式的IR码 MCU HT49CVX ROM 128 RAM 10字节:″ACCBAK″, ″STATUSBAK″, ″HI_COUNT″, ″LO_COUNT″, ″BITCOUNTER″, ″rmtv_cnt″, ″RECEIVER_CODE0~ RECEIVER_CODE 3″ 7位:″receiver_en″, ″first_falling″, ″repeat_1st_falling″, ″STATUS_FG″, ″repeat_fg″, ″ok_fg″, ″ok_bit″ 堆栈使用1层子程序/宏子程序 I/O口线1个I/O口 PC7:输入引脚(I/O),不带上拉 f SYS4MHz石英晶振 其它MCU资源Multi-function interupt (Note 1) RECEIVER_SWIP 用户接口用户需要在receiver_define.asm中定义需要用的MCU(Note 2) Call receiver_init 通过在用户子程序里置位receiver_en打开接收软件模块或者清receiver_en 关闭接收软件模块 因为接收软件模块使用了RMT,所以用户不要使用RMT和RMT引脚 在打开接收软件模块时,当RMT引脚接收到合法的遥控信号,标志位ok_bit和ok_fg将会被置位为″1″,并且在信号里有repeat code,那么标志位repeat_fg 将会被置位为″1″直到信号消失。 当信号消失,系统会清除标志位Ok_bit,但是标志位ok_fg需要由用户清除,否则它将一直保持为″1″ 遥控信息将保存在receiver_code0~receiver_code3.

遥控器编码

使用说明手册 产品名称:NEC红外遥控发射器 产品特点:实现一键多功能,仅占用单片机1个I/O口,大大节约单片机I/O口。 红外遥控原理介绍: 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 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为发射波形图。 图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连发码

相关文档
相关文档 最新文档