我玩的pic相信51应该也差不多我整理一下发 #include <>
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f, //0123
0x66,0x6d,0x7d,0x07, //4567
0x7f,0x6f,0x77,0x7c, //89ab
0x39,0x5e,0x79,0x71}; //cdef
unsigned char temp;
unsigned char key;
unsigned char i,j; void main(void) {
while(1) {
P3=0xff;
P3_4=0;
temp=P3;
temp=temp & 0x0f; //保留低四位 if (temp!=0x0f) {
for(i=50;i>0;i--)
for(j=200;j>0;j--); //延迟
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f;
switch(temp) {
case 0x0e:
key=7;
break;
case 0x0d:
key=8;
break;
case 0x0b:
key=9;
break;
case 0x07:
key=10;
break;
} temp=P3;
P1_0=~P1_0;
P0=table[key];
temp=temp & 0x0f;
while(temp!=0x0f){
temp=P3;
temp=temp & 0x0f;
} } } P3=0xff;
P3_5=0;
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f) {
for(i=50;i>0;i--)
for(j=200;j>0;j--);
temp=P3;
temp=temp & 0x0f;
if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f;
switch(temp) {
case 0x0e:
key=4;
break;
case 0x0d:
key=5;
break;
case 0x0b:
key=6;
break;
case 0x07:
key=11;
break;
}
temp=P3;
P1_0=~P1_0;
P0=table[key];
temp=temp & 0x0f;
while(temp!=0x0f) {
temp=P3;
temp=temp & 0x0f;
}
}
} 。。。
}
} //由于字数限制剩下的那两行键盘扫描我就用。。。代替了相信你也应该能懂我采纳率一直保持100%希望不要在这里掉下去。。有不懂的可以问我!
温馨提示:内容为网友见解,仅供参考