首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求大神帮忙是缩短下程序 多谢

2013-12-06 
求大神帮忙是缩短下程序谢谢在线等voidkeyscan(){uchar temp,keyP10xfetempP1temptemp&0xf0if(temp

求大神帮忙是缩短下程序 谢谢 在线等
void  keyscan()
{
uchar temp,key;
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
  delayms(10);
  temp=P1;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   temp=P1;
   switch(temp)
   {
   case 0xee:
       key=11;
   break;
   case 0xde:
      key=12;
  break;
   case 0xbe:
      key=13;
  break;
   case 0x7e:
      key=14;
  break;
   }
   while(temp!=0xf0)
   {
    temp=P1;
temp=temp&0xf0;
}
display(key);
}
}
  P1=0xfd;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
  delayms(10);
  temp=P1;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   temp=P1;
   switch(temp)
   {
   case 0xed:
       key=21;
   break;
   case 0xdd:
      key=22;
  break;
   case 0xbe:
      key=23;
  break;
   case 0x7e:
      key=24;
  break;
   }
   while(temp!=0xf0)
   {
    temp=P1;
temp=temp&0xf0;
}
display(key);
}
}
  P1=0xfb;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
  delayms(10);
  temp=P1;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   temp=P1;
   switch(temp)
   {
   case 0xeb:
       key=31;
   break;
   case 0xdb:
      key=32;
  break;
   case 0xbb:
      key=33;
  break;
   case 0x7b:
      key=34;
  break;
   }
   while(temp!=0xf0)
   {
    temp=P1;
temp=temp&0xf0;
}
display(key);
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
  delayms(10);
  temp=P1;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
   temp=P1;
   switch(temp)
   {
   case 0xe7:
       key=41;
   break;
   case 0xd7:
      key=42;
  break;
   case 0xb7:
      key=43;
  break;
   case 0x77:
      key=44;
  break;
   }
   while(temp!=0xf0)
   {
    temp=P1;
temp=temp&0xf0;
}
display(key);
}
}
}
[解决办法]

uchar trans(uchar t) {
    static uchar s[16]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbe,0x7e,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};
    static uchar d[16]={  11,  12,  13,  14,  21,  22,  23,  24,  31,  32,  33,  34,  41,  42,  43,  44};
    int i;

    for (i=0;i<16;i++) if (s[i]==t) return d[i];
    printf("oops!\n");
    return 0;
}
void  keyscan()
{
    uchar temp,key;
    uchar p4[4]={0xfe,0xfd,0xfb,0xf7};
    int j;

    for (j=0;j<4;j++) {
        P1=p4[j];


        temp=P1;
        temp=temp&0xf0;
        if(temp!=0xf0) {
            delayms(10);
            temp=P1;
            temp=temp&0xf0;
            if(temp!=0xf0) {
                temp=P1;
                key=trans(temp);
                while(temp!=0xf0) {
                    temp=P1;
                    temp=temp&0xf0;
                }
                display(key);
            }
        }
    }
}


[解决办法]


热点排行