产品概述

单片机键盘接口 「硬件小百科」单片机键盘接口程序设计

小编 2025-06-07 产品概述 23 0

「硬件小百科」单片机键盘接口程序设计

键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。

首先来根据单片机的引脚图,来探讨键盘的几个问题。

按钮开关的抖动问题

组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。键盘结构图如下:

图1

图2

在图中,当开关S未被按下时,P1.0输入为高电平,S闭合后,P1.0输入为低电平。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1.0输入端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。

为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。单片机中常用软件法,因此,对于硬件办法我们不介绍。软件法其实很简单,就是在单片机获得P1。0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。0口,如果仍为低,说明S1的确按下了,这实际上是避开了按钮按下时的抖动时间。而在检测到按钮释放后(P1。0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们常常不对按钮释放的后沿进行处理,实践证明,也能满足一定的要求。当然,实际应用中,对按钮的要求也是千差万别,要根据不一样的需要来编制处理程序,但以上是消除键抖动的原则。

键盘与单片机的连接

1、通过1/0口连接。

将每个按钮的一端接到单片机的I/O口,另一端接地,这是最简单的办法,如图3所示是实验板上按钮的接法,四个按钮分别接到P3.2 、P3.3、P3.4和P3.5。对于这种键各程序能采用持续查询的办法,功能就是:检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入对应的键处理。

图3

下面给出一个例程。其功能很简单,四个键定义如下:

P3.2:开始,按此键则灯开始流动(由上而下)

P3.3:停止,按此键则停止流动,所有灯为暗

P3.4:上,按此键则灯由上向下流动

P3.5:下,按此键则灯由下向上流动

以上程序功能很简单,但它演示了一个单片机键盘处理程序的基本思路,程序本身很简单,也不很实用,实际工作中还会有好多要考虑的因素,比如主循环每次都调用灯的循环程序,会造成按钮反应“迟钝”,而如果一直按着键不放,则灯不会再流动,一直要到松开手为止,等等,大家能仔细考虑一下这些问题,再想想有什么好的解决办法。

2、采用中断方式

图4

如图4所示。各个按钮都接到一个与非上,当有任何一个按钮按下时,都会使与门输出为低电平,从而引起单片机的中断,它的好处是不用在主程序中持续地循环查询,如果有键按下,单片机再去做对应的处理。

以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。若您对文中任何信息有异议,欢迎随时提出,谢谢!

关于云创硬见

云创硬见是国内最具特色的电子工程师社区,融合了行业资讯、社群互动、培训学习、活动交流、设计与制造分包等服务,以开放式硬件创新技术交流和培训服务为核心,连接了超过30万工程师和产业链上下游企业,聚焦电子行业的科技创新,聚合最值得关注的产业链资源, 致力于为百万工程师和创新创业型企业打造一站式公共设计与制造服务平台。

单片机基础:键盘接口原理详解

1. 键的分类

按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。

2.输入原理

在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。

对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无将键输入,并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序

3.按键结构与特点

微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。

机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如下图所示,抖动时间的长短与开关的机械特性有关,一般为5~10 ms。

在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。

4. 按键编码

一组按键或键盘都要通过I/O口线查询按键的开关状态。根据键盘结构的不同,采用不同的编码。无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。

5. 制键盘程序

一个完善的键盘控制程序应具备以下功能:

(1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。

(2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。

(3) 准确输出按键值(或键号),以满足跳转指令要求。

独立式按键

单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。

1.独立式按键结构

独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图7.4所示。

独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。

2. 立式按键的软件结构

独立式按键的软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序

相关问答

单片机 的按键怎么外接-ZOL问答

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

矩阵 键盘 单片机 怎么连接?

矩阵键盘是行x列,需要看你矩阵的多少而定,接单片机IO口P0、P1都可以矩阵键盘就是个按键阵列,不需要电源和地,电源和地是接单片机的矩阵键盘是行x列,需要看你...

单片机 为什么要有 键盘

单片机说白了就是一个小的电脑的主机那么有了主机以后想让他正常动起来当然缺不了键盘这就像电脑问什么要有键盘一样,输入用的。

io扩展电路原理?

按键是我们常用的器件,做某些东西的时候又不能缺少按键。如果一个按键对应一个IO口,那么可想而知,按键所占的IO口的数量是很大的。单片机IO口的资源是有限的,...

单片机键盘 不起作用的起因,硬件是好的,不知道程序这块儿出了...

键盘讨论回答(3)delayms(12);后的if(key_0==0)修改为while(!key_0)(意思为当...如果只用单片机实现这三个功能的话,我感觉这样又能实现。不好意思,恕我直说...

单片机 是如何控制步进电机扎旋转的?

结合按键程序,我们设计这样一个功能程序:按数字键1~9,控制电机转过1~9圈;配合上下键改变转动方向,按向上键后正向转1~9圈,向下键则反向转1~9圈...voidKe...

单片机 按键开关是什么?

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

单片机 里button是什么?

button为按键的英文单词。对应电路里面的按键开关。button为按键的英文单词。对应电路里面的按键开关。

单片机 在电脑上无法识别怎么处理 接口 是USB的-ZOL问答

需要安装对应的驱动。一般来说,通常的usb设备的驱动已经内置到了系统中,所以,可以做到免除安装驱动。而单片机不属于通用设备,所以,您必须安装对...

proteus仿真 AT89C51 P2口接8个开关,P0口接8个led灯 p2开关口...

将八个按钮与P2端子相连,并使用Wire&Cable工具绘制线路至单片机输入端;同样地...在Proteus中搭建这个电路时,请先画出AT89C51单片机模块和相应的接口部件。将...

猜你喜欢