打印

红外遥控..键值码为01 02的2键都动作..在线等..

[复制链接]
1883|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jack602|  楼主 | 2010-12-22 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Jack602 于 2010-12-22 20:52 编辑

还有键值码为03  06的两键也一样..比如我单片机当接收到为03 的键值码 一个灯就亮..可是我按的是键值码为06的键也能使灯亮  不知道为什么...程序看了半天看不出哪里错了

看了一个晚上,已经搞定! 谢谢大家批评
void INT0_ISP(void) interrupt 0
{
Tc=TH0*256+TL0; //提取中断时间间
TH0=0;
TL0=0; //定时中断重新置零
if((Tc>Imin)&&(Tc<Imax))
{
   m=0;
   f=1;
   return;
} //找到启始码
if(f==1)
{
   if(Tc>Inum1&&Tc<Inum3)
   {
   Im[m/8]=Im[m/8]>>1|0x80; m++;
   }
   if(Tc>Inum2&&Tc<Inum1)
    {
     Im[m/8]=Im[m/8]>>1; m++; //取码
    }
  if(m==32)
   {
    m=0;
    f=0;
    if(Im[2]==~Im[3])
       {
     ir=1;
    }
else
     ir=0;
   }
    //准备读下一码
   }
  }
以上是中断解码程序...
****************************************
下面是主程序判断按键值后动作...
   while(1)
    {
        if((Im[2]==0x1e)&&(ir==1))
      {ir=0;
   Im[2]=0;
       P00=~P00;
       POWER=POWER^1;
         }
  if((ir==1)&&(Im[2]==0x02)&&(POWER==1))
   {
    P01=~P01;
    ir=0;
    Im[2]=0;
   }
  if((ir==1)&&(Im[2]==0x03)&&(POWER==1))
   {
    P02=~P02;
    ir=0;
    Im[2]=0;

     }
不知道为什么本来是按键值是00000001(01H)灯亮,现在按下  00000010(02H)键灯也会亮..

还有键值码是(00000011)03H  的按键...和键值码是(00000110)06H..

相关帖子

沙发
Jack602|  楼主 | 2010-12-22 11:59 | 只看该作者
没人吗

使用特权

评论回复
板凳
hxy6951| | 2010-12-22 13:13 | 只看该作者
什么都没有怎么回答。

使用特权

评论回复
地板
icecut| | 2010-12-22 13:17 | 只看该作者
你这样问,只能问上帝

使用特权

评论回复
5
Txapp| | 2010-12-22 13:41 | 只看该作者
中文表达都很难让人理解,写的代码MCU怎样?

使用特权

评论回复
6
Jack602|  楼主 | 2010-12-22 16:34 | 只看该作者
3# hxy6951
不好意思 忘记传程序了

使用特权

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

本版积分规则

0

主题

209

帖子

2

粉丝