标题:
红外解码的问题
[打印本页]
作者:
fish_of_deadsea
时间:
2007-12-12 13:54
标题:
红外解码的问题
我用的是家里的电视遥控器所以就不知道是什么发射器了,于是我费劲周折终于测出:引导码中4.5ms为低电平,4.5ms为高电平。脉宽0.6ms,间隔0.5ms为“0”,脉宽0.6ms,间隙1.626ms为“1”。总的一组码的发射周期为108ms。
但是我编的有问题啊,我是把结果显示在8个led灯上,但是按每个按扭的结果是一样的:(晶振11.0592)
#include"reg51.h"
#define uchar unsigned char
sbit HW = P1^2; //红外接收与单片机的接口
uchar IRCode[4] = { 0,0,0,0 };
void Delay( uchar time ) //一次约为15us
{
// uchar t;
while(--time);
// for( t = 0; t < time; t++ );
}
void Decode()
{
uchar a, c, k;
if( !HW )
{
for( k=0; k<10; k++ )
{
Delay(30);
if ( HW == 1 ) //如果0.45ms后HW=1,说明不是引导码
{
k = 10;
break;
}
else if( k == 9 ) //如果持续了10?.45ms=4.5ms的低电平,说明是引导码
{
while( HW == 0 );
Delay(300);
for( a = 0; a < 4; a++ )
{
for( c = 0; c < 8; c++ )
{
while( HW == 0 );
Delay(60);
IRCode[a] = IRCode[a] >> 1;
if( HW == 1 )
{
IRCode[a] = IRCode[a] | 0x80;
Delay(60);
}
}
}
}
}
}
void main()
{
P0 = 0;
while(1)
{
Decode();
P0 = IRCode[2];
}
}
搞了很久,实在看不出为什么,请各位大虾帮帮忙!!
作者:
kzw
时间:
2007-12-12 20:08
告一个邮箱吧,给你一个线程的代码,测试通过的。
作者:
luoyongde0965
时间:
2007-12-13 15:13
大虾,给我也来一个
luoyongde0965@126.com
先谢谢了
作者:
kzw
时间:
2007-12-13 16:38
已经发了,请查收。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0