【51单片机】矩阵键盘 线反转法程序
按照我们电子协会的接法:
3/7 | 2/B | 1/D | 0/E | |
7/7 | 77 | 7B | 7D | 7E |
6/B | B7 | BB | BD | BE |
5/D | D7 | DB | DD | DE |
4/E | E7 | EB | ED | EE |
void display0(uchar temp){ uchar k=0; switch(temp){ case 0xe7:k=0;break; case 0xeb:k=1;break; case 0xed:k=2;break; case 0xee:k=3;break; case 0xd7:k=4;break; case 0xdb:k=5;break; case 0xdd:k=6;break; case 0xde:k=7;break; case 0xb7:k=8;break; case 0xbb:k=9;break; case 0xbd:k=10;break; case 0xbe:k=11;break; case 0x77:k=12;break; case 0x7b:k=13;break; case 0x7d:k=14;break; case 0x7e:k=15;break; default:k=0xff; } smg4 = 0; if(k == 0xff) P0 = 0xff; else P0 = table[k]; delayms(5); smg4 = 1; } uchar keysscan(){ uchar i,j; P1 = 0x0F; i = P1&0x0F; if(i != 0x0F){ delayms(10); if(i != 0x0F){ i = P1&0x0F; P1 = 0xF0; j = P1&0xF0; return (i+j); } } return 0xFF; }