遥控如图。就攒这点分了,请笑纳!
起初改的红外遥控1602显示,第一按下遥控的时候,用户码会出现错误情况,稳定时用户码是01,开始会先出个00(按了7,再按其它就会这样),此外,这用户码在这程序里好像没多大意义,换了三个遥控都是01-ff
关键是:后面弄成头文件的就问题大了!数值传递是个问题,结果直接就不对了!
如果有测试好的欢迎上传,非常感谢!
我写的上传至我的空间!http://hi.baidu.com/styp88101/blog
我的QQ:315557950,全天在线
具体说说:后面弄成头文件,数值传递不对这个问题
有没有好的给我参考下!要是能带连续发送方式解码就更好了!谢谢!
追答我的百度空间主页里面有,也是NCE编码方式,引导码(9ms+4.5ms)+32位编码:
Proteus红外遥控仿真电路+发射程序+接收程序(含附件下载)。
还有,问问,什么是“连续发送方式解码”,不太理解???
字数限制,下面是接收解码程序部分,完整的在我空间主页:
/********************** 外部中断函数************************/
void exint0() interrupt 0
{
uint cnt=0;
uchar i;
EX0 = 0;
if(IR) {EX0=1;return;} //高电平,错误,返回
while(!IR) cnt++; //记录引导码时间
if(cnt 400){EX0=1;return;} //4.5ms检测,防卡死超时保护
if(cnt 200){EX0=1;return;} //防卡死超时保护
N[i/8] >>= 1;
if(cnt>60) N[i/8] |= 0x80; //分辨0和1
}
if(N[0] == ~N[1] && N[2] == ~N[3]) //校验用户码正反码,操作码正反码
{
X1 = N[0]/16; //更新数码管显示数据
X2 = N[0]%16;
X3 = N[2]/16;
X4 = N[2]%16;
}
EX0 = 1;
}