今天小编要和大家分享的是控制,MCU相关信息,接下来我将从51单片机对4x4矩阵按键的驱动设计,薄膜键盘 4*4键盘 单片机外扩键盘 矩阵键盘模块 轻触这几个方面来介绍。

控制,MCU相关技术文章51单片机对4x4矩阵按键的驱动设计薄膜键盘 4*4键盘 单片机外扩键盘 矩阵键盘模块 轻触

控制,MCU相关技术文章51单片机对4x4矩阵按键的驱动设计

在嵌入式系统中,用的最多的输入设备就是按键,用户的应用需求可通过相应按键传递到系统软件中,软件转而完成用户请求,实现简单的人机交互。笔者此处就矩阵按键的实现作一个简单的介绍。

1. 按键输入概述

按键是一种常开型按钮开关,平时键的二个触点处于断开状态,按下键时它们才闭合。按键控制电路就是用来实时监视按键,当有键接下时,电路监控中的输入引脚电平发生变化,检测到这种变化后,控制电路进行按键扫描,定位按键的位置,并把相关的按键信息反馈回上一层应用中。常见的按键输入设计有独立式按键,矩阵式按键。独立式按键每个键占用一个IO口,电路配置灵活,软件简单,但按键较多时,IO口浪费大。矩阵式按键适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。节省IO口。通常按键控制电路通过查询方式或中断方式去检测按键的输入,查询方式需占用一定的cpu资源,查询频率太低可能造成按键输入丢失,太高浪费cpu资源,通常按键查询频率约50HZ较合适。中断方式需占用cpu一路外部中断,但不会占用cpu资源,只要有按键按下时,cpu即可马上检测到输入,进行扫描并得到按键值。

2. 硬件设计

笔者此处采用4x4的矩阵按键设计,当然,矩阵键盘可通过四个肖特基二极管构成四输入的与门(可参考笔者这篇文章<浅谈小信号肖特基二极管在数字电路中的应用>),连接到单片机的外部中断引脚,从而实现中断方式检测按键输入。为兼容目前开发板常见的矩阵按键设计,笔者把4x4的矩阵按键接口接在P1口,通过查询方式检测按键输入。

51单片机对4x4矩阵按键的驱动设计

图2-1 4x4矩阵按键

3. 驱动实现

由于我们采用的是查询方式按键设计,因此单片机需一定的频率去扫描P1口的按键,通常这个频率约50HZ较合适,为保证这个扫描频率,通常是通过定时器产生时标周期性进行执行扫描。P1.4~P1.7列线通过上拉电阻接到VCC上,P1.0~P1.3行线产生相应的扫描信号,无按键,列线处于高电平状态,有键按下,列线电平状态将由与此列线相连的行线电平决定。行线电平为低,则列线电平为低,行线电平为高,则列线电平为高。