#include<reg52.h>
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
int H=0,L=0,A=0;
int zxm[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(int x)
{
while(x--);
}
void keyproc()
{
P1=0x0f;
if(P1!=0X0f)
{
delay(10);
if(P1!=0x0f)
{
L=P1;
}
}
P1=0xf0;
if(P1!=0xf0)
{
delay(10);
if(P1!=0xf0)
{
H=P1;
}
}
A=H|L;
switch(A)
{
case 0x77: P0=0X3f;break;
case 0x7b: P0=0X06;break;
case 0x7d: P0=0X5b;break;
case 0x7e: P0=0x4f;break;
case 0xb7: P0=0x66;break;
case 0xbb: P0=0x6d;break;
case 0xbd: P0=0x7d;break;
case 0xbe: P0=0x07;break;
case 0xd7: P0=0x7f;break;
case 0xdb: P0=0x6f;break;
case 0xdd: P0=0x77;break;
case 0xde: P0=0x7c;break;
case 0xe7: P0=0x39;break;
case 0xeb: P0=0x5e;break;
case 0xed: P0=0x79;break;
case 0xee: P0=0x71;break;
default:P0=0;
}
}
void main()
{
LSA=1; LSB=0;LSC=0;
P0=0X00;
while(1)
{
keyproc();
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: