红外遥控的单片机解码一、红外线概述二、红外遥控技术简介特点:无线、非接触控制技术,体积小,功耗低,功能强,成本低等。应用:1、家用电器2、玩具3、工业设备(高压、辐射、有毒、粉尘等环境)红外遥控系统组成及编码分类发射部分(键盘、编码调制、红外发送器)组成:接收部分(光电转换放大器、解调、解码电路)按编码分类:主要分为NEC码和RC5码NEC格式的特征:1:使用38kHz载波频率2:引导码间隔是9ms+4.5ms3:使用16位客户代码4:使用8位数据代码和8位取反的数据代码下面的波形是从红外接收头上得到的波形:(调制信号转变成高低电平了)NEC码编码原理数据帧结构(组成)NEC遥控发送数据格式低8位地址码高8位地址码8位数据8位数据反码2009-7-13-2009-7-20前导电平2009-7-13-2009-7-2032位二进制编码2009-7-13-2009-7-20连发代码4.5ms2.5msNEC码编码原理二进制“0”、“1”的表示方法0.565ms1.125ms0.56ms遥控发射码“0”0.565ms2.25ms1.685ms遥控发射码“1”NEC码编码原理注意:1、为了降低电源功耗,遥控器脉宽调制的编码经过38kHz的载波经二次调制2、解码时代码格式应以接收代码为准(接收代码与发射代码反向)RC5编码相对简单一些:下面的遥控器地址是1A,键值是0D的波形反相后的波形:编码规则:得到一组数字:110,11010,001101第一位是起始位S通常是逻辑1第二位是场位F通常为逻辑1,在RC5扩展模式下它将最后6位命令代码扩充到7位代码(高位MSB),这样可以从64个键值扩充到128个键值。第三位是控制位C它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松手还是松手后重复按。如图所示是同一按键重复按两次所得波形,只有第三位是相反的逻辑,其它的位逻辑都一样。市场上常用红外一体化接收头其后是五个系统地址位:11010=1A最后是六个命令位:001101=0D红外遥控的解码红外遥控信号的接收,可以使用一种集红外接收和放大于一体的一体化红外线接收器,无需任何外接元件,就可以输出与TTL电平兼容的信号。比如:VS_1838bNEC码的解码VS_1838b红外一体化接收头3个引脚,Out、GND、Vcc工作电压Vcc2.7~5.5V接收距离L1820M载波频率f=38kHz低电平输出VOLVin=0VVcc=5V0.20.4V高电平输出VOHVcc=5V4.5VVS_1838b红外一体化接收头Vs_1838b与单片机的连接电路INT1P3^3STC89C52OutGNDVcc+5VVS_1838b注意:VS_1838b初状态(空闲状态)Out引脚输出为高电平NEC码的解码——VS_1838b红外一体化接收头起始码(9ms)结果码(4.5ms)VS_1838b输出的前导电平信号VS_1838b输出电平格式(注意:接收代码与发射代码反向)0.565ms0.56ms1.125msVS_1838b输出的码“0”0.565ms2.25ms1.685msVS_1838b输出的码“1”0.565ms1.125ms0.56ms遥控发射码“0”0.565ms2.25ms1.685ms遥控发射码“1”起始码(9ms)结果码(4.5ms)前导电平信号NEC码的解码——VS_1838b红外一体化接收头例如:码“1001”发、收编码为:NEC码的解码——VS_1838b红外一体化接收头接收到的(VS_1838b输出的)数据帧格式VS_1838b接收头输出数据帧格式低8位地址码高8位地址码8位数据8位数据反码注意:数据输出低位(bit0)在前,高位(bit7)在后!遥控信号的解码算法及编程思路解码的关键是如何识别“0”和“1”,从位的定义可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。4.遥控信号的解码算法及编程思路解码过程具体如下:(1)初始化外部中断0(或者1)为下降沿中断。(2)进入外部中断服务程序,关闭外部中断。(3)对引导码进行判断。如果引导码正确,准备接收下面的一帧遥控数据,以查询方式判断遥控的数据是0还是1。如果非引导码,则退出外部中断。4.遥控信号的解码算法及编程思路(4)先后依次接收地址码、地址反码、数据码、数据反码。(5)当接收到32位数据时,说明一帧数据接收完毕。比较数据码和数据反码,若数据码取反后与数据反码不同,则表示为无效数据,应放弃本次接收数据。(6)开启外部中断,准备下一次遥控接收。查询方式与上述过程中的(2)~(5)一致,这里不再重复。1、(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源16X=2-N定时器工作方式1方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。TF1TR1TF0TR0GATEC/TM1M0GATEC/TM1M01&≥110T0引脚INT0引脚10机器周期TH0TL08位8位溢出TCONTMODD0D7D7D0申请中断计数个数与计数初值的关系为:定时/计数器应用初始化程序应完成如下工作:对TMOD赋值,以确定T0和T1的工作方式。计算初值,并将其写入TH0、TL0或TH1、TL1。中断方式时,则对IE赋值,开放中断。使TR0或TR1置位,启动定时/计数器定时或计数。实验电路单片机最小系统通信模块红外HS0038模块显示电路红外接收LED指示灯电路EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U1STC89C51P10P11P12P13P14P15P16D3D4D5D6D7D1D2VCCR161kR271KR171kR281KR291KR301KR311KP10P11P12P13P14P15P16ISP在线编程接口—RS232通讯电路162738495J2UART0C1+1C1-3C2+4C2-5T1IN11R1OUT12T2IN10R2OUT9VCC16V+2V-6GND15T1OUT14R1IN13T2OUT7R2IN8U9MAX232C13104C12104VCCC14104C15104TXDRXDR14100R15100C3104结束中国海洋大学王涛宋海平