按键实验

原理:课件中行列式按键的完整原理图
如何判断有键按下的原理及过程
如何判断哪个键按下的原理及过程
完成电路:

写出左边第2列按键的按键码
编程实现按下左边第2列任何一按键,LED数码管显示对应16进制按键码(松开按键后要求保留显示)

无论是矩阵键盘还是独立键盘,单片机检测其是否被按下的方法都是一样的。也就是检测与按键对应的 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);

}

}

温馨提示:内容为网友见解,仅供参考
无其他回答

心理学按键反应实验是什么?
心理学按键反应实验是:反应的过程和简单反应和选择反应的实验原理,比较简单反应和选择反应的差异。心理学按键计算机模拟和类比:计算机模拟和类比是认知心理学家采用的一种特殊方法。要使计算机像人那样进行思维,计算机的程序就应当符合人类认知活动的机制。即符合某种认知理论或模型。把某种认知理论表现为计算...

心理学按键反应实验是什么?
心理学按键反应实验是一种常用的心理实验方法,用于测量人们对某种刺激的反应速度和准确性。该实验通常使用计算机程序或专门的实验设备,被广泛应用于认知心理学、神经科学、人机交互等领域的研究中。在按键反应实验中,被试者需要根据实验者的指示,在一定时间内对特定的刺激进行反应。例如,在视觉刺激实验中...

按键输入
实验内容: KEY0 控制 DS0,按一次亮,再按一次,就灭。KEY1 控制 DS1,效果同 KEY0。WK_UP 按键则同时控制 DS0 和 DS1,按一次,他们的状态就翻转一次。 KEY0连接在 PC5 上、KEY1 连接在 PA15 上、WK_UP 连接在 PA0 上。KEY0 和 KEY1 是低电平有效的,而 WK_UP 是高电平有效的...

独立按键的原理及实现
独立按键模块,用于通过按键进行特定操作,其原理基于单片机控制引脚电平变化来实现按键状态监测。将按键视为一个开关,闭合时代表按下,松开时为断开,单片机通过监测电平改变来获取按键信息,进而控制程序逻辑,完成预定功能。以下是独立按键实现的详细流程:独立按键工作原理图展示了关键连接部分,J5跳线帽将引...

按键实验
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);} } ...

正点原子的按键实验中为什么按键有响应优先级
一开始你没按按键那么if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1))为假不执行后面的语句执行elseif应为keyup没变过,所以没什么用。假设你按的是key0,那么KEY0==0||KEY1==0||KEY2==0||KEY3==1为真,执行后面的语句,把keyup置0后,取出按键值,作为函数返回值送会给t...

单片机汇编矩阵键盘实验(扫描法)
1. 对IO1、2、3配置为推挽输出,依次只让其中一个输出为0其他输出为1。2. 对IO4、5进行读操作,根据读出的结果判断哪个按键按下。例如:配置IO1、2、3为011,读IO4、5,若IO4为0则SW14按下,若IO5为0则SW15按下;依次的配置IO1、2、3为101,读IO4、5,若IO4为0则SW24按下,若IO...

io口实验四个灯亮四个不亮的按钮怎么放
1、电路有四个控制按键,四个灯,四个数码管;2、按键1,按下,,第一个数码管开始从0-9递增,同时第一个灯亮;3、按键2,按下,第二个数码管开始从0-9显示偶数,同时四个灯的偶数灯亮(即2、4个灯亮);4、按键3,按下,第三个数码管从0-9显示奇数,同时四个灯的奇数灯亮(即1、3个灯...

写一个2*4的矩阵式按键的检测程序,方便移植
4×4矩阵式键盘识别技术 实验任务 图4.14.2所示用AT89S51并行口P1接4×4矩阵键盘P1.0-P1.3作输入线P1.4-P1.7作输线;数码管显示每按键0-F序号应按键序号排列图4.14.1所示 图4.14.1 硬件电路原理图 图4.14.2 系统板硬件连线 单片机系统区域P3.0-P3.7端口用8芯排线连接4X4行列式...

矩阵键盘的矩阵键盘实验
实验任务设计制作一个检测 4*4 矩阵键盘的按键编码的实验, 把实际按键的 键值的八位编码先转换成从 0000—1111 的编码,再译成数码管能识别 的八位编码, 在数码管动态显示时, 矩阵键盘的第一行对应 00—03, 4*4 第二行对应 04—07,第三行 08—11,第四行对应 12—15。实验原理1.键盘...

相似回答