这是我所写的源程序,矩阵键盘的要点呢就是按键的判断:
在进行按键判断时,要注意当按键按下时P3的值就会发生变化而不是不变的
其中数码管的位选是全选即数码管全部显示
uint keyScan()
{
P3 = 0xf0;
if((P3&0xf0)!=0xf0)//一个键被按下,P3的列项值就会由1变为2 ,此处用来判断是否有键被按下
{
//建立两个变量用来存放行值和列值
uchar h;
uchar l;
delay(100);//消抖
if((P3&0xf0)!=0xf0)
{
l = P3&0xf0;
P3 = l|0x0f;//因为P3有一个键被按下,所以P3的行被按下的那个键的行数变为0

本文介绍了如何使用矩阵键盘来控制数码管显示不同数值。通过矩阵键盘的按键判断,当按键按下时,数码管的位选全选,使得所有数码管段均显示。程序中包含了一个名为keyScan()的函数,用于检测按键是否被按下,并返回相应的行值和列值组合,以实现数码管的显示控制。消抖处理和按键状态判断是关键步骤。
最低0.47元/天 解锁文章
3792

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



