51单片机8位按键数码管显示

上次老师发个我们4个按键的,这次考试要我们编8个的,要求按第1个键显示1,第二个按键显示2········

这是老师发给我们的4位按键,0~9代码:0X3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

#include<STC15F2K60S2.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]={0X3f,0X3f,0X3f,0X3f};
uchar code number[] = {0x06,0x5b,0x4f,0x66};

sbit WEI1=P2^3;
sbit WEI2=P2^4;

void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=100;k>0;k--);

}

uchar keycans()
{
uchar key;
static uchar keyflag=0;
uchar keyvalue=P3&0x3c;
if(keyvalue!=0x3c)
{
if(keyflag)
{
keyflag=0;
switch(keyvalue)
{
case 0x38:key=1;break;
case 0x34:key=2;break;
case 0x2c:key=3;break;
case 0x1c:key=4;break;
default:key=0;break;

}
}
}
else
{
keyflag=1;
key=0;
}
return key;
}

void main()
{
uchar KEY;
uchar work,a;
P0M0=0x00;
P0M1=0x00;
P2M0=0x00;
P2M1=0x00;
P0 = 0x00;
while(1)
}

其实修改这个地方就可以实现
switch(keyvalue)
{
case 0x38:key=1;break;
case 0x34:key=2;break;
case 0x2c:key=3;break;
case 0x1c:key=4;break;
//增加按键所对应的代码。。你需要把按键的连接引脚给我,才能计算出来数值
default:key=0;break;
}
温馨提示:答案为网友推荐,仅供参考
相似回答