看看我写的,有问题的话还请指教!!!
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
/*uchar code wei[]={
0xe3,0xe7,0xeb,0xef,
0xf3,0xf7,0xfb,0xff};*/
uchar code shuzi[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0,
0x76,0x79,0x38,0x3f};
uchar aa,bb,cc;
uchar keyscan();
void delay (uint c);
void display(uchar cc);
void main()
{
bb=17;
P2=0xf7;
P0=0;
while(1)
{
display(keyscan());
}
}
uchar keyscan()
{
P1=0xfd;
aa=P1;
aa=aa&0xf0;
while(aa!=0xf0)
{
delay(5);
aa=P1;
aa=aa&0xf0;
while(aa!=0xf0)
{
aa=P1;
switch(aa)
{
case 0xed:bb=1;
break;
case 0xdd:bb=2;
break;
case 0xbd:bb=3;
break;
case 0x7d:bb=4;
break;
}
aa=0xf0;
}
}
P1=0xfb;
aa=P1;
aa=aa&0xf1;
while(aa!=0xf0)
{
delay(5);
aa=P1;
aa=aa&0xf0;
while(aa!=0xf0)
{
aa=P1;
switch(aa)
{
case 0xeb:bb=5;
break;
case 0xdb:bb=6;
break;
case 0xbb:bb=7;
break;
case 0x7b:bb=8;
break;
}
aa=0xf0;
}
}
P1=0xf7;
aa=P1;
aa=aa&0xf1;
while(aa!=0xf0)
{
delay(5);
aa=P1;
aa=aa&0xf0;
while(aa!=0xf0)
{
aa=P1;
switch(aa)
{
case 0xe7:bb=9;
break;
case 0xd7:bb=10;
break;
case 0xb7:bb=11;
break;
case 0x77:bb=12;
break;
}
aa=0xf0;
}
}
return bb;
}
void delay (uint c)//子函数:延时函数
{
uint a,b;
for (a=100;a>1;a--)
for (b=c;b>1;b--);
}
void display(uchar cc)
{
P0=shuzi[cc-1];
}
|