新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 51单片机红外遥控解码

51单片机红外遥控解码

作者:时间:2011-10-09来源:网络收藏
//外部中断程序
void intersvr1(void) interrupt 2 using 1
{
Tc=TH0*256+TL0; //提取中断时间间隔时长
TH0=0;
TL0=0; //定时中断重新置零
if((Tc>Imin)(TcImax))
{
m=0;
f=1;
return;
} //找到启始码
if(f==1)
{
if(Tc>Inum1TcInum3)
{
Im[m/8]=Im[m/8]>>1|0x80; m++;
}
if(Tc>Inum2TcInum1)
{
Im[m/8]=Im[m/8]>>1; m++; //取码
}
if(m==32)
{
m=0;
f=0;
if(Im[2]==~Im[3])
{
IrOK=1;
}
else IrOK=0; //取码完成后判断读码是否正确
}
//准备读下一码
}

}

本文引用地址:http://www.eepw.com.cn/article/172456.htm


/*演示主程序*/
void main(void)
{
unsigned int a;

m=0;
f=0;
EA=1;

IT1=1;EX1=1;

TMOD=0x11;
TH0=0;TL0=0;
TR0=1;//ET0=1;

while(1)
{

if(IrOK==1)
{
show[1]=Im[2] 0x0F; //取键码的低四位
show[0]=Im[2] >> 4;
IrOK=0;

}
for(a=100;a>0;a--)
{
display();
}

}
}

液位计相关文章:磁翻板液位计原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭