《红外线遥控器解码程序.docx》由会员分享,可在线阅读,更多相关《红外线遥控器解码程序.docx(45页珍藏版)》请在第壹文秘上搜索。
1、红外线遥控器解码程序红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装at具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。1红外遥控系统通用红外遥控系统由发射和接收两大部分组成,应用端/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。蕊菽f编码调制LED遥控发射器一卜光/电放大解调4丽逋控接收
2、方图1红外遥控系统框图2遥控发射器及其编码遥控发射器专用芯片很多,根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类,这里我们以运用比较广泛,解码比较容易的脉冲宽度调制来加以说明,现以LC7461组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控端码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的IT上述“0”和T”蛆成的42位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电
3、源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,7461产生的遥控墉码是连续的42位二进制码组,其中前26位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码用于核对数据是否接收准确。当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、T”均以0.56ms的低电平开始,不同的是高电平的宽
4、度不同J(F为0.56ms门”为1.68ms,所以必须根据高电平的宽度区另!”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为tT,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)2=0.84ms最为可靠,一般取0.84ms左右即可。根据红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。接收器及解码1.T0038是塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,
5、就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。下面是一个对51实验板配套的红外线遥控器的解码程序,它可以把上图32健的红外遥控器每一个按键的键值读出来,并且通过实验板P1口的8个LED显示出来,在解码成功的同时并且能发出“看嘀嘀”的提示音。ORGOOOOHAJMPMAIN;转入主程序ORGOOO3H;外部中断P3.2脚INTO入口地址AJMPlNT;转入外部中断服务子程序(解码程序);以下为主程序进行CPU中断方式设置MAIN:SETBEA;打开CPU总中断
6、请求SETBITO;设定INTO的触发方式为脉冲负边沿触发SETBEXO;打开INTO中断请求;以下对单片机的所有引脚进行初始化,全部设置成高电平MOVP2,#11100111BAJMP$;以下为进入P3.2脚外部中断子程序,也就是解码程序INT:CLREA;暂时关闭CPU的所有中断请求MOVR6,#10SB:ACALLYS1;调用882微秒延时子程序JBP32EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序DJNZR6,SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序;以上完成对遥控信号的9000微秒的初始低电平信号的识别。JNBP3.2,$
7、;等待高电平避开9毫秒低电平引导脉冲ACALLYS2涎时4.74毫秒避开4.5毫秒的结果码MOVR7,#26;忽略前26位系统识别码JJJJAJNBP3.2$等待地址码第一位的高电平信号1.CALLYS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态MOVC,P32;将P3.2引脚此时的电平状态。或1存入C中JNCUUUA;如果为0就跳转到UUUA1.CALLYS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束UUUA:DJNZR7,JJJJAMOVR1#IAH;设定1AH为起始RAM区MOVR2,#2;接收从1AH到IBH的2个内存,用于存放操作码和操作反码PP:MOVR3
8、,#8;每组数据为8位JJJJ:JNBP3.2$等待地址码第一位的高电平信号1.CALLYS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态MOVGP3.2;将P3.2引脚此时的电平状态。或1存入C中JNCUUU;如果为O就跳转到UUU1.CALLYS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束UUU:MOVA,R1;将R1中地址的给ARRCA;将C中的值。或1移入A中的最低位MoVR1,A;将A中的数Ir时存放在R1数值的内存中DJNZR3,JJJJ;接收满8位换一个内存INCR1;对R1中的值加1,换下一个RAMDJNZR2,PP;接收完8位数据码和8位数据反码,存放
9、在1AH/1BH中M0VA,1AHCPLA;对IAH取反后和IBH比较CJNEABH,EXIT;如果不等表示接收数据发生错误,放弃MOVP1,1AH;将按键的键值通过P1口的8个LED显示出来!CLRP2.5;蜂鸣器鸣响嘀嘀嘀-的声音,表示解码成功1.CALLYS21.CALLYS21.CALLYS2SETBP2.5;蜂鸣器停止EXIT:SETBEA;允许中断RETI;退出解码子程序YS1:MOVR4,#20;延时子程序1,精确延时882微秒D1:M0VR5,#20DJNZR5,$DJNZR4,D1RETYS2:MOVR4,#10涎时子程序2,精确延时4740微秒D2:MOVR5,#235DJ
10、NZR5,$DJNZR4,D2RETYS3:MOVR4,#2;延时程序3,精确延时1000微秒D3:MOVR5,#248DJNZR5,$DJNZR4,D3RETENDOA0111121314151617181910IAIBOE0203IC060405OCOD0809ID00IFIEOB07OF这是按照红外遥控器按键的实际位置给出的32个按键的键值16进制)PT2262/2272是一对带地址、数据编码功能的红外遥控发射/接收芯片。其中发射芯片PT2262-IR将载波振荡器、编码器和发射单元集成于一身,使发射电路变得非常筒洁.876543210-1 1 1 1 1 1 1 1 1123456789
11、J VDDAOC3 DoutAlE2 OSClA2CU OSC2A3C2 TEA4C2 A11D5A5C3 A10D4DOC3 A9D3DlC3 A8D2VssC3 VDD2 VT3 OSCl3 0SC22 DIN2 D5 D4 D3 D2OSCl 0SC2TEDoutPT2262TR内部原理框图地址接收芯片PT2272的数据输出位根据其后缀不同而不同,数据输出具有,暂存”和,锁存”两种方式,方便用户使用。后缀为“M,为喈存型”,后级为F为锁存型”,其数据输出又分为0、2、4、6不同的输出,例如:PT2272M4则表示数据输出为4位的暂存型红外遥控接收芯片。AOCAlCA2CA3CA4CA5C
12、A6D0CA7D1C图 1 PT2262TRPT2272引脚图VssCPT2262IR引脚功能说明:Pinl-Pin6(A0-A5):地址输入端,可编成”0”和“开路”三种状态.Pin7、Pin8、pinlO-Pinl3(A6/D0-A11/D5):地址或数据输入端,地址输入时用Pinl-Pi116,做数据输入时只可编成“1”、“0”两种状态。Pinl4(TE):发射使能端,低电平有效.PinI5、Pinl6(OSCKOSC2):外接振荡电阻,决定振荡的时钟频率。Pinl7(Dout):数据输出端,编码由此脚串行输出。Pin9、Pinl8(Vdd,Vss):电源+,-输入端。PT2272引脚功
13、能说明:Pinl-Pin6(A0-A5):地址输入端,可编成“、”0”和“开路”三种状态。要求与PT2262设定的状态一致。PiII7、Pin8、pinlO-Pinl3(D0-D5):数据输出端,分暂存和锁存两种状态。Pin14(DI):脉冲编码信号输入端。PinI5、Pinl6(OSCKOSC2):外接振荡电阻,决定振荡的时钟频率。Pin17(VT):输出端,接收有效信号时,VT端由低电平变为高电平。Pin9、Pinl8(Vdd,Vss):电源+,-输入端。PT2262/PT2272电气参数参数名称符号工作条件最小值典型值最大值单位工作电压Vdd-3-15V工作电流IDDVdd=12V停振A
14、O-All开路-0.020.03uA输出驱动电流(Dout)IohVdd=5V,Voh=3VVdd=8V,Voh=4VVdd=12V,Voh=6V3610mA输出驱动电流(Dout)IolVdd=5V,Voi=3VVdd=8V,Voi=4VVdd=12V,Vol=6V259mAPT2262/PT2272极限参数参数名称符号极限值单位工作电压Vdd-0.3-+16VV输入电压Vi-03-Vdd+03VV输出电压Vo-0.3-Vdd+0.3VV功耗Pd300(Vdd=12V)mW工作温度Topt-20-+70C存储温度Tmb-40+125rPT2262/PT2272工作原理:PT2262-IR发射芯片地址编码输入有“1”、0”和“开路”三种状态,数据输入有“1”和“0”两种状态。由各地址、数据的不同接脚状态决定,编码从输出端Dout输出,通过红外发射管发射出去.其编码时序波形如图2所示.Dout输出的编码信号是调制在38kHz载波上的,OSChOSC2外接的电阻决定载频频率,一般电阻可在430k470k之间选择即可。位“0”同步头_I 8位4位图2 PT2262-I蹄