矩阵按键控制数码管显示
矩阵按键和独立按键很不一样,独立按键一段直接与I/O口连接,因此原本为高电平,另一端接地,因此只要检测I/O口是否为低电平就可以检测按键是否被按下。
但是矩阵按键两端同时连接I/O口,因此检测较为复杂。
原理如下:

图中S16按键同时连接P10和P14,因此检测的时候只要先人为给P10一个高电平,P14一个低电平,之后再重复检测P10是否变为低电平就可以检测到S16是否被按下。其他按键原理相同,I/O口高低电平位置可以互换,但是要保证一个是高一个是低。
实验源代码:
晶振11.0592
矩阵键盘为4x4
肉眼的视觉暂留效果捕捉时间为1000ms~2000ms,这个大家可以直接用数码管做实验得出
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit jz_key1 = P1^0; //矩阵按键位定义
sbit jz_key2 = P1^1;
sbit jz_key3 = P1^2;
sbit jz_key4 = P1^3;
sbit jz_key5 = P1^4;
sbit jz_key6 = P1^5;
sbit jz_key7 = P1^6;
sbit jz_key8 = P1^7;
sbit led2 = P2^2; //数码管显示位选控制
sbit led3 = P2^3;
sbit led4 = P2^4;
uchar code duanxuan[] = {
0x3f,0x06,0x5b,0x4f, //0,1,2,3
0x66,0x6d,0x7d,0x07, //4,5,6,7
0x7f,0x6f,0x77,0x7c, //8,9,A,B
0x39,0x5e,0x79,0x71}; //C,D,E,F 段选
uchar code juzhen[]

本文介绍了一种利用矩阵按键控制数码管显示的方法。通过给矩阵键盘的不同列输入低电平并检测行状态来判断按键是否按下。文章详细展示了如何通过编程实现这一功能,并解释了如何避免按键抖动的影响。

1万+

被折叠的 条评论
为什么被折叠?



