单片机常用按键电路

单片机常用按键电路

单片机组成的小系统中,有的需要人机交互功能,按键是最常见的输入方式。最常见的按键电路大致有,一对一的直接连接和动态扫描的矩阵式连接两种。

左右两个电路作用一样,区别是左边CPU的输入端常态为高电位,按下按键时为低电位;右边的常态为低电位,按下按键是高电位。 这样的电路简单直接,一个按键独占一个端口,在按键数量较少端口数量富裕时可以直接使用。 很多场合需要的按键数比较多,要尽量少地占用端口就必须使用矩阵式的按键链接。如下图:

图中将按键按行列矩阵的方式排列,其中的每一行公用一根行线,每一列公用一根列线。以此图为例,16个按键,按一对一方式连接的话需要16个端口,而按这样的矩阵方式链接只需要8个端口,

图中的Px,Py为CPU的IO端口,在本例中可以使用不同的端口也可以使用同一个8位端口。上拉电阻不是必须,单片机IO口内部有上拉电路时此处就可省略。

这个电路的工作原理是采用程序扫描的方式检测某个按键状态。比如将Px口的4位全置为低电平,这时如果没有任何按键按下的话,从Py口读回的4位应全为高,而如果有某一键按下,则对应按下键的那一列的位读回值将为低。这样就能知道按下键所在的列;接着确定按键所处行,把Py口的输入值作为输出,Px全部置高并读取输入,就能得到按键所在行位置,于是就确定了所按按键的行列位置。

扫描可以有两种实现的方法,一种是全行全列扫描,一种是逐行全列扫描。

上面的例子其实就是全行全列扫描方式,

其特点是,一个流程就能知道是否有按键按下,并能确定按下按检测行列值,检测步骤简单迅速。但作为行列接口的Px,Py必须是双向的,亦即同时具有输入输出功能,单片机的端口基本都能满足。

换种检测方式,就是先给定行,再检测列。比如行端口Px每次输出不是全部,而是只有一位输出为低,也就是预先给定了行,那么对应行有按键按下时,Py读回的值就代表按键所在列。Px口按位逐一输出低,每次读回Py值,这样的处理方式,更贴近扫描的含义。因为按键是机械动作,相对单片机运行速度来说,一次扫描流程足够检测到按键按下的动作。这种扫描方式就是逐行全列扫描。

这种扫描方式的特点是逐行扫描,有多少行就扫多少次,当有按键按下时,行列数就确定了。虽然显得麻烦点,但好处是Px只需是输出而Py只是输入,Px输出每次只有唯一的一位为低,这样的特点就可以对端口数进行简化,比如使用译码器。如图所示:

由图可以看出,同样按键数,增加一个138译码器之后,CPU所用端口数就减为5了。

Px口的3位只需输出0到7,译码器输出就能得到和前面一样的行扫描信号。这时候的程序处理流程,和上面的略有不同,主要是行的表示上不同。上面是行数的对应位表示对应行,下面的是行数的对应值就是对应行。程序框图如所示。

逐行扫描还有另外一个用处,就是当系统中有需要动态扫描的装置比如LED

数码管或点阵时,行扫描线就可以为其提供动态扫描信号,这样也是为了减少端口使用数量,达到信号复用并减少代码量的目的。

除了上面提到的几种按键电路,还有一种按键电路,使用更少的端口数量,如图

该电路同矩阵式按键电路一样,所不同的是行列端口使用的是同一个端口,并且矩阵的一条对角线上按键由二极管代替。如此图所示,

按键数Knum=Pnum*(Pnum-1),其中Pnum就是使用的端口数。 以4个端口数为例,

一对一连接方式只能是4个按键;

不带译码器最多4个按键,

使用2-4译码器或3-8译码器方式最多8个按键

而这种电路可以达到12个按键。此电路程序部分和不带译码器的一样,只是注意对角线上被二极管替代的地方没有按键。

单片机常用按键电路

单片机组成的小系统中,有的需要人机交互功能,按键是最常见的输入方式。最常见的按键电路大致有,一对一的直接连接和动态扫描的矩阵式连接两种。

左右两个电路作用一样,区别是左边CPU的输入端常态为高电位,按下按键时为低电位;右边的常态为低电位,按下按键是高电位。 这样的电路简单直接,一个按键独占一个端口,在按键数量较少端口数量富裕时可以直接使用。 很多场合需要的按键数比较多,要尽量少地占用端口就必须使用矩阵式的按键链接。如下图:

图中将按键按行列矩阵的方式排列,其中的每一行公用一根行线,每一列公用一根列线。以此图为例,16个按键,按一对一方式连接的话需要16个端口,而按这样的矩阵方式链接只需要8个端口,

图中的Px,Py为CPU的IO端口,在本例中可以使用不同的端口也可以使用同一个8位端口。上拉电阻不是必须,单片机IO口内部有上拉电路时此处就可省略。

这个电路的工作原理是采用程序扫描的方式检测某个按键状态。比如将Px口的4位全置为低电平,这时如果没有任何按键按下的话,从Py口读回的4位应全为高,而如果有某一键按下,则对应按下键的那一列的位读回值将为低。这样就能知道按下键所在的列;接着确定按键所处行,把Py口的输入值作为输出,Px全部置高并读取输入,就能得到按键所在行位置,于是就确定了所按按键的行列位置。

扫描可以有两种实现的方法,一种是全行全列扫描,一种是逐行全列扫描。

上面的例子其实就是全行全列扫描方式,

其特点是,一个流程就能知道是否有按键按下,并能确定按下按检测行列值,检测步骤简单迅速。但作为行列接口的Px,Py必须是双向的,亦即同时具有输入输出功能,单片机的端口基本都能满足。

换种检测方式,就是先给定行,再检测列。比如行端口Px每次输出不是全部,而是只有一位输出为低,也就是预先给定了行,那么对应行有按键按下时,Py读回的值就代表按键所在列。Px口按位逐一输出低,每次读回Py值,这样的处理方式,更贴近扫描的含义。因为按键是机械动作,相对单片机运行速度来说,一次扫描流程足够检测到按键按下的动作。这种扫描方式就是逐行全列扫描。

这种扫描方式的特点是逐行扫描,有多少行就扫多少次,当有按键按下时,行列数就确定了。虽然显得麻烦点,但好处是Px只需是输出而Py只是输入,Px输出每次只有唯一的一位为低,这样的特点就可以对端口数进行简化,比如使用译码器。如图所示:

由图可以看出,同样按键数,增加一个138译码器之后,CPU所用端口数就减为5了。

Px口的3位只需输出0到7,译码器输出就能得到和前面一样的行扫描信号。这时候的程序处理流程,和上面的略有不同,主要是行的表示上不同。上面是行数的对应位表示对应行,下面的是行数的对应值就是对应行。程序框图如所示。

逐行扫描还有另外一个用处,就是当系统中有需要动态扫描的装置比如LED

数码管或点阵时,行扫描线就可以为其提供动态扫描信号,这样也是为了减少端口使用数量,达到信号复用并减少代码量的目的。

除了上面提到的几种按键电路,还有一种按键电路,使用更少的端口数量,如图

该电路同矩阵式按键电路一样,所不同的是行列端口使用的是同一个端口,并且矩阵的一条对角线上按键由二极管代替。如此图所示,

按键数Knum=Pnum*(Pnum-1),其中Pnum就是使用的端口数。 以4个端口数为例,

一对一连接方式只能是4个按键;

不带译码器最多4个按键,

使用2-4译码器或3-8译码器方式最多8个按键

而这种电路可以达到12个按键。此电路程序部分和不带译码器的一样,只是注意对角线上被二极管替代的地方没有按键。


相关文章

  • 单片机教案
  • 吴允志 单 片 机 1 2011年2月21日 08高职电子2班 2 单片机概述(一) 通过本讲教学,要求学生了解单片机的概念及组成.单片机 与通用微机的区别与联系,单片机的特点及其广泛应用.了解本课程的性质.任务及其在本专业中的地位,结合单 ...查看


  • 51单片机按键电路
  • 51单片机键盘接口电路(含源程序) 键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令.地址和数据.一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵 ...查看


  • [单片机技术及应用]试卷及答案
  • <单片机技术及应用>试卷及答案 班级: 姓名: 得分: 一. 填空题(10分) 1.单片机只能识别是单片机编程常用的数制. 2.十进制数41转换成二进制数:( )2 3.二进制数(1101)2转换成十进制数: 13 4.二进制数 ...查看


  • 红外遥控器的设计
  • 摘 要: 红外线遥控是目前使用最广泛的一种通信和遥控手段,电视机遥控器是红外遥控系统中的典 型代表.由于各厂家经常使用专用的遥控芯片,不同的遥控器之间互不兼容,因此给我们的生活带来一些不便.我的设计是使用常用的芯片AT89C52代替专用的遥 ...查看


  • 基于51单片机的电子琴课程设计
  • 摘要 本设计主要研究基于AT89C52单片机的简易电子琴设计. 它是以单片机作为主控核心,设置键盘.蜂鸣器等外围器件:另外还用到一 些简单器件如:NPN型三极管及电阻等.利用按键实现音符和音调的输入:用NPN 型三极管8550实现低音频功率 ...查看


  • 电子钟的设计
  • 济南职业学院 毕业设计(论文) 题 目: 系 部:专 业: 电气自动化 学 号: [1**********]8 学生姓名: 王嘉玮 指导教师: 滕丽丽 职 称: 二O一五年五月二日 济南职业学院 毕业论文(设计)任务书 课题名称:系 部: ...查看


  • 电子琴课程设计 1
  • 四川师范大学成都学院电子工程学院 电子技术课程设计 电子琴 学生姓名 学 号 所在学院 专业名称 班 级 指导教师 成 绩 刘子仪 2013137052 电子工程学院 汽车服务工程 2013级 苏 清 茂 四川师范大学成都学院 二○一五年十 ...查看


  • 基于单片机的直流电机速度控制系统毕业论文
  • 学校代码 学 号 分类号 密 级 公 开 本科毕业论文(设计) 题目:基于单片机的直流电动机的控制 (中.英文) 作 者 姓 名: 专 业 名 学 科 门 类: 指 导 教 成 绩 评 定: 摘 要 随着微电子和计算机技术的发展,直流电机的 ...查看


  • 硬件部分主要包括主机电路
  • 硬件部分主要包括主机电路.模拟量输入/输出通道.人机接口电路.通信接口电路. 软件又分为监控程序和接口管理程序两部分.监控程序是面向仪器面板键盘和显示器的管理程序:接口管理程序是面向通信接口的管理程序,接收并分析来自通信接口总线的远控命令. ...查看


热门内容