打印

PT2262 解码程序-C语言

[复制链接]
1568|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bbapple|  楼主 | 2015-10-25 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#i nclude <reg51.h>

sbit RemPin  =   P3^2  ;

unsigned char receive[3];

void RemIn(void) interrupt 0 using 1
{
    unsigned char i,j;
    unsigned int temp;

EA=0;
TH0=0;
   TL0=0;
   while (!RemPin); //等待高电平
    TR0=1;
    while (RemPin)  //等待低电平
        if (TF0==1)  goto RemExit;  //超时就退出;
    TR0=0;
    temp=TH0;
    temp=(temp<<8)+TL0;
    if (temp>6000 || temp<4000)   //判断同步码的宽度
    {
        temp=TH0;
  goto RemExit;
    }
//同步码检测成功
    for (i=0; i<3; i++) //解 3*8=24 位码
    for (j=0; j<8; j++)
    {
        while (!RemPin);  //等待高电平
        TH0=0;
    TL0=0;
  TR0=1;
        while (RemPin)  //等待低电平
            if (TF0==1) goto RemExit; //超时就退出
  TR0=0;
        temp=TH0;
        temp=((temp<<8)+TL0);
  //      /*
        if (temp>400 && temp<600)
        {
            receive[i]=receive[i]<<1;
            receive[i]=receive[i]+1; //保存 1
        }
        else if (temp>100 && temp<234)
            {
                receive[i]=receive[i]<<1;   //保存0
            }
            else goto RemExit;
    }
    temp=0;//在这里设置一个断点,运行到这里后看看receive里的三个字节数据就是解码的结果
    RemExit:
    {
        TR0=0;
  EA=1;
        RemPin=1;
        TF0=0;
        return;
    }
}

///*
main()
{
    RemPin=1;
    EA=1;
    IT0=1;  //设定INT0的触发方式为脉冲负边沿触发
    EX0=1;  //打开INT0中断请求
    TMOD=0x01;
    while (1);  
//RemPin=1;
}
沙发
毁灭2012| | 2015-10-25 21:39 | 只看该作者
那编码程序有木有啊

使用特权

评论回复
板凳
zhuotuzi| | 2015-10-30 11:40 | 只看该作者
谢谢,这个例程不错啊。

使用特权

评论回复
地板
玛尼玛尼哄| | 2015-10-30 12:59 | 只看该作者
   else goto RemExit;

使用特权

评论回复
5
迪卡| | 2015-10-31 09:35 | 只看该作者
感谢分享

使用特权

评论回复
6
bbapple|  楼主 | 2015-11-10 19:43 | 只看该作者
毁灭2012 发表于 2015-10-25 21:39
那编码程序有木有啊

呵呵,这个编码的网上很多的,解码的比较少而已。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

1811

帖子

1

粉丝