C51单片机模拟pt2272解码

2020-01-21 21:46发布

现在正在做一个用C51单片机模拟2272的解码程序,用的普通IO口循环检测进行,的找的论坛里的代码,但是怎么也调试不通,坛子里有人有模拟解码的代码能共享下吗?或者帮忙看看下面的代码哪里有错误啊,万分感谢大家了
#include "315MHz.h"
#define uchar unsigned char
#define uint unsigned int
bit bdata recv_flg  = 0;//bit right or fault
bit bdata lianji_flg = 0; //long or short(1,0)

void d40us(uchar n) //40us delay
{
        uchar data i,j;
        for(j=n;j>0;j--)
        {
                for(i=100;i>0;i--)
                _nop_();
        }
}
unsigned long decode(void)
{
        unsigned long DATA;
        unsigned char i,count;
        DATA = 0;
        for(count=0;count<25;count++)
        {
                i=0;
                while(Rx_315&(1))
                {
                        d40us(1);
                        i++;
                        if (i>45) goto end;
                }
                DATA*=2;
                if(i<12)                                                                  //·Ö±æ¸ßµÍ
                {
                        if (!((i<12)&&(i>5)))  goto end;//µçƽºÏ·¨
                        DATA+=0;
                }
                else
                {
                        if (!((i>24)&&(i<32))) goto end;
                  DATA+=1;  
                }
               
                //while (!(Rx_315&(1)))            //µÍλ¼ÆÊý
                //{
                        //d40us(1);
                        //i++;
                        //if (i>40) goto end;      //ÏÞʱ½âÂë
                        //else break;
                //}
                //if (i<3) goto end;      //¶Ô±È¿í¶È
        }
        return DATA;
        end:         
  return 0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。