4x4矩阵键盘 扫描程序 -
[导读]一:不排除第四位异常处理uchar JuzhenkeyScan(){// P3=0xfe;// temp=P3;// while(temp!=0xfe)// {// temp=P3;// switch(temp)// {// case 0xee:num=10;// break;// case 0xde:num=3;// brea
一:不排除第四位异常处理
本文引用地址: http://www.21ic.com/app/mcu/201808/782571.htm
uchar JuzhenkeyScan()
{
// P3=0xfe;
// temp=P3;
// while(temp!=0xfe)
// {
// temp=P3;
// switch(temp)
// {
// case 0xee:num=10;
// break;
// case 0xde:num=3;
// break;
// case 0xbe:num=2;
// break;
// case 0x7e:num=1;
// break;
// }
// delayms(10);
// }
P3=0xfd;//1111 1110
temp=P3;
while(temp!=0xfd)
{
temp=P3;
switch(temp)
{
case 0xed:num=11;
break;
case 0xdd:num=6;
break;
case 0xbd:num=5;
break;
case 0x7d:num=4;
break;
}
delayms(10);
}
P3=0xfb;
temp=P3;
while(temp!=0xfb)
{
temp=P3;
switch(temp)
{
case 0xeb:num=12;
break;
case 0xdb:num=9;
break;
case 0xbb:num=8;
break;
case 0x7b:num=7;
break;
}
delayms(10);
}
P3=0xf7;
temp=P3;
while(temp!=0xf7)
{
temp=P3;
switch(temp)
{
case 0xe7:num=13;
break;
case 0xd7:num=14;
break;
case 0xb7:num=0;
break;
case 0x77:num=14;
break;
}
delayms(10);
}
return num;
}
二:排除第四位异常处理
1 uchar keyscan()
2 {
3 P3=0xfe;
4 tempkey=P3;
5 tempkey=tempkey&0xf0;
6 while(tempkey!=0xf0)
7 {
8 delayms(5);
9 tempkey=P3;
10 tempkey=tempkey&0xf0;
11 while(tempkey!=0xf0)
12 {
13 tempkey=P3;
14 switch(tempkey)
15 {
16 case 0xee:num=10; //A
17 break;
18 case 0xde:num=3;
19 break;
20 case 0xbe:num=2;
21 break;
22 case 0x7e:num=1;
23 break;
24 }
25 while(tempkey!=0xf0)
26 {
27 tempkey=P3;
28 tempkey=tempkey&0xf0;
29 }
30
31 }
32 }
33
34
35
36
37 P3=0xfd;
38 tempkey=P3;
39 tempkey=tempkey&0xf0;
40 while(tempkey!=0xf0)
41 {
42 delayms(5);
43 tempkey=P3;
44 tempkey=tempkey&0xf0;
45 while(tempkey!=0xf0)
46 {
47 tempkey=P3;
48 switch(tempkey)
49 {
50 case 0xed:num=11;//B
51 break;
52 case 0xdd:num=6;
53 break;
54 case 0xbd:num=5;
55 break;
56 case 0x7d:num=4;
57 break;
58 }
59 while(tempkey!=0xf0)
60 {
61 tempkey=P3;
62 tempkey=tempkey&0xf0;
63 }
64
65 }
66 }
67
68
69 P3=0xfb;
70 tempkey=P3;
71 tempkey=tempkey&0xf0;
72 while(tempkey!=0xf0)
73 {
74 delayms(5);
75 tempkey=P3;
76 tempkey=tempkey&0xf0;
77 while(tempkey!=0xf0)
78 {
79 tempkey=P3;
80 switch(tempkey)
81 {
82 case 0xeb:num=12; //C
83 break;
84 case 0xdb:num=9;
85 break;
86 case 0xbb:num=8;
87 break;
88 case 0x7b:num=7;
89 break;
90 }
91 while(tempkey!=0xf0)
92 {
93 tempkey=P3;
94 tempkey=tempkey&0xf0;
95 }
96
97 }
98 }
99
100
101
查看评论 回复
"4x4矩阵键盘 扫描程序 -"的相关文章
- 上一篇:STM32 IWDG设置 -
- 下一篇:红外方式数字图像采集报警系统的设计 -