搜索
bottom↓
回复: 8

每次只按空调遥控开关键,每次接收到的红外数据都不同

[复制链接]

出0入0汤圆

发表于 2013-5-31 22:35:20 | 显示全部楼层 |阅读模式
每次只按空调遥控开关键,每次接收到的红外数据都不同,知道空调红外遥控比较麻烦  


按了5次开关键,其他所有按键未曾按过,每次解出来的数据都不一样    总不会是滚动码吧??!!!!

以下是红外解出的数据:


FF E6 00 00 E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 82 0F B1 03 70 04 CD 03 6C 00 C1 03 5C 04 DD 03 68 04 DD 03 88 00 A5 03 60 00 C9 03 7C 04 C5 03 58 00 D1 03 68 00 A5 03 84 04 DD 03 50 00 C1 03 68 00 C5 03 54 04 F1 03 4C 05 11 03 48 00 C1 03 18 05 49 03 30 00 E1 03 10 05 59 02 F0 05 61 02 7C 05 E9 02 6C 05 ED 02 64 01 B1 02 60 05 F9 02 5C 05 E5 02 5C 06 01 02 50 01 D1 02 3C 01 F1 02 34 01 DD 02 30 01 FD 02 28 06 19 02 20 02 0D 02 1C 01 F5 02 1C 06 41 3A

FF E6 00 00 E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 56 0F D5 03 80 04 C5 03 74 00 B5 03 28 05 19 03 68 04 D9 03 90 00 95 03 34 00 F9 03 28 05 21 03 78 00 AD 03 54 00 C1 03 5C 05 01 03 74 00 95 03 34 01 05 03 24 05 19 03 58 05 05 03 44 00 C9 03 14 05 49 03 10 05 31 03 10 01 29 02 FC 05 45 02 E0 05 8D 02 7C 05 E5 02 68 05 D9 02 60 05 F9 02 60 05 E1 02 5C 01 E1 02 44 05 FD 02 44 01 E9 02 3C 01 D9 02 34 01 F9 02 28 01 E9 02 20 02 0D 02 18 01 F9 02 18 02 15 3A
FF E6 00 00 E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 52 0F DD 03 54 04 E9 03 50 00 E1 03 44 04 F5 03 5C 05 05 03 54 00 B9 03 58 00 D9 03 40 04 F5 03 4C 00 E5 03 5C 00 A1 03 48 05 21 03 34 00 E9 03 24 01 09 03 14 05 2D 03 10 05 49 03 10 01 05 03 10 05 49 03 18 01 01 03 00 05 5D 02 F4 05 51 02 8C 05 DD 02 70 05 ED 02 68 01 B1 02 54 06 05 02 58 05 E5 02 5C 06 01 02 58 01 BD 02 3C 01 F9 02 24 01 F9 02 08 02 25 01 FC 06 2D 02 30 02 11 02 04 02 11 01 F4 06 5D 3A

FF E6 00 00 E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 76 0F BD 03 54 04 E9 03 60 00 C5 03 54 04 F9 03 58 04 FD 03 5C 00 B1 03 4C 00 E1 03 58 04 ED 03 44 00 D1 03 58 00 D1 03 30 05 31 03 24 00 E9 03 24 01 09 03 18 05 25 03 14 05 49 03 0C 01 09 03 0C 05 4D 03 10 05 31 03 14 01 25 02 FC 05 45 02 DC 05 91 02 78 05 E9 02 68 05 D5 02 68 05 F5 02 5C 05 E5 02 58 01 D5 02 50 05 F1 02 50 01 E5 02 3C 01 D9 02 30 02 05 02 1C 01 F5 02 14 02 19 02 0C 02 05 02 0C 02 21 3A

FF E6 00 00 E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 2A 10 09 03 48 04 F9 03 48 00 E1 03 34 04 F5 03 44 05 15 03 44 00 E1 03 2C 01 09 03 14 05 2D 03 10 01 1D 03 0C 01 11 02 FC 05 4D 03 08 01 19 02 CC 01 65 02 8C 05 B5 02 84 05 DD 02 7C 01 A5 02 60 05 F5 02 6C 01 AD 02 54 06 01 02 60 05 E1 02 60 05 F9 02 68 05 F1 02 64 01 B5 02 48 06 0D 02 58 05 E9 02 58 06 01 02 58 01 C1 02 34 02 05 02 10 02 09 02 00 02 2D 01 FC 06 2D 02 38 01 FD 02 14 02 0D 01 FC 06 49 3A

FF E6 00 00 E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 7A 0F BD 03 3C 05 09 03 38 00 F1 03 38 04 E9 03 68 05 09 03 54 00 B9 03 48 00 ED 03 44 04 FD 03 44 00 E1 03 4C 00 C9 03 2C 05 35 03 24 00 ED 03 1C 01 0D 03 14 05 31 03 10 05 49 03 0C 01 09 03 0C 05 4D 03 14 05 2D 03 0C 01 29 02 F4 05 55 02 90 05 DD 02 78 05 E1 02 68 05 D9 02 68 05 F5 02 60 05 E1 02 5C 01 D1 02 54 05 F1 02 4C 01 E9 02 40 01 D5 02 30 01 FD 02 2C 01 E9 02 20 02 0D 02 18 01 FD 02 10 02 19 3A

空调是美的的      熟悉的朋友赐教一二  

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入84汤圆

发表于 2013-5-31 22:53:43 | 显示全部楼层
你想说的是什么,你的这串数据代表什么意思,你的数据怎么得出来的,美的空调的遥控器数据开机和关机不同,仅此区别

出0入0汤圆

发表于 2013-5-31 23:28:07 | 显示全部楼层
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit rw=P1^1;
sbit dula=P2^6;
sbit wela=P2^7;
sbit LED1=P1^3;
sbit LED2=P1^4;
uchar irtime,startflag,bitnum,irprosok,irreceok;
uchar irdata[33];  //引导码1位,8+8+8+8
uchar ircode[4];
uchar disp[8];

void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void init_time0()
{
        TMOD=0x02;
        TH0=0x00;
        TL0=0x00;
        ET0=1;
        EA=1;
        TR0=1;
}
void init_INT0()
{
        IT0=1;
        EX0=1;
        EA=1;
}
void irwork()
{
        disp[0]=ircode[0]/16;
        disp[1]=ircode[0]%16;
        disp[2]=ircode[1]/16;
        disp[3]=ircode[1]%16;
        disp[4]=ircode[2]/16;
        disp[5]=ircode[2]%16;
        disp[6]=ircode[3]/16;
        disp[7]=ircode[3]%16;
       
}
/*********************/

void write_com(uchar com)
{
        lcdrs=0;  //写指令.
        P0=com;       
        delay(5);
        lcden=1;  //高脉冲,写东西
        delay(5);
        lcden=0;
}
void write_data(uchar date)
{       
        lcdrs=1;  //写数据.
        P0=date;       
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
       
         
}  
void init_LCD()
{
        P0=0x00; //
        dula=0;         //         关数码管
        wela=0;         //

        rw=0;  //R/W读写选择端,低电平写,高电平读
        lcden=0;
        write_com(0x38);//显示   
        write_com(0x0e);//光标.
        write_com(0x06); //写一字符后地址指针加1,整屏显示不移动.
        write_com(0x01);//清屏.
        write_com(0x80);//初始化数据,0x80表示指向第一个       
//        write_com(0x80+0x10);  // 初始化数据,从0x10位写起.
}
void display_LCD()
{
        uchar i;
        write_com(0x80);
        for(i=0;i<8;i++)//////////
        {
                if(disp[i]<10)
                        write_data(48+disp[i]);
                else
                        write_data(55+disp[i]);
        }       
//        irkeyscan();
/*        switch(ircode[2])
        {
                case 0x16:write_data(48);break;
                case 0x0c:write_data(49);break;
                case 0x18:write_data(50);break;
                case 0x5e:write_data(51);break;
                case 0x08:write_data(52);break;
                case 0x1c:write_data(53);break;
                case 0x5a:write_data(54);break;
                case 0x42:write_data(55);break;
                case 0x52:write_data(56);break;
                case 0x4a:write_data(57);break;
                          
        }                  */
/*        if(ircode[2]==0x16)
                write_data(48);
        if(ircode[2]==0x0c)
                write_data(49);
        if(ircode[2]==0x18)
                write_data(50);                 */
}
void irpros()
{
        uchar k,i,j,value;
        k=1;  //第一个不用提取(引导码)
        for(j=0;j<4;j++)  //四个数据
        {
                for(i=0;i<8;i++)
                {
                        value=value>>1;
                        if(irdata[k]>6)
                        {
                                value=value|0x80;
                        }
                        k++;
                }
                ircode[j]=value;
        }
        irprosok=1;
}

void main()
{
           init_time0();
        init_INT0();
        init_LCD();
        while(1)
        {

       
                if(irreceok)
                {
                        irpros();
                        irreceok=0;
                }
                if(irprosok)
                {
                        irwork();
                        irprosok=0;
                        display_LCD();
                        if(disp[7]==0x0F)
                        {
                         LED2=0;
                         delay(5000);
                         LED2=1;
                        }
                }
               
        }
}

void timer0() interrupt 1
{
        irtime++;  //红外时间
}
void int0() interrupt 0
{
        if(startflag)
        {
                if(irtime>32)//检测引导码
                {
                        bitnum=0;
                }
                irdata[bitnum]=irtime;
                irtime=0;
                bitnum++;
                if(bitnum==33)       
                {
                        bitnum=0;
                        irreceok=1;//标志红外接收完成
                }
        }
        else
        {
                startflag=1;
                irtime=0;
        }
}

试试这代码可以不吧,不要用串口连接电脑,我是用液晶屏的。

出0入0汤圆

发表于 2013-5-31 23:28:55 | 显示全部楼层
1602 液晶屛

出0入0汤圆

 楼主| 发表于 2013-5-31 23:58:09 | 显示全部楼层
摘自网上的那段红外学习代码有问题  

用以前的解码程序 发现 不停的按开关键  只会出现两种数据:
unkown key or err
     98 E7 FD 02
unkown key or err
     03 FC DE 21
unkown key or err
     98 E7 FD 02
unkown key or err
     03 FC DE 21
unkown key or err
     98 E7 FD 02

出0入0汤圆

发表于 2013-6-2 15:24:54 | 显示全部楼层
mark         

出0入0汤圆

发表于 2013-6-2 19:38:38 | 显示全部楼层
程序代码的问题,

出0入0汤圆

发表于 2013-6-2 19:56:32 | 显示全部楼层
可能是做了加扰处理。。包头和包尾不变,提高你山寨的难度  。。只是个人推测,哈哈~

出0入0汤圆

 楼主| 发表于 2013-6-2 20:15:22 | 显示全部楼层
sco518 发表于 2013-6-2 19:56
可能是做了加扰处理。。包头和包尾不变,提高你山寨的难度  。。只是个人推测,哈哈~ ...

测试的网上下的那个程序有问题   

仅按开关键的情况下只输出两种不同的数据  仅两种   

请看http://www.amobbs.com/thread-5536904-1-1.html
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 09:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表