各位老师好,帮忙看个程序。我的按键按下没有反应。

2019-07-15 21:37发布

各位老师好,帮忙看个程序。我的按键按下没有反应。
#include <reg52.h>
sbit dua=P2^2;
sbit wei=P2^3;
//unsigned char key;
unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x3f};
void delay(unsigned int t)
{
        while(t--);
}
keyscan()
{
unsigned char h,l;
P3=0xf0;
//h=P3&0xf0;
if(P3!=0xf0)
        {
                delay(500);
                if(P3!=0xf0)
                {
                        h=P3;
                        P3=0x0f;
                        l=P3;
                        h=h|l;                                                                 
                        while(h!=0xf0);
                        delay(500);
                }
                        switch(h)
                                {
                                  case 0xee:return 0;break;
                                  case 0xde:return 1;break;
                                  case 0xbe:return 2;break;
                                  case 0x7e:return 3;break;
                                  case 0xed:return 4;break;
                                  case 0xdd:return 5;break;
                                  case 0xbd:return 6;break;
                                  case 0x7d:return 7;break;
                                  case 0xeb:return 8;break;
                                  case 0xdb:return 9;break;
                                  case 0xbb:return 10;break;
                                  case 0x7b:return 11;break;
                                  case 0xe7:return 12;break;
                                  case 0xd7:return 13;break;
                                  case 0xb7:return 14;break;
                                  case 0x77:return 15;break;
                                  //default:return 0xff;break;
                                }
        }
}       
void display(unsigned char i)
{
        wei=1;
        P0=0;
        wei=0;
        dua=1;
        P0=table[i];
        dua=0;
}
void main()
{
        while(1)
        {
                keyscan();
                display(keyscan());
        }
}
                                          


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
qq729101414
1楼-- · 2019-07-16 03:34
   while(h!=0xf0);  死这里了应该。。。。
小分子
2楼-- · 2019-07-16 07:26
qq729101414 发表于 2013-11-21 10:51
while(h!=0xf0);  死这里了应该。。。。

谢谢老师。说的太给力了。
小分子
3楼-- · 2019-07-16 09:41
qq729101414 发表于 2013-11-21 10:51
while(h!=0xf0);  死这里了应该。。。。

老师你说怎么改一下能好呢?
zhanrongzhen
4楼-- · 2019-07-16 12:52
直接去掉while(h!=0xf0);
小分子
5楼-- · 2019-07-16 15:40
zhanrongzhen 发表于 2013-11-21 14:55
直接去掉while(h!=0xf0);

这应当是一个松手等待!
qq729101414
6楼-- · 2019-07-16 16:54
 精彩回答 2  元偷偷看……

一周热门 更多>