按键实验

网上有关“按键实验 ”话题很是火热 ,小编也是针对按键实验寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

无论是矩阵键盘还是独立键盘,单片机检测其是否被按下的方法都是一样的 。也就是检测与按键对应的 I/O 口的电平高低 。

ؠ? 独立按键有一端固定为低电平或高电平 ,单片机写检测程序时比较方便。

ؠ? 矩阵按键两端都与单片机I/O口相连,因此检测时需要人为地通过单片机 ?I/O 口送出低电平。先送一列为低电平,其余几列全为高电平(此时确定了列数) ,然后轮流检测一次各行是否有低电平,若某一行为低电平(此时又确定了行数) 。那么我们就可以确定是哪一行哪一列的键被按下。? 用同样的方法,依次轮流送各列一次低电平 ,再轮流检测一次各行中是否有低电平。这样就可检测完 所有的按键,也就能判断出被按下的是哪一个键 。? 当然我们也可将各行线置低电平,然后扫描检测各列线中是否出现低电平, 这就是矩阵键盘检测的原理和方法。

#include <reg51.h>

#define uchr unsigned char

#define uint ?unsigned int

uchr code DSY_Table[]= ? //共阳极数码管编码

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, //0,1,2,3,4,5,6,7,8

0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF, //9,A,B,C,D,E,F,-

};

uchr key; //按键序号

void delayms(uchr x)

{

uchr i;

while(x--) for(i=0;i<120;i++);

}

void main()

{

uchr kp;

P0=0xff;

while(1)

{

P1=0xfd; //P1.1置 0

if(P1!=0xfd) //有键按下?

{

delayms(5); //延时消抖动

if(P1!=0xfd)//确认

{

kp=P1; //读取端口键值

while(P1!=0xfd);//等待键松开

switch(kp&0xf0) //屏蔽低4位,判断高4位

{

case 0xe0: //若高4位为e(即1键)

key=1;//赋键值

break;

case 0xd0: //若高4位为d(即5键)

key=5;//赋键值

break;

case 0xb0: //若高4位为b(即9键)

key=9;//赋键值

break;

case 0x70: //若高4位为7(即"9"键:num[9])

key=13;//赋键值

break;

}

}

}

P0 = DSY_Table[key]; //显示按键值

delayms(5);

}

}

4x4矩阵键盘的工作原理是什么?

定义一个按键缓冲区

用普通的按键扫描程序 ,当扫描到有按键按下的时候。按键键的值写入缓冲区 。继续扫描直到完成。

然后返回缓冲区地址就可以得到多个按键的数据了。

这样只要定义16字节的缓冲区全部按键都能检测到 。(一般不需要那么多6个足够)

还有一种方式 是 如果只返回2个按键的话。

可以这样

常规按键扫描 返回范围在0-15也就是0-F

读取到一个值后把这个值左移4位

再继续读取。当读取到第二个值的时候与上第一个值 。就能获取2个按键的值了 。

4x4矩阵键盘的工作原理是在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。当按键没有按下时 ,所有的输入端都是高电平 ,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低 ,通过读入输入线的状态就可得知是否有键被按下 。

扩展资料:

作为单片机外部设备,在键盘中按键数量较多时,为了减少I/O口的占用 ,通常将按键排列成矩阵形式。矩阵式结构的键盘比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源 ,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

矩阵式结构的键盘比之直接将端口线用于键盘多出了一倍,而且线数越多 ,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键) 。

关于“按键实验 ”这个话题的介绍 ,今天小编就给大家分享完了 ,如果对你有所帮助请保持对本站的关注!

(23)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • 梦香的头像
    梦香 2025年10月01日

    我是乐信号的签约作者“梦香”

  • 梦香
    梦香 2025年10月01日

    本文概览:网上有关“按键实验”话题很是火热,小编也是针对按键实验寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。无论是矩阵键盘还是独立键盘,单片机...

  • 梦香
    用户100110 2025年10月01日

    文章不错《按键实验》内容很有帮助

联系我们:

邮件:乐信号@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信