百度空间 | 百度首页 
 
查看文章
 
RC-5红外遥控程序!
2007年03月19日 星期一 20:19

这个程序是我从网上找来的,原作者是刘玉宏

不过我没看出来他用的什么片子,我用AT89S51没法编译

现在已经改过来了,嘿嘿,希望能对大家学RC-5协议有些帮助

include<reg52.h>

// 波特率发生器的初值(115200波特率)XTAL 11.0592M
//#define BRGR1_DATA 00   
//#define BRGR0_DATA 0x50

sbit WAY_0 = P2^0;
//sbit LED_RECIEVE= P0^6;

unsigned char bdata buffer;//发往串口的缓冲器
sbit way0=buffer^0;        
unsigned char irtype;      //RC5一帧的各段的标志

unsigned char count,buf_s[3];       //红外接收位寄存器
unsigned char end;         //红外一帧接收结束标志

void t0_service(void) interrupt 1 using 1         
{
     //第一次进入中断,为定时1/4位的时间445us
     //以后则定时一位时间1.778ms进入中断
way0=~WAY_0; //一体化解码后,有载频的部分变为低电平
TH0=(0xffff-1522)/256;
TL0=(0xffff-1522)%256;
count++;
if((irtype==0)&&(count==3)) //起始码部分2个1和翻转位
{
      buf_s[0]=buffer;
      count=0;
      irtype=1;
      buffer=0;
}
else if((irtype==1)&&(count==5)) //5位地址
{
//      TI=0;
      buf_s[1]=buffer;
      count=0;
      irtype=2;
      buffer=0;
}
else if((irtype==2)&&(count==6)) //6位命令
{
//      TI=0;
      buf_s[2]=buffer;
   P0 = ~buffer;
      count=0;
      irtype=3;
      buffer=0;

}
else if(irtype==3) //等最后半位结束,实际延时1位时间
{
TI=0;
count=0;
irtype=0;
buffer=0;
end=1;
TR0=0; //解码结束,定时器停止
return;
}
buffer=buffer<<1;
// if(way0 == 1) buffer++;
}

void powerup( void )
{
TMOD = 0X21; //定时器1为方式2
TL1 = 0xfd;   //置初值,波特率为9600
TH1 = 0xfd;
PCON = 0x00; //SMOD = 0
// TR0=1;
TR1 = 1;   //启动定时器1
IE=0x82;
SCON = 0x50;
}

void main(void)
{
unsigned char i;
     WAY_0=1;     //输入首先写1
powerup();
while(1)
{
     buffer=0;
     irtype=0;
     count=0;
     end=0;
TH0=(0xffff-381)/256;
TL0=(0xffff-381)%256;
     while (WAY_0);//等待低电平,一帧的开始
     TR0=1;        //开始定时,红外接收
     while(!end); //等一帧解码结束
for(i = 0;i<3;i++)
{
   TI=0;
   SBUF = buf_s[i]+0x30;
   while(!TI);  
}
     }
}


类别:专业相关 | 添加到搜藏 | 浏览() | 评论 (4)
最近读者:
 
网友评论:
1
2007年05月07日 星期一 09:03 | 回复
非常好
 
2
2007年08月28日 星期二 15:44 | 回复
有試過能用嗎,老兄,我找這個好久啊。
 
3
2007年08月28日 星期二 15:51 | 回复
先轉到我的空間先。
 
4
2007年09月11日 星期二 14:36 | 回复
谢谢
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     
 
精彩相册
   
     

©2009 Baidu