- uchar aa; //全局变量,用来返回按键的值
- uchar code key_scan[]={ //扫描时用的数组编码
- 0Xfe,0Xfd,0Xfb,0Xf7
- };
- /************矩阵键盘扫描****************/
- void key (void)
- {
- uchar n,temp=0xff;
- P3=0XFF;
- for(n=0;n<4;n++)
- { P3=tab1[n];
- if(P3!=key_scan[n])
- {
- delay(5);
- if(P3!=key_scan[n])
- temp=P3;
- while((P3!=key_scan[n]));
-
- }
- }
- switch(temp)
- {
-
- case 0xee : aa=0 ; break;
- case 0xde : aa=1 ; break;
- case 0xbe : aa=2 ; break;
- case 0x7e : aa=3 ; break;
- case 0xed : aa=4 ; break;
- case 0xdd : aa=5 ; break;
- case 0xbd : aa=6 ; break;
- case 0x7d : aa=7 ; break;
- case 0xeb : aa=8 ; break;
- case 0xdb : aa=9 ; break;
- case 0xbb : aa=10 ; break;
- case 0x7b : aa=11 ; break;
- case 0xe7 : aa=12 ; break;
- case 0xd7 : aa=13 ; break;
- case 0xb7 : aa=14 ; break;
- case 0x77 : aa=15 ; break;
- case 0xff : aa=16 ; break;
-
- }
复制代码
|