打印

请看看我这个程序那错了?

[复制链接]
1394|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaohq|  楼主 | 2008-7-28 15:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
se, CAN, AN, code, TI
在P1口接的4*4键盘,P0口接一位8段共阴极数码管,P2.0接公共阴极,想在按下某个键后,数码管显示对应的数字.程序如下,(结果编译可以通过但在实验板上实验时不显示数字,请帮忙指出错误,谢谢!!!!!)
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar wordcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint delaytime)
{
  uint i;
  for(;delaytime>0;delaytime--)
   {
     for(i=0;i<125;i++)
      {;;}
      }
}

keyscan( )
{
  uint scancode,temp;
  while(1)
  {
    P1=0xf0;
    if((P1&0xf0)!=0xf0)
    {
     delay(10);
     if((P1&0xf0)!=0xf0)
      {
        scancode=0xfe;
        while((P1&0x10)!=0)
         {
            
             P1=scancode;
            if((P1&0xf0)!=0xf0)
              {
                temp=P1;
                     return(temp);
                }
              else scancode=(scancode<<1)|0x01;
          }
        }
    }
  }
  
}


uchar getkeyvalue( )
{
 uint i,k;
 k=keyscan();
 switch    (k)
 {
 case  0xee:    i==0; break;
 case  0xde:    i==1; break;
 case  0xbe:    i==2; break;
 case  0x7e:    i==3; break;
 case  0xed:    i==4; break;
 case  0xdd:    i==5; break;
 case  0xbd:    i==6; break;
 case  0x7d:    i==7; break;
 case  0xeb:    i==8; break;
 case  0xdb:    i==9; break;
 default: break;
  }
  return (i);
}
void main()
{
  uchar j;
  P2=0xfe;
  j=getkeyvalue();
  P0=wordcode[j];
}    

相关帖子

沙发
dld2| | 2008-7-28 15:57 | 只看该作者

case 0xee: i==0; break;

使用特权

评论回复
板凳
gaohq|  楼主 | 2008-7-28 16:52 | 只看该作者

谢谢楼上!!

记住了,
case  0xee:    i==0; break;  应为
case  0xee:    i=0; break;

使用特权

评论回复
地板
zyok| | 2008-7-28 16:53 | 只看该作者

P0加上拉了吗?"i=="换成"i="

使用特权

评论回复
5
wayner| | 2008-7-28 17:01 | 只看该作者

keyscan()中while(1)是死循环,退不出来

使用特权

评论回复
6
zyok| | 2008-7-28 17:06 | 只看该作者

还说“编译可以通过”,建议把警告级别设到最大。。。

要不然犯些低级错误又找不到北。

使用特权

评论回复
7
xwj| | 2008-7-28 17:10 | 只看该作者

不要滥用while

使用特权

评论回复
8
gaohq|  楼主 | 2008-7-28 17:11 | 只看该作者

感激不尽,真的!!!!!

发觉在按1,2,3,5,6,7,9时可以,但按0,4,8时没反应.

使用特权

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

本版积分规则

378

主题

3763

帖子

5

粉丝