键盘及其电路设计一、键盘的基本概念?键盘是一组开关,是最常用的输入设备之一。构成键盘的按键有两种类型:接触式和非接触式。 触点键通常是机械触点开关,利用机械触点的通断特性来完成信息输入。 非接触式按键主要是指利用电子设备的通断来完成信息的输入,例如工作在开关状态的三极管。 接触式开关常用于构成单片机控制系统中的键盘。 二、 键盘的结构?有两种基本类型的键盘:编码键盘和非编码键盘。 编码键盘利用硬件电路产生键码,每按一个键,键盘就能自动产生键码。 非编码键盘通过编程识别键盘上的闭合键,并通过编程确定键码。非编码键盘具有结构简单、价格低廉的特点,所以单片机系统一般采用非编码键盘。 编码键盘按结构分为独立键盘和矩阵键盘。 1、 单机键盘及其接口?独立键盘是最简单的键盘构造方法。将每个按键的一端连接到单片机的I/O口,另一端接地,如图所示。主要特点是每个按键相互独立,每个按键对应一条输入口线。键盘软件结构简单,但当键盘数量较多时,需要大量的输入端口,使用受到很大限制。 2、 矩阵键盘及其接口?当键盘的按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
?在矩阵键盘中,每条横线和竖线并不是在交点处直接相连,而是通过一个按钮相连,如图所示。这样一个端口(比如P1端口)可以组成4*4=16个按键,是单机键盘的两倍,而且线数越多,区别越明显,比如加一个多线组成20键 如果直接使用端口线,只能多1键(9键)。 3、矩阵键盘的按键识别方法?逐行扫描法是一种判断按键是逐行按下还是逐列按下的方法。扫描法,也称为逐行或列扫描查询法,是最常用的键识别方法之一。使用行扫描法判断矩阵键盘按下的按键时,主要步骤如下。 第一步是确定是否按下了键?将所有行线设为0电平,即P1.4-P1.7输出低电平,读取列线P1.0-P1.3的值,若P1.0-P1.3都是高电平,表示没有按键按下,如果不是全部高,就表示有按键按下?步骤 2. 如果按下某个键,确定具体的键?方法是采用逐行扫描的方法,即逐行设置零电平,检查各列线的电平。例如,设置第一行为0,其他行为1,即让P1.4-P1.7输出0111,读取列行P1.0-P1.的值3、如果不是全部 1.根据读取的列值,可以判断按钮在第一行第一列,从而识别按钮的位置。如果全为1,表示第一行没有按键按下,则设置第二个Behavior为0,其他行为1,即P1.4-P1.7输出1011,然后读取列值。根据列值的结果,判断第二行的键是否被按下,依此类推,识别该键的键值。

三、 使用键盘要注意什么?按键开关抖动问题?由于按键的结构是机械弹性开关,按键从最初按下到稳定接触需要几毫秒的时间。这样的抖动时间平均在5~10ms,释放按键的时候也一样吗?有两种方法可以消除键盘抖动。 硬件去抖:使用双稳电路、单稳电路和RC积分电路去抖。 软件去抖:使用delay子程序来完成,即第一次按下按键后检测到一定的抖动时间后,检查按键是否再次按下,从而消除抖动的影响。问题。

本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-379128-1.html
伊国的安全谁保证