智能车制作

标题: 51与飞思卡尔单片机DG128通信 [打印本页]

作者: 残忆视觉    时间: 2013-3-28 14:52
标题: 51与飞思卡尔单片机DG128通信
我用51发送1给DG128,为何加了if语句,里面的程序就不执行了,怎么回事啊
2013-03-27 14:39
残忆视觉 | 分类:其他编程语言 | 浏览35次

void interrupt 20 sci(void)
{
   unsigned char ch;
   ch=SCIread();
   if(ch==1)
{
   DDRB=0XFF;
   PORTB=0x00;
   }
}

作者: 残忆视觉    时间: 2013-3-28 14:55
这是我的51发送程序

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

void delay(uint z)
{ uint i,j;
  for(i=z;i>0;i--)
    for(j=110;j>0;j--);
}

void send(uchar keynum)
{ SBUF=keynum;
   while(!TI);
   TI=0;

}
void keycans()
{ uchar a,key,c;
   P3=0X0f;                         
   if(P3!=0X0f)
   { delay(10);
         if(P3!=0x0f)
          {
                  a=P3;
                P3=0Xf0;
                c=P3;
                a=a|c;

         switch(a)
         {case 0xee:key=1;break;
          case 0xde:key=2;break;
          case 0xbe:key=3;break;
          case 0x7e:key=4;break;
          case 0xed:key=5;break;
          case 0xdd:key=6;break;
          case 0xbd:key=7;break;
          case 0x7d:key=8;break;
          case 0xeb:key=9;break;
          case 0xdb:key=10;break;
          case 0xbb:key=11;break;
          case 0x7b:key=12;break;
          case 0xe7:key=13;break;
          case 0xd7:key=14;break;
          case 0xb7:key=15;break;
          case 0x77:key=16;break;
                   
         }
         while(!a);
          
          }
        send(key);
   }
}
void main()
{ TMOD=0X20;
  TH1=0XFD;
  TL1=0XFD;
  TR1=1;
  SM0=0;
  SM1=1;
  EA=1;
  ES=1;
while(1)
  {
    keycans();
       
  }
}





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2