产品选型

单片机键盘控制 实例讲解,单片机常用键盘连接控制子程序

小编 2024-11-24 产品选型 23 0

实例讲解,单片机常用键盘连接控制子程序

在单片机控制中,键盘与单片机的连接一般采用独立按键连接和矩阵按键连接。

独立按键连接

独立按键是每一个按键的电路是独立的,占用一条数据线。当其中任意一按键按下时,它所对应的数据线的电平变成低电平,若无键按下,则所有的数据线的电平都是高电平。独立按键连接一般用于系统中按键较少的情况。独立按键单片机连接控制接线原理图如图1所示。

图1 独立按键单片机连接控制接线原理图

1.问题的提出

在图1中,当任何一个按键按下时,单片机转入执行相应的程序。

2.控制程序

矩阵式键盘连接

矩阵式键盘又称行列式键盘,当按键数较多时,采用矩阵式键盘。矩阵式键盘的按键设置在行与列的交点上。4×4矩阵式键盘与单片机的连接(见图2)。

图2 4×4矩阵键盘连接单片机控制接线原理图

利用图2所示4×4矩阵键盘连接单片机接线原理图来作为控制按键控制程序时,其程序如下:

详解单片机的按键检测与控制

按键在单片机控制系统中起到人机交互的作用,通过按键可以输入数据、命令和各种参数,按键侧键测处理是单片机系统设计和开发中一个重要的内容,关系到整个系统的交互性能和稳定性。按键处理形式在单片机系统中有两种形式:直接按键和矩阵编码键盘,下面分别对这两种按键检测电路的特点及编程思路和方法进行分析和介绍。

按键抖动问题产生的原因及解决方法

按键的抖动问题是指按键的触点在闭合和断开瞬间由于接触情况不稳定,从而导致电压信号的抖动现象(由按键的机械特性造成,不可避免)。图8-1所示为一次按键的抖动过程,在按键的前沿和后沿都会有5~10ms的抖动。

图8-1 按键抖动示意图

对于时钟是微秒级的单片机而言,键盘的抖动有可能造成单片机对一次按键的多次处理。为了提高系统的稳定性,我们必须采用有效的方式消除抖动。

去除抖动可以采用硬件方式和软件方式。硬件方式一般是在按键与单片机的输入通道上安装硬件去抖电路(如RS触发器)。软件方式的实现方法是:当查询到电路中有按键按下时,先不进行处理,而是先执行10~20ms的延时程序,延时程序结束后,再次查询按键状态,若此时按键仍为按下状态,则视为按键被按下。

按键检测电路及应用

1. 独立式按键

独立式键盘相互独立,每个按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他按键的工作状态,CPU可直接读取该I/O线的高/低电平状态。这种按键硬件、软件结构简单,判键速度快,使用方便,但占用I/O口线较多,适用于按键数量较少的系统中。

独立连接式键盘连接如图8-2所示。当没有键被按下时,所有的数据输入线均为高电平;当任意一个按键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键被按下。

图8-2 独立式键盘接口设计

【例8-1】 利用单片机的P1.0~P1.34个I/O口检测4个按键的触发信息,以实现不同功能的控制。

硬件电路参见图8-2所示,C51参考程序如下:

2. 矩阵式按键

在单片机系统中,当按键数量较多时,为了减少IO口的使用,通常将按键排列成矩阵型式。例如下例中的16个按键,被排列成了如图8-3所示的4X4矩阵方式。该矩阵式键盘由4根行线和4根列线组成,每个行线和列线的交叉点是一个按键。

【例8-2】 将矩阵式键盘的按键值通过数码管显示出来。

电路连接如图8-3所示(电源和震荡电路未标出)。

图8-3 矩阵式键盘按键显示电路图

如何判断被按下的键值呢?

分析如下:

根据下面的电路图,如果已知P1.0端口被置为低电平“0”,那么当按键K0被按下时,可以肯定P1.4端口的电平也变为了低电平“0”。基于这个原理,总结矩阵键盘识别按键的步骤如下:

a)首先判断是否有按键被按下

本例中矩阵键盘中P1端口低4位连接的是列线,高4位连接的是行线。将全部行线置为低电平“0”,全部列线置为高电平“1”。然后检测列线的状态。只要有一根列线的电平为低,则表示有按键被按下。否则没有按键按下。

b)按键消抖

当判断到有按键被按下后,还要进行消抖处理,以确认真正有按键被按下。

c)按键识别

当确认有键被按下后,采用逐行扫描的方法来确定是哪一个按键被按下。先扫描第一行,即将第一行输出低电平“0”,然后读取列值,那一列出现低电平“0”,则说明该列与第一行交叉处的按键被按下。如果读入的列值全部为"1",说明与第一行连接的按键均没有被按下。那么接下来开始扫描第二行,以此类推。直到完成全部行线的扫描。

C51程序如下:

矩阵式键盘与I/O接口应用

【例8-3】 四位数字密码锁

四位数字密码锁功能:通过键盘输入密码,当输入密码与内置密码相同时,继电器动作,表示密码锁解开。为了简化功能,该密码锁只使用12个键(即4x3键盘),其中S1~S9为1~9数字键,S10为0数字键,S11为“*”键作为确认键使用,而S12为“#”键作为复位键,键盘接口电路如图8-4所示,键值布局如表8-1所示。

图8-4 行列式键盘电路连接图

表8-1 键盘布局表

单片机上电时,数码管显示“0000”,此时输入数字,数码管将显示按键值,数字逐个向左递增,四次输入完毕,四个数码管显示输入的数,此时按“*”号按键将启动比较,若输入数字与内设密码相同,继电器动作。如不同,则系统复位等待重新输入密码。当按“#”号键,系统复位,数码管显示“0000”。

在上面键扫描程序基础上增加的源程序如下:

相关问答

单片机 按键开关是什么?

单片机按键开关是一种应用于单片机系统的输入设备,通常由按键和额外的元器件(如电容器和电阻器等)组成。其作用是在按键被按下之后,产生一个由0到1的状态转变...

单片机 的按键如何外接?

一般单片机的外接按键有三种接法:1、每个I/O端口接一个按键:按键接另一端通常是接地,I/O口通常还应该接一个上拉电阻,有些单片机的I/O口可以配置成内部上拉...

3.用51 单片机 配合四个按键(四个按键分别为按键1-4) 控制 蜂鸣...

[最佳回答]我使用郭天祥的TX-1C实验板运行的,已经运行通过了,能达到你的要求。望采纳。希望我的回答能帮助到你。我使用郭天祥的TX-1C实验板运行的,已经运行...

通过按键来 控制单片机 的制冷和加热?

通过按键来控制单片机可实现LCD1602显示当前温度,可通过按键设置温度上下限温度超过限值制冷或制热,并通过蜂鸣器。报警STC89C52单片机为核心控制器,加上其...

单片机 按键怎么消抖-ZOL问答

按键消除抖动用硬件的方法是单稳态电路,或者采用专用芯片,而单片机本身是智能芯片,用软件消除抖动是最佳选择,这样性价比高,可靠性也高,多用一个器件就多一份成...

请问 单片机 怎么用独立按键按一下实现一个功能,按另一个按键实现另一个功能,这个代码要怎么写啊?

如果这两个功能都是一个死循环,可以考虑用中断,这样就不必在两个独立的功能中插入按键检测了while(1){while(flag==1){死循环1}while(flag==2){死循环2}}....

单片机 的按键开关抖动的产生原因,抖动的特点和如何消除抖动 ...

判定打开,软件解决可以降低成本,但是有时候硬件劣化超出延时的范围会造成故障。硬件解决:专用的去抖芯片或者自己组装一个双稳态消抖电路,...开关...

单片机 的按键开关抖动的产生原因,抖动的特点和如何消除抖动 ...

件延时去抖(其实是一种忽略)和硬件去抖软件判断:开关闭合——延时——是否还是闭合?——如果是就判定打开,软件解决可以降低成本,但是有时...——...

单片机 矩阵按键原理?

矩阵式结构的键盘列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电...

请高手用AT89C51 单片机 和C语言设计一个小灯 控制 电路,实现利...

这个应该不难吧,看你控制什么灯了,如果是LED就非常简单,如果是日常照明,还要加...当然可以,首先你需要准备一个AT89C51单片机、两个按键、一个小灯和一些基本的...

猜你喜欢