《51单片机矩阵键盘程序(共2页)》由会员分享,可在线阅读,更多相关《51单片机矩阵键盘程序(共2页)(2页珍藏版)》请在金锄头文库上搜索。
1、/*风清云扬*/# include #define uchar unsigned char#define uint unsigned intvoid delay(uint i)uchar x,j;for(j=0;ji;j+)for(x=0;x=148;x+);unsigned char key_scan() uchar temp0,temp1; uchar num=0; P1=0X0F; temp0=P1; if(temp0!=0X0F) delay(10); if(temp0!=0X0F) P1=0XF0; temp1=P1; if(temp0=0x0e) switch (temp1) ca
2、se 0xe0: num=4;break; case 0xd0: num=3;break; case 0xb0: num=2;break; case 0x70: num=1;break; default:num=0;break; else if(temp0=0x0d) switch (temp1) case 0xe0: num=8;break; case 0xd0: num=7;break; case 0xb0: num=6;break; case 0x70: num=5;break; default:num=0;break; else if(temp0=0x0b) switch (temp1
3、) case 0xe0: num=12;break; case 0xd0: num=11;break; case 0xb0: num=10;break; case 0x70: num=9;break; default:num=0;break; else if(temp0=0x07) switch (temp1) case 0xe0: num=16;break; case 0xd0: num=15;break; case 0xb0: num=14;break; case 0x70: num=13;break; default:num=0;break; return num;void main() char num; while(1) num=key_scan();P2=num/10;P3=num%10;