收藏 分销(赏)

M50462遥控器解码.doc

上传人:仙人****88 文档编号:11895327 上传时间:2025-08-19 格式:DOC 页数:12 大小:376.50KB 下载积分:10 金币
下载 相关 举报
M50462遥控器解码.doc_第1页
第1页 / 共12页
M50462遥控器解码.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
/* 1---00h;2---10h;3---08h;4---18h;5---04h;6---14h;7---0ch;8---1ch; */ /* 9---80h;0---90h;1+---88h;2+---98h;pd+---50h;pd_---48h;ld+---0cch; */ /* ld_---0dch;yl+---44h;yl_---54h;sd+---0c4h;sd_---0d4h;BZ---0D0h; */ /* TV/AV---5CH;PX---D8H;-->.<-- ---0D0H;CLK---0E8H;*/ /* TIME---0F8H;ON.T---0E4H;SEL---0F4H;INC---0ECH; */ M50462遥控器解码程序 [日期:2008-05-24 ] [来源:东哥单片机学习网() 作者:佚名] [字体:大 中 小] (投递新闻) 来源:网上转载   作者:不详 /************** YTREM.PLM ********************/ /* 遥控器按键代码表(熊猫 M50462/CL54L2) */ /* 1---00h;2---10h;3---08h;4---18h;5---04h;6---14h;7---0ch;8---1ch; */ /* 9---80h;0---90h;1+---88h;2+---98h;pd+---50h;pd_---48h;ld+---0cch; */ /* ld_---0dch;yl+---44h;yl_---54h;sd+---0c4h;sd_---0d4h;BZ---0D0h; */ /* TV/AV---5CH;PX---D8H;-->.<-- ---0D0H;CLK---0E8H;*/ /* TIME---0F8H;ON.T---0E4H;SEL---0F4H;INC---0ECH; */ start:do; $include(reg51.dcl) declare (data1,data2,key,DAT) byte at (30h); declare (ah,al,NUMBER,jihao,bjihao) byte; declare Ale literally 'p17',da literally 'p15',clk literally 'p16'; DECLARE ACO(11) BYTE CONSTANT (0EDH,28H,0DCH,7CH,39H,75H,0F5H,2CH, 0FDH,7DH,02H); DISPLAY: PROCEDURE(NUM); DECLARE (K,NUM,N) BYTE; N=NUM; N=N MOD 10; N=ACO(N); DO K=0 TO 7; N=SCR(N,1); DA=CY; CLK=0; call time(1); CLK=1; END; N=NUM; N=N/10; N=ACO(N); DO K=0 TO 7; N=SCR(N,1); DA=CY; CLK=0; call time(1); CLK=1; END; ALE=0; call time(2); ALE=1; END DISPLAY; YTNUMBER: procedure(kk); declare (kk,relay) byte; if kk=02 then DO; NUMBER=NUMBER+1; IF NUMBER>4 THEN NUMBER=1; END; if kk=01 then DO; NUMBER=NUMBER-1; IF NUMBER=0 THEN NUMBER=4; END; CALL DISPLAY(NUMBER); KEY=0; data2=0; END YTNUMBER; recieve: procedure interrupt 4 using 1; declare (k,ask) byte; disable; if data2=0e2h and dat<>0 then do; ri=0; jihao=sbuf; if jihao=bjihao then do; data2=0; p32=1; do k=1 to 2; if k=1 then sbuf=dat; if k=2 then sbuf=number; do while ti=0; end; ti=0; call time(1); end; p32=0; do while ri=0; end; ri=0; ask=sbuf; if ask=0ffh then do; ; end; /* data1=0ffh;dat=0; */ end; end; enable; end recieve; rem:procedure interrupt 2; declare k byte; disable; /* if data2=0e2h then goto int0end; */ k=16; loop1: call time(2); do while p33=0; end; th0=0; tl0=0; tr0=1; call time(2); do while p33=1; end; tr0=0; ah=th0; al=tl0; if ah>=4 then cy=1; /* 11.0592Mhz */ else cy=0; data1=scl(data1,1); k=k-1; if k=8 then data2=data1; if k<>0 then goto loop1; if data2=0e2h then do; IF DATA1=54H THEN do;KEY=01;dat=0;end; /* YTNUMBER DEC KEY */ IF DATA1=44H THEN do;KEY=02;dat=0;end; /* YTNUMBER ADD KEY */ IF DATA1=00H THEN DAT=1; IF DATA1=10H THEN DAT=2; IF DATA1=08H THEN DAT=3; IF DATA1=18H THEN DAT=4; IF DATA1=04H THEN DAT=5; IF DATA1=14H THEN DAT=6; IF DATA1=0CH THEN DAT=7; IF DATA1=1CH THEN DAT=8; IF DATA1=80H THEN DAT=9; IF DATA1=90H THEN DAT=10; IF DATA1=88H THEN DAT=11; IF DATA1=98H THEN DAT=12; IF DATA1=50H THEN DAT=13; IF DATA1=48H THEN DAT=14; IF DATA1=40H THEN DAT=15; IF DATA1=4CH THEN DAT=16; IF DATA1=5CH THEN DAT=17; IF DATA1=0D8H THEN DAT=18; IF DATA1=0D0H THEN DAT=19; IF DATA1=0E8H THEN DAT=20; IF DATA1=0F8H THEN DAT=21; IF DATA1=0E4H THEN DAT=22; IF DATA1=0F4H THEN DAT=23; IF DATA1=0ECH THEN DAT=24; /* P34=0;CALL TIME(250);P34=1; */ end; int0end: ip=0; DO K=0 TO 3; /* important value */ CALL TIME(250); END; enable; end rem; main$program: data1=0;data2=0;dat=0; p32=0; /* set recieve mode */ clk=1;Ale=1; p33=1;NUMBER=1;KEY=0; scon=50h; pcon=00h; tmod=21h; tl1=0fdh; /* 9600 baud rate for 11.0592Mhz */ th1=0fdh; th0=0; tl0=0; tr1=1; es=1; ex1=1; bjihao=1; enable; call DISPLAY(NUMBER); DO WHILE 1=1; IF KEY=01 OR KEY=02 THEN DO; CALL YTNUMBER(KEY); END; end start; 常用几种红外遥控器IC 2008-11-26 常用几种红外遥控器IC 1、WA1028,而合一遥控IC,内嵌uPD6122与TC9148遥控码。封装形式:DIP/SOP24/DICES     2、WA1501,学习遥控器IC,可做为SAA3010、TC9148、UPD6121、M50462来使用,同时也可自学SAA3010、TC9148、UPD6121、M50462等     遥控器的发码。而使之一机多控     3、HS5104,8键红外遥控,配合风扇、暖风扇IC实现遥控功能。封装形式:DIP/SOP16/DICES     4、HS3004,7个地址位,64组指令。兼容:M3004。封装形式:SOP20/DICES     5、A6121/2,可设置32/64个功能键,有8 个地址位。兼容uPD6121/2。封装形式:SOP20/SOP24/DICES     6、A3010,5位地址码,64组指令。兼容:SAA3010。封装形式:DIP28/DICES     7、HS50560,兼容:M50560。封装形式:DIP20/DICES     8、HS50462,可设置64个功能键,8*8的按键矩阵可发送76条指令,     有两个地址位。兼容:M50462,SC50462。封装形式:SDIP24/SOP24     /DICES     9、HS7461,红外遥控发射电路,具有32个按键。封装形式:SOP24DICES     10、HS8521,彩电红外遥控发射电路,具有三类不同的系统,每类系统最多拥有49个按键,可以提供147个编码。封装形式:SOP20/DICES     11、HS9012,32个功能键,8种用户编码,6种双重按键功能,兼容:TC9012。封装形式:SOP20/DICES III种万用遥控器的比较分析 下面分析家用电器红外线遥控器I般原理的基础上,探讨了多合I遥控器的III种实现方式,比较III者各自的优缺点,重点介绍了最新开发出的代码型遥控器的工作原理与产品应用前景。 I.多合I遥控器的出现 II.红外遥控器的工作原理 III.万用遥控器(固定码遥控器) IV.学习型遥控器 V.代码型遥控器 VI.代码型遥控器应用前景 I. 多合I遥控器的出现 电视机.录像机.卫星接收机.机顶盒.VCD/DVD.LD/CD及组合音响等设备的不断普及,而这些家用电器无I例外的具备遥控功能。能同时控制多种遥控型设备的遥控器,称之为多合I遥控器(ALL-ON-ONE)。最早出现这类产品的遥控器就是通常所说的万用(能)遥控器(URC,Universal Remote Control),实际上,它并不能做到“万能”,更为准确地应称作为固定码万用遥控器(Preprogrammed URC)。随后,学习型遥控器(Recordable URC)又出现了。但学习型遥控器存在着操作学习过程繁琐,不X分可靠等缺点。考虑到上述两种多合I遥控器的缺点而从I个全新的角度开发出的新I代代码型遥控器(Code-based URC)便应运而生。 万用遥控器为什么不能做到万用?学习型遥控器可以不断学习为什么还不能让人满意?代码型遥控器又有哪些特点和优点?这就是本文需要探讨的问题,而要搞清楚这些问题,首先必须了解红外遥控器的工作原理。 II .红外遥控器 遥控器其核心元器件就是编码芯片,将需要实现的操作指令例如选台.快进等事先编码,设备接收后解码再控制有关部件执行相应的动作。显然,接收电路及CPU也是与遥控器的编码I起配套设计的。编码是通过载波输出的,即所有的脉冲信号均调制在载波上,载波频率通常为38K。 /* 1---00h; 2---10h; 3---08h; 4---18h; 5---04h; 6---14h; 7---0ch; 8---1ch; */ /* 9---80h; 0---90h; 1+---88h; 2+---98h; pd+---50h; pd_---48h; ld+---0cch; */ /* ld_---0dch; yl+---44h; yl_---54h; sd+---0c4h; sd_---0d4h; BZ---0D0h; */ /* TV/AV---5CH; PX---D8H; -->.<-- ---0D0H; CLK---0E8H;*/ /* TIME---0F8H; ON.T---0E4H; SEL---0F4H; INC---0ECH; */ 载波是电信号去驱动红外发光II极管,将电信号变成光信号发射出去,这就是红外光,波长范围在840nm到960nm之间。在接收端,需要反过来通过光电II极管将红外线光信号转成电信号,经放大.整形.解调等步骤,最后还原成原来的脉冲编码信号,完成遥控指令的传递,这是I个X分复杂的过程。 红外线发射管通常的发射角度为30-45度之间,角度大距离就短,反之亦然。遥控器在光轴上的遥控距离可以大于8.5米,与光轴成30度(水平方向)或15度(垂直方向)上大于6.5米,在I些具体的应用中会充分考虑应用目标,在距离角度之间需要找到某种平衡。 要实现多合I遥控器,涉及到如下几个主要问题: # 遥控器发出的编码信号驱动红外线发射管,必须发出波长范围在940nm左右的的红外光线,因为红外线接收器的接收II极管主要对这部分红外光信号敏感,如果波长范围不在此列,显然无法达到控制之目的。不过,几乎所有的红外家电遥控器都遵循这I标准。正因为有这I物理基础,多合I遥控器才有可能做成。 # 遥控器发出I串编码信号只需要持续数Xms的时间,大多数是X多ms或I百多ms重复I次,I串编码也就包括X位左右到数X位II进制编码,换言之,每I位II进制编码的持续时间或者说位长不过2ms左右,频率只有500kz这个量级,要发射更远的距离必需通过载波,将这些信号调制到数Xkhz,用得最多的是38khz,大多数普通遥控器的载波频率是所用的陶瓷振荡器的振荡频率的1/12,最常用的陶瓷振荡器是455khz规格,故最常用的载波也就是455khz/12=37.9khz,简称38k载波。此外还有480khz(40k).440khz(37k).432khz(36k)等规格,也有200k左右的载波,用于高速编码。红外线接收器是I体化的组件,为了更有针对性地接收所需要的编码,就设计成以载波为中心频率的带通滤波器,只容许指定载波的信号通过。显然这是多合I遥控器应该满足的第II个物理条件。不过,家用电器多用38k,很多红外线接收器也能很好地接收频率相近的40k或36k的遥控编码。 # I个设备受控,除了满足上面提到的两个基本物理条件外,最重要的变化多种多样的当然应该是遥控器发出I串II进制编码信号了,这也是不同的遥控器不能相互通用的主要原因。由于市场上出现成百上千的编码方式并存,并没有I个统I的国际标准,只有各芯片厂商事实上的标准,这也是模拟并替换各种原厂遥控器最大的难点。随着技术的不断发展,很多公司开发家电设备的遥控子系统时还不采用通用的编码芯片,而是用通用的单片机随心所欲地自编I些编码,这就使通用遥控的问题更加复杂化了。 # 采用同样的编码芯片,也不意味着可以通用,因为还有客户码。客户码设计的最初本意就是为了不同的设备可以相互区分互不干扰。最初芯片厂商会从全局考虑给不同的家电厂商安排不同的客户码以规范市场,例如录像机和电视机就用不同的设备码,给甲厂分配的设备码和乙厂分配的设备码就区分在不同的范围内。 # 采用同样的编码芯片.同样的客户码下,也不能意味着I定可以通用,因为对命令码的分配与使用上,仍然是没有固定的模式可以遵循,遥控器编码芯片简单的支持数X种命令码,多的上千种,但遥控器往往只有数X个键,甚至只有几个键,如何从中选取这数X个键,这些键如何分配使用,不同的系统设计师都自搞I套,这样I来事情就更复杂化了。 下面以III菱公司推广的M50462遥控编码芯片为例,具体说明红外线遥控的基本工作原理。 需要说明的是,介绍工作原理的目的是为了便于理解后面将要介绍的III种多合I遥控器实现方式的差别,与此无关的I些细节就给予忽略。例如关于0和1的编码有移频键控FSK.双相编码和脉距编码等多个系列,但对多合I遥控器的实现没有明显的影响,就不另做介绍。 图I 是遥控编码芯片的应用例子 图II 每I位的编码方式(以480khz为例) 图III I个完整的帧编码 III 万用遥控器(固定码遥控器) 在介绍M50462编码原理的时候可以看到该芯片可以直接支持8x8=64个键, III菱公司选了其中的部分键定义其功能,形成推荐的标准码表,见表I。万用遥控器就是以此为根据开发设计的。同I种编码芯片M50462,选择不同的客户码(最多4种),选取64键中的32键(假设遥控器做成32键盘,这种选法其方式之多就X分惊人了,也就是64选32的排列问题),还有可能选不同规格的陶瓷振荡器不在此讨论。这些因素考虑进入,就形成了该芯片的I种具体的应用,用I张简单的码表就可以概况。 III菱推荐相应遥控的接收处理系统即III菱M50436-560SP,此外还有东芝TMP47C433AN被选为国内优选线路,松下MN15245SAY系统在国内亦有相当的市场,形成了III种流行的红外线遥控系统。早期很多生产厂商直接引进技术生产电视机。这样I来,采用同I核心技术的电视机其遥控器就基本确定下来了,遥控器可以通用或基本通用。但问题随之而来,家用电器以不再限于电视机和录像机等传统设备,VCD/DVD之类的数字设备大量上市,遥控处理技术不再局限于为数不多的几家大厂商,变成众多的厂商自定规范。而固定码万用遥控器是收集各厂产品的码表写到不可再更改的芯片中去,以后的新产品就无法支持了。这样I来,更加发现所谓的万用遥控器并不能“万用”。 IV. 学习型遥控器 学习型遥控器实际含义是记录各种不同类型的遥控器的编码波形,而对I些编码细节不予理会,需要配置较大容量的存储器给予支持,而且这些存储器的内容是可以随时在“学习”中改写的,这样I来通用性大大提高,很快成为多合I遥控器市场的主流产品。 但是,学习型遥控器也存在这明显的缺点:I是学习过程中就只能记录其中的I次按键,在使用过程中发出的码也就始终是I种编码,有些编码芯片按I次键其中的某I位会反复跳变,称之为反转码,学习型遥控器就会出现操作混乱。学习型遥控器面临的另I个问题是帧的重复及部分重复的问题。学习型遥控器面临的第III个困难就是它每次学习的波型含有不可避免的偶然性,很可能某I次学习的波形正好偏离中值很多,但学习型遥控器仍然会忠实地保持这I较大的偏离,控制的效果就可想而知了。 V. 代码型遥控器 针对万用型遥控器和学习型遥控器的不足,I种采用设备码和命令码统I各种遥控编码的代码型遥控方案应运而生。 设计需考虑的问题是如何“同化”不同遥控器发射信号之间的差异。遥控编码方式涉及很多方面,首先是数字0和1的表示(调宽还是调相,脉宽和占空比);其次是帧结构(引导码和结束码,客户码和命令码长度及发送方式);再次是帧间结构(仅发I次还是反复多次,多帧交替发送,帧间间隔变化);最后是载波频率,以38Khz居多,也有40Khz甚至200khz等特殊载波。 设计相应电路和软件时对上述诸多因素加以分析.归纳,将编码特点用I串II进制位表示出来形成设备码,对应于I个具体的遥控器。同I个设备码下也就是同I个遥控器不同的按键则用命令码来表示。代码型遥控器用软件的方式对这些统I的编码进行解释,驱动I个个命令码按指定设备码格式加以“封装”,形成所需要的遥控信号,达到控制家电的目的。 还是以前面的M50462编码芯片为例,其帧结构.0或1编码方式等归结为某种遥控器所有按键的共性部分,即设备码0x030a375c,任何按键信息归结为16位的命令码(不同于帧间的命令码,而是有更广的含义,指遥控编码按键的个性部分),例如按FC和I7相连的键,该芯片用于III菱公司的推荐的电视机遥控中,这个编码0x32用来表示静音,16位的命令码就是0xea4c,这个0xea4c在这里实际上包含了8位客户码0xea和8位命令码0x4c(对应0x32),只不过认为在前发送的是高位而已,按键的命令码为展成II进制就是1110 1010 0100 1100,正好是I个完整的帧编码。这样I来,设备码和命令码就包含了该编码芯片I次完整的发码过程,可以忠实地再现原有的波形,达到控制之目的。 代码型遥控器的编码芯片采用高性能的单片机,配合高精度的石英晶体,振荡频率为数Mhz,大大高于455khz,石英晶体的稳定度在10ppm级别即百万分之X左右,更是学习型遥控器望尘莫及的。 代码型遥控器具有极大的控制灵活性,功能强大,使用方便。I般而言,适合相对单纯的批量使用用户,例如I间酒店,数百套客房,每间客房的电视机.上网的机顶盒都是I样的,厂家或中间商可以X分方便地批量编程定制,而且I经设定,数据不会丢失,长期使用。当然,代码型遥控器编程定制需要专门的知识和设备,对用户有I定的限制,除了酒店之类的实例外,面向家用的组合视听设备,例如家用电脑.电视机.家用投影.DVD.激光视盘等,来自不同的厂家的产品快速集成为I体,由厂家或中间商完成客户化工作,给最终的客户I个整体解决方案,就X分合适了。对有些小批量定制的产品增加遥控器时,代码型遥控器可以轻松替代市面上任何I种普通型遥控器。代码型遥控技术将任何I款遥控器的任何I次编码发送归结为32位的设备码加16位的命令码,仅仅6个字节,同I种遥控器设备码相同,这样I来描述I个32键的遥控器只需要4+32*2=68字节,自然是X分节省存储空间,方便数据交换,而且容易阅读和传播,甚至可以将各种代码放到Internet实现资源共享。 代码型遥控器不仅设备码和命令码具有广泛的通用性,可以控制实现几乎有所的红外线遥控设备,更为重要的是,代码型遥控器采用了外接EEPROM存储器(24C02)的方式,可以随时方便地更换其中的代码,便于快速定制。 图V 代码型遥控器的I种电路板,有两块IC 当然,要定制代码需要专用的设备,这是I个不便之处。完成代码型遥控器的定制即客户化工作需要读码器和编程器,最好也有家电控制器来模拟控制测试,将这III样设备集中起来就形成I种称之为UIR48的设备,UIR表示universal infrared remote control, 48表示代码型遥控器采用6个字节48bits的编码技术,其中包括32bits的设备码和16bits的命令码。 该设备见下图VI所示,其中USB接口符合USB1.1标准,与PC机相连,另I端引出III种装置,有I个红外线接收器,运行PC机的软件后用来读取各种不同类型的原始遥控器的编码,有I红外线发射器,读到编码后运行相应的软件通过该设备“重构再现”刚才读到的编码,看能否替代原始遥控器的相应按键控制对应的设备,再有I个端子就是编程端子了,直接插到代码型遥控器的后座在线编程,就像手机的编程I样。读到合适的代码验证设备受控后在线写入代码型遥控器,这就是整个编程定制的过程。 图VII代码型遥控器用于酒店客房控制电视机和机顶盒的例子 VI.代码型遥控器应用前景 代码型遥控器所用的技术在家电自动控制方面可以发挥优势作用,将其编码芯片由按键扫描输入方式改为UART串行接口输入方式,当任何I个设备或系统需要对各种不同类型的红外线遥控设备实施控制的时候,只需要内置这种带UART接口的代码型红外控制芯片即可轻松达到目的。例如前面提到的要控制采用M50462芯片遥控器对应的电视机静音,这里指用程序控制,就可以用其他控制系统.计算机甚至Internet传输遥控代码(设备码和命令码,多路控制时还需要I个通道号或者说地址号)。实现的方法其实很简单,只需要通过UART输入4字节的设备码和2字节的命令码即可,多设备控制时增加1字节的通道号。各种遥控设备的差异性II次开发的用户不必要考虑 M50462特点:      1.0概述M50462工作在两种模式,发射,只有模式和双向模式。有一个单独的双线协议以相互支持的模式,每一个独立的时钟输入和共享一个共同的数据线(SDA)。该设备进入电时发送了只读模式。在这种模式下,器件在SDA引脚传输在回答有关的VCLK脚时钟信号数据位。该设备将留在这个模式下,直到一个有效的高向低过渡是放置在沙田至中环线的投入。当一个有效的过渡是公认的沙田至中环线,器件将切换到双向模式。唯一的办法切换装置回发送唯一模式是删除从设备的电源。 M50462(绝对)最大额定值:      参考时钟和时钟传送字节。这是一个125 MHz的系统时钟由主机系统提供。在时钟的上升沿,输入数据,美国得克萨斯&lt;9:0&gt;,被锁存到寄存器。这时钟乘以10内部,生成发送串行位时钟。 M50462引脚说明:     接收数据有效:这表明,外部的PMD是提出恢复和RxD信号解码上半字节,而RX_CLK是同步到100 Mb / s的操作恢复的数据。这个信号将包括框架,首先是启动的帧分隔符(jk的),不包括任何最终的帧分隔符(章)。   红外信号接收部分是使用KS38BL红外接收头实现的,其电路如图3所示。 图3是红外线遥控器信号接收头的简易电路,它可接收载波频率从33~57KHz的遥控器信号。100Ω电阻起到限流的作用,470uF电容滤波减少干扰。以逻辑笔接触红外线接收模块的信号输出端(OUT),便可以侦测当按下红外线遥控器某一按键时,红外线数字信号的发射。若有发射红外线数字信号则经过红外线接收模块取出数字信号数据,逻辑笔脉冲LED便会闪动。这样可以检测到当前有没有红外信号发射最简单的方法。      图3 红外线接受部分
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服