MCU读取按键是否按下,往往需要进行消抖,而消抖措施有很多种, 可以利用电容电路,可以用数电里学的触发器电路, 这些可以说都是在硬件层面来消抖的。 但是有更简单便宜的软件消抖措施。
软件消抖也分为延时重采样和持续采样两种方式。
延时重采样就是在采样到按键被按下信号后,延时约10ms后,再次采样,如果扔检测到是按下,则就会判定为按键确实被按下“一次”。
持续采样就是当采样到按键被按下信号后,在一段时间内连续检测,如果一直没变,则判定为被按下一次。
一个4*4的矩阵键盘的原理就是,四行串联在四位IO口,四列串联在四位IO口

以上图解释,先将PD = 1111 1110 ,即将第一列置低,然后取PD的高四位,若检测到高四位不是1111,比如是1101,说明第三行虽然一开始是置高的,但是被强制拉低了,所以说明S13键被按下了。
然后将PD循环左移,将第二列置低,以此类推。
这其中还要加上延时重采样消抖,就可以进行矩阵键盘的检测了。
举个栗子
1 #include 52.h>
2 #include
3
4 #define uint unsigned int
5 #define uchar unsigned char
6
7 uchar key = 0;
8 uchar table[]={
9 0x3f, 0x06, 0x5b, 0x4f,
10 0x66, 0x6d, 0x7d, 0x07,
11 0x7f, 0x6f, 0x77, 0x7c,
12 0x39, 0x5e, 0x79, 0x71
13 };
14
15 void init()
16 {
17 P1 = 0x00;
18 P0 = 0x00;
19 }
20
21 void delayms(uint xms)
22 {
23 uint i, j;
24 for(i = 0; i < xms; i++)
25 for(j = 0; j < 110; j++);
26 }
27
28 void keys()
29 {
30 uchar temp;
31 uint i;
32 for(i = 0; i < 4; i++){
33 P2 = _crol_(0xfe, i);
34 temp = P2;
35 temp &= 0xf0;
36 if(temp != 0xf0){
37 delayms(10);
38 temp = P2;
39 temp &= 0xf0;
40 if(temp != 0xf0){
41 switch(temp)
42 {
43 case 0xe0 : key = 0+4*i; break;
44 case 0xd0 : key = 1+4*i; break;
45 case 0xb0 : key = 2+4*i; break;
46 case 0x70 : key = 3+4*i; break;
47 }
48 while(temp != 0xf0){
49 temp = P2;
50 temp &= 0xf0;
51 }
52 }
53 }
54 }
55 }
56
57 void display(uchar key)
58 {
59 P1 = table[key];
60 }
61
62 void main()
63 {
64 init();
65 while(1){
66 keys();
67 display(key);
68 }
69 }
代码实现功能是检测4*4键盘,每个按键代表一个数字,显示在屏幕上。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
mcu
+关注
关注
147文章
19238浏览量
405192 -
信号
+关注
关注
12文章
2950浏览量
80509 -
触发器
+关注
关注
14文章
2065浏览量
63629 -
矩阵键盘
+关注
关注
7文章
207浏览量
33072 -
电容电路
+关注
关注
1文章
11浏览量
3203
发布评论请先 登录
相关推荐
热点推荐
4×4矩阵键盘的工作原理
发表于 07-31 10:28
•9次下载
4×4矩阵键盘的工作原理与编程
发表于 08-09 16:24
•31次下载
单片机新手入门实例详解之三_4×4矩阵键盘的工作原理与编程
本文介绍了如何在ME300B型51/AVR单片机学习系统上使用数码管显示4X4矩阵键盘的键值。
发表于 03-28 15:23
•32次下载
4*4矩阵键盘的工作原理和实现的详细资料介绍
在单片机按键使用过程中,当键盘中按键数量较多时为了减少端口的占用通常将按键排列成矩阵 形式如下图所示,在矩阵式键盘中每条水平线和垂直线在交叉处不直接连通而是通过一个按键加以连接,到底这
发表于 12-26 08:00
•151次下载
4*4矩阵键盘的工作原理
评论