搜索
bottom↓
回复: 91

让PT2262无线解码不再神秘,让菜鸟们都能做解码程序

  [复制链接]

出0入0汤圆

发表于 2011-3-27 13:14:45 | 显示全部楼层 |阅读模式
//自适应频率的2262解码代码 晶振11.0592到22.1184MHZ
//p3.2脚接 315m无线接收头的输出端,p1口接LED作指示灯
#include"AT89x52.h"
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit shou = P3^2;
//=========================================================================
void InitTimer0(void)
{
  TMOD = 0x11;    //定时器1,定时器0用模式1 16位计时用,12T
  EA = 1;
  ET0 = 1;
  ET1=1;
}
//========================================================================
void main(void)
{
  InitTimer0();
  EX0=1;
  while(1);
}
//========================================================================
void ex0(void) interrupt 0
{
  bit err=0;
  uchar i,tl,th,ma1,ma2,ma3;
  uchar TimeCount;
  uint l,m;
  EX0=0;
  TR1=1;
  i=0;
  if(TimeCount>0)//当按键按下释放后该值不在赋值就同通过递减直到该值等于0
   {
    TimeCount--;//等于0后表示按键释放
   }
  while(shou==0);
  while(i<24)
   {
    while(shou==0);        //等待高电平到来
    tl=TL1;
    th=TH1;
    TH1=TL1=0;         //记录低电平长度并初始化高电平头
    l=th;
    l=((l<<8)+tl);
    if(i==0)         //处理低电平
     {
      if(l>2360)      
       {        //确认是引导头
        m=l/31;
       }
      else         //不符合规则(出错)
       {
        i=0;
        TR1=0;
        TH1=TL1=0;
        err=1;
        break;
       }
     }
    else
     {
     if(((l>(m-(m/4)))&&(l<(m+(m/4))))||((l>((m*3)-(m/2)))&&(l<((m*3)+(m/2)))));
     else
      {
       i=0;
       TR1=0;
       TH1=TL1=0;
       err=1;
       break;
      }        
     }
    while(shou==1);      //等待低电平到来
    th=TH1;
    tl=TL1;
    TH1=TL1=0;
    l=th;
    l=((l<<8)+tl);
    //  if((l>460)&&(l<760))    //短为0  短610
    if(((l>(m-(m/4)))&&(l<(m+(m/4)))))
     {
      i++;
      ma1>>=1;
     }
    //  else if((l>1577)&&(l<1977))  //长为1  长1777
    else if(((l>((m*3)-(m/2)))&&(l<((m*3)+(m/2)))))
     {
      i++;
      ma1>>=1;
      ma1+=128;
     }
    else        //不符合规则出错
     {
      i=0;
      TR1=0;
      TH1=TL1=0;
      err=1;
      break;
     }
    if(i==8)
     {
      ma3=ma1;
      //SBUF=ma3;
      //P1=ma3;
     }
    if(i==16)
     {
      ma2=ma1;
      //SBUF=ma2;
      //P1=ma2;
     }
    if(i==24)////解码成功结束
     {
      
      if(TimeCount==0)//为0表示是新的一次按下对其进行处理,如过该值大于0表示已经按下不在处理
       {
        ACC=ma1;
        if(ACC==0xC0)
        //P1=0xef;
        P1_0=~P1_0;
        if(ACC==0x30)
        //P1=0xdf;
        P1_1=~P1_1;
        if(ACC==0x0c)
        //P1=0xbf;
        P1_2=~P1_2;
        if(ACC==0x03)
        //P0=0x7f;
        P1_3=~P1_3;
       }
      TimeCount=30;//防止按键没放开直在取反,保证按1次只做1次处理
     }
   }
  TR1=0;
  TH1=0;
  TL1=0;
  EX0=1;
}

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-3-27 16:38:46 | 显示全部楼层
回复【楼主位】LBQ691477940
----------------------------------------------------------------------楼主,求全部代码!!!

出0入0汤圆

发表于 2011-3-27 18:41:55 | 显示全部楼层
jh

出0入0汤圆

发表于 2011-3-27 18:44:04 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-3-28 00:26:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-28 09:14:13 | 显示全部楼层
汗,楼主你把代码转到这来了,不过高低位顺序错误的问题怎么不先改改,这个我也提到了的。

出0入0汤圆

发表于 2011-4-19 17:56:49 | 显示全部楼层
还不完全明白……标记一下!

出0入0汤圆

发表于 2011-5-3 14:09:22 | 显示全部楼层
先做个记号,可能会用到

出0入0汤圆

发表于 2011-5-3 14:26:15 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-5-3 14:47:38 | 显示全部楼层
软件解码,呵呵

出0入0汤圆

发表于 2011-5-9 13:47:27 | 显示全部楼层
这个思路好,改改程序的位数再加上段发射程序可以去解摩托车、汽车的电子防盗器。
车主在开车时接收到他遥控器发出的码并保存,接着尾跟前他。等他停车后发射刚接收的码,解他的锁!

出0入0汤圆

发表于 2011-5-9 14:40:56 | 显示全部楼层
先做个记号,可能会用到

出0入0汤圆

发表于 2011-5-9 15:25:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-9 17:46:52 | 显示全部楼层
为了明白我在在一些地方加了自己的注释,对着手册估计大家就能看明白,这个程序全部工作在中断中,几乎不能处理其他事情,看来比较难使用。
2272-2262用单片机中断处理的话,就会面临没有数据时,中断会更频繁的进出,使得cpu不好干其他的事情,不知道大家有没有好的解决办法




void ex0(void) interrupt 0
{
    bit err=0;
    uchar i,tl,th,ma1,ma2,ma3;
    uchar TimeCount;
    uint l,m;
    EX0=0;
    TR1=1;
    i=0;
    if (TimeCount>0)//当按键按下释放后该值不在赋值就同通过递减直到该值等于0
    {
    TimeCount--;//等于0后表示按键释放
    }
        while (shou==0);
        while (i<24)
        {
                while (shou==0);       //等待高电平到来
                tl=TL1;
                th=TH1;
                TH1=TL1=0;         //记录低电平长度并初始化高电平头
                l=th;
                l=((l<<8)+tl);
                if (i==0)        //处理低电平
                {
                        if (l>2360)
                        {        //确认是引导头
                                m=l/31;//l值是引导头的低电平时间,除31也就是“0”值编码的高电平时间,即4α
                        }
                        else         //不符合规则(出错)
                        {
                                i=0;
                                TR1=0;
                                TH1=TL1=0;
                                err=1;
                                break;
                        }
                }
                else
                {
                        if (((l>(m-(m/4)))&&(l<(m+(m/4))))||((l>((m*3)-(m/2)))&&(l<((m*3)+(m/2)))));
                        else//我们可以把这里的“bit”,看成两个半位组成,那么在这里判断这个半位是否符合标准
                        {   //式子翻译一下就是 看看l是不是在3α,5α或者10α,14α之间
                                i=0;
                                TR1=0;
                                TH1=TL1=0;
                                err=1;
                                break;
                        }
                }
                while (shou==1);     //等待低电平到来
                th=TH1;
                tl=TL1;
                TH1=TL1=0;
                l=th;
                l=((l<<8)+tl);
                //  if((l>460)&&(l<760))    //短为0  短610
                if (((l>(m-(m/4)))&&(l<(m+(m/4)))))
                {//高电平时间在3α,5α之间
                        i++;
                        ma1>>=1;//ma1之前未进行过初始化,这并不影响结果,因为之前的数据会被移除!!!!!
                }
                //  else if((l>1577)&&(l<1977))  //长为1  长1777
                else if (((l>((m*3)-(m/2)))&&(l<((m*3)+(m/2)))))
                {//高电平时间在10α,14α之间
                        i++;
                        ma1>>=1;
                        ma1+=128;
                }
                else        //不符合规则出错
                {
                        i=0;
                        TR1=0;
                        TH1=TL1=0;
                        err=1;
                        break;
                }

                if (i==8)
                {
                        ma3=ma1;
                        //SBUF=ma3;
                        //P1=ma3;
                }
                if (i==16)
                {
                        ma2=ma1;
                        //SBUF=ma2;
                        //P1=ma2;
                }
                if (i==24)////解码成功结束
                {

                        if (TimeCount==0)//为0表示是新的一次按下对其进行处理,如过该值大于0表示已经按下不在处理
                        {
                                ACC=ma1;
                                if (ACC==0xC0)
                                        //P1=0xef;
                                        P1_0=~P1_0;
                                if (ACC==0x30)
                                        //P1=0xdf;
                                        P1_1=~P1_1;
                                if (ACC==0x0c)
                                        //P1=0xbf;
                                        P1_2=~P1_2;
                                if (ACC==0x03)
                                        //P0=0x7f;
                                        P1_3=~P1_3;
                        }
                        TimeCount=30;//防止按键没放开直在取反,保证按1次只做1次处理
                }
        }
        TR1=0;
        TH1=0;
        TL1=0;
        EX0=1;
}

出0入0汤圆

发表于 2011-5-9 17:50:18 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-9 18:30:22 | 显示全部楼层
求源码

出0入0汤圆

发表于 2011-7-5 17:12:50 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-7-7 09:33:51 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2011-7-7 10:07:38 | 显示全部楼层
谢谢分享,最近正在弄这个东西

出0入0汤圆

发表于 2011-7-7 14:02:11 | 显示全部楼层
正在捣鼓这东西呢= =,太谢谢楼主了

出0入0汤圆

发表于 2011-7-9 17:18:18 | 显示全部楼层
mark党

出0入0汤圆

发表于 2011-7-9 20:11:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-9 21:36:47 | 显示全部楼层
我喜欢流程图

出0入4汤圆

发表于 2011-7-9 21:54:12 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2011-7-10 08:24:14 | 显示全部楼层
谢谢分享,学习了!

出0入0汤圆

发表于 2011-11-23 01:21:04 | 显示全部楼层
顶一下,好好学习

出0入0汤圆

发表于 2011-11-23 08:29:15 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2011-11-23 08:38:10 | 显示全部楼层
老兄,2262是编码,2272才是解码啊

出0入0汤圆

发表于 2011-11-23 09:10:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-24 15:18:18 | 显示全部楼层
用处跌么大嘛。。。

出0入0汤圆

 楼主| 发表于 2011-11-25 20:52:12 | 显示全部楼层
回复【29楼】iamyanh
老兄,2262是编码,2272才是解码啊
-----------------------------------------------------------------------
〈自适应频率的2262解码代码〉你自己理解错了吧!
就是解 2262的编码呀

出0入4汤圆

发表于 2011-11-26 10:04:59 | 显示全部楼层
参考13楼 哈哈

出0入0汤圆

发表于 2011-11-26 11:10:49 | 显示全部楼层
参考13楼 哈哈

出0入0汤圆

发表于 2011-11-26 20:57:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-26 23:52:34 | 显示全部楼层
回复【楼主位】LBQ691477940
-----------------------------------------------------------------------

非常感谢你的源代码,对我很有帮助

出0入0汤圆

发表于 2011-11-27 19:30:43 | 显示全部楼层
收藏

出0入0汤圆

发表于 2011-11-27 19:31:06 | 显示全部楼层
收藏

出0入0汤圆

发表于 2011-11-27 19:31:20 | 显示全部楼层
收藏

出0入0汤圆

发表于 2011-11-27 20:22:37 | 显示全部楼层
看着还有感觉有压力,谢谢楼主分享。

出0入0汤圆

发表于 2011-11-27 22:58:07 | 显示全部楼层
不错

出0入0汤圆

发表于 2011-11-27 23:46:47 | 显示全部楼层
不错嘿

出0入0汤圆

发表于 2011-11-28 00:26:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-28 09:11:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-28 09:19:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-28 11:03:01 | 显示全部楼层
以前用51汇编也写了个解码的。

出0入0汤圆

发表于 2011-12-5 19:40:41 | 显示全部楼层
好东西,学习了!

出0入0汤圆

发表于 2011-12-5 20:05:03 | 显示全部楼层
用100us中断最好解码

出0入0汤圆

发表于 2011-12-5 20:25:11 | 显示全部楼层
做个记号,哪天用得着时参考参考

出0入0汤圆

发表于 2011-12-5 21:44:45 | 显示全部楼层
MARK 收藏

出0入0汤圆

发表于 2011-12-5 21:54:20 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-12-5 22:45:54 | 显示全部楼层
mark

出100入0汤圆

发表于 2011-12-5 23:43:23 | 显示全部楼层
mark.!

出0入0汤圆

发表于 2011-12-8 01:25:26 | 显示全部楼层
回复【49楼】raxb
-----------------------------------------------------------------------

当PT2262的震荡电阻选用1.2M、1.5M时,100us中断查询是无法解码的。
至少66微妙中断,才可以解码(PT2262震荡电阻≥1.2M)

出0入0汤圆

发表于 2011-12-8 13:02:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-8 14:38:25 | 显示全部楼层
学习一下 以后玩玩

出0入0汤圆

发表于 2011-12-8 20:55:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-8 21:02:21 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-12-9 19:33:24 | 显示全部楼层
回复【楼主位】LBQ691477940
-----------------------------------------------------------------------

mark

出0入0汤圆

发表于 2011-12-9 23:27:11 | 显示全部楼层

出0入0汤圆

发表于 2012-4-24 09:52:13 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2012-4-24 10:04:21 | 显示全部楼层
谢谢楼主

出0入0汤圆

发表于 2012-9-3 11:04:58 | 显示全部楼层
mark              

出0入0汤圆

发表于 2012-9-3 11:07:13 | 显示全部楼层
markkkkkkkkkk

出0入0汤圆

发表于 2012-9-3 17:32:07 | 显示全部楼层
好贴!当然要顶一下才行。

出0入0汤圆

发表于 2012-9-3 19:55:35 | 显示全部楼层
ye955 发表于 2011-5-9 13:47
这个思路好,改改程序的位数再加上段发射程序可以去解摩托车、汽车的电子防盗器。
车主在开车时接收到他遥 ...

汽车防盗器会用2262之类的廉价货吗?至少也要搞个什么跳码什么的吧

出0入0汤圆

发表于 2012-9-4 19:20:27 | 显示全部楼层

mark  。。。。。。。。。。

出0入0汤圆

发表于 2012-9-5 16:21:51 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-12-2 09:17:12 | 显示全部楼层
做个记号,有用时来看

出0入0汤圆

发表于 2012-12-17 21:21:23 | 显示全部楼层
要详细的,都有最好

出0入0汤圆

发表于 2012-12-17 22:13:29 来自手机 | 显示全部楼层
MARK  MARK

出0入0汤圆

发表于 2012-12-18 06:29:33 | 显示全部楼层
感觉没有什么实用的价值

出0入0汤圆

发表于 2012-12-18 09:34:17 | 显示全部楼层
这个有学习必要,mark一下

出0入0汤圆

发表于 2013-2-28 10:27:53 | 显示全部楼层
太好了,正好需要谢谢lz!

出0入0汤圆

发表于 2013-2-28 14:05:12 | 显示全部楼层
xuexi学习了。

出200入0汤圆

发表于 2013-2-28 23:36:24 | 显示全部楼层
谢谢!收藏备用

出0入0汤圆

发表于 2013-2-28 23:49:02 | 显示全部楼层
在死等,其它的事情处理不了
头像被屏蔽

出0入0汤圆

发表于 2013-2-28 23:58:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2013-3-6 23:04:36 | 显示全部楼层
mark 一下子..嘎嘎..嘎嘎.

出0入0汤圆

发表于 2013-3-7 09:45:40 | 显示全部楼层
果断mark!

出0入0汤圆

发表于 2013-3-7 20:37:15 | 显示全部楼层
楼主:接收距离是否和PT2272解码一样??????

出0入0汤圆

发表于 2013-3-8 13:59:50 | 显示全部楼层
很好的东西

出0入0汤圆

发表于 2013-3-10 23:58:36 | 显示全部楼层
我现在用万能解码程序

出0入0汤圆

发表于 2013-3-11 00:11:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-4-6 20:13:29 | 显示全部楼层
好资料,收藏学习之!!!

出0入0汤圆

发表于 2013-4-23 22:52:55 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2013-4-26 00:57:04 来自手机 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-7-21 23:27:00 | 显示全部楼层
谢谢楼主~

出0入4汤圆

发表于 2014-7-22 06:09:33 | 显示全部楼层
mark                          

出0入0汤圆

发表于 2014-7-22 09:05:32 | 显示全部楼层
mark               

出0入0汤圆

发表于 2014-7-22 09:20:40 | 显示全部楼层
谢谢分享。

出145入215汤圆

发表于 2014-7-22 22:54:17 来自手机 | 显示全部楼层
mark!谢谢分享

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-11 16:29

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

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