矩阵键盘电路设计
矩阵键盘电路设计
矩阵键盘电路设计矩阵键盘是一种常见的输入设备,它通过矩阵布局的按键组成,可以方便地输入数字、字母和其他符号。
在电子设备中,矩阵键盘通常采用扫描电路进行输入和控制。
在本文中,将探讨矩阵键盘电路的设计。
首先,我们需要确定矩阵键盘的布局。
一般情况下,矩阵键盘采用4×4或者3×4的布局。
每个按键都是一个开关,当按下时闭合,松开时断开。
接下来,我们需要设计输入电路。
输入电路通过扫描矩阵键盘的每一行和每一列来检测按键的状态。
为了实现这个功能,我们可以使用两个二进制计数器来控制扫描的行和列。
每当计数器增加时,就对应地扫描一行或者一列。
我们可以通过多路复用器和反向器将计数器输出与矩阵键盘的行和列相连。
当计数器的输出与矩阵键盘的行和列相连后,我们可以通过逐行或逐列地扫描矩阵键盘并检测按键的状态。
如果有按键按下,我们可以将对应的按键编码为数字信号。
在设计输入电路时,我们还需要考虑按键去抖动的问题。
按键去抖动是指当按键被按下或松开时,会产生多次开关闭合的现象。
为了解决这个问题,我们可以使用一个滤波器电路来消除按键的抖动。
滤波器电路可以采用RC滤波器或者Schmitt触发器等。
设计好输入电路后,接下来需要设计控制电路。
控制电路负责扫描矩阵键盘的每一行和每一列,以及对按键的状态进行控制。
我们可以使用计时器和计数器来控制扫描的速度和顺序。
当检测到按键按下时,控制电路会将对应的按键编码为数字信号并传递给接收端。
此外,在设计控制电路时,我们还需要考虑矩阵键盘的多键同时按下的问题。
当多个按键同时按下时,我们需要使用矩阵解码器来对这些按键进行解码,并将解码结果传递给接收端。
在进行电路设计时,我们还需要考虑一些其他的因素,比如布线、电源供应和接收端的设计等。
布线是指将电路中的各个元件和连接线布置在PCB板上的过程。
在布线时,我们需要确保信号传输的可靠性和稳定性。
电源供应是指提供电路所需的电源电压和电流的过程。
接收端的设计是指接收和处理从矩阵键盘电路传递过来的数字信号的过程。
verilog-矩阵键盘
二、矩阵键盘显示电路设计(显示键盘值的平方)矩阵键盘显示电路的设计一、实验目的1、了解普通4×4 键盘扫描的原理。
2、进一步加深七段码管显示过程的理解。
3、了解对输入/输出端口的定义方法。
二、实验原理实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。
作为一个嵌入系统设计人员,总是会关心产品成本。
目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。
嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。
图10-1 简单键盘电路通常在一个键盘中使用了一个瞬时接触开关,并且用如图10-1 所示的简单电路,微处理器可以容易地检测到闭合。
当开关打开时,通过处理器的 I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO口的输入将被拉低得到逻辑0。
可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的 1或者 0。
尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。
当触点闭合时,其弹起就像一个球。
弹起效果将产生如图10-2所示的好几个脉冲。
弹起的持续时间通常将维持在 5ms∼30ms 之间。
如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。
然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。
图10-2 按键抖动键盘上阵列这些开关最有效的方法(当需要5个以上的键时)就形成了一个如图10-3 所示的二维矩阵。
当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候),一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。
矩阵所需的键的数目显然根据应用程序而不同。
每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。
图10-3 矩阵键盘键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的 4 行均为高电平,那么肯定没有按键按下,否则,如果读入的4 行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。
51单片机矩阵键盘设计
51单片机矩阵键盘设计
一、引言
AT89C51单片机矩阵键盘设计是嵌入式系统中一个重要的技术,它的
作用是以矩阵形式把外部按键与MCU相连,使得系统可以对外部的按键进
行检测和响应。
矩阵键盘设计在可编程嵌入式系统的设计中占有重要的地位,如智能交通系统、智能家居系统、航空电子系统等。
本文主要介绍了矩阵键盘设计中硬件电路的设计,包括按键、拉电阻、和矩阵编码等,同时给出系统的控制算法,使得系统可以实现有效的按键
检测和响应。
二、矩阵键盘概述
矩阵键盘是将多个按键排布成列行形式进行连接,一般来说,矩阵键
盘是由按键、拉电阻、矩阵编码器和控制器组成,按键是系统中重要的部件,其作用是将外部输入信号传递给控制器。
拉电阻起到的作用是防止按
键耦合,一般可以使用4.7KΩ拉电阻来防止按键耦合。
矩阵编码器用来
识别按键的状态,通常通过硬件把按键信号编码为数字信号,输入到处理
器或控制器。
控制器用来实现按键信号的检测,通过定义硬件定时器和软
件定时器,实现按键检测和处理。
1、硬件电路设计
应用AT89C51单片机矩阵键盘。
矩阵键盘的设计
摘要本实验是在基于PROTUES平台下,运用 80C51芯片编写程序设计实现的矩阵式键盘。
通过对矩阵键盘的硬件电路的设计及对其进行程序汇编和运行,通过单片机的内部控制实现对硬件电路的设计,从而实现对4×4矩阵键盘的识别。
用单片机的并行P1口连接4×4矩阵键盘,并以单片机的P1.0-P1.3口作键盘输入的列线,以单片机的P1.4-P1.7口作为键盘输入的行线,然后用P0.0-P0.6作输出线,通过上拉电阻在显示器上显示不同的符号按键“0-F”。
在硬件电路的基础上加上软件程序的控制来设计实现。
其工作过程为:先判断是否有键按下,如没有键按下,则继续扫描整个程序,如有键按下,就识别是哪一个键按下,最后通过显示器把该键所对应的键的序号显示出来。
关键词:80C51芯片;4×4矩阵;键盘识别;显示器目录1 问题描述................................ 错误!未定义书签。
2 设计原理................................ 错误!未定义书签。
2.1电路硬件说明......................... 错误!未定义书签。
2.2矩阵式键盘的工作过程 (2)2.3程序设计内容 (2)2.4硬件电路设计及其电路图 (2)3 程序说明及其流程图 (3)3.1程序系统 (3)3.2判别是否有键按下程序 (4)3.3识别哪个键按下程序 (6)3.4显示程序 (7)3.5延时程序 (8)4 仿真结果分析 (9)5 汇编程序 (12)6 课程设计总结与体会 (16)参考文献资料1 问题描述(1)设计一个4×4矩阵式键盘,以实现矩阵式键盘的程序识别。
(2)用单片机的并行口P1连接4×4矩阵键盘,并以单片机的P1.0-P1.3各管脚作输入线,以单片机的P1.4-P1.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。
矩阵键盘及其电路设计
矩阵键盘及其电路设计
矩阵键盘是一种常见的输入设备,常用于计算机、电视机、手机等电
子产品中。
它由多个按键组成,每个按键都与一个矩阵电路相连。
矩阵键
盘的设计简单、成本低廉,因此在许多场景中广泛应用。
矩阵键盘的电路设计可以分为两个主要方面:行扫描电路和列扫描电路。
行扫描电路负责控制行通道。
它由多个行扫描引脚组成,每一个引脚
都与一个行通道相连。
通常情况下,行扫描电路会以一定的频率依次将每
一个引脚置高电平,然后检测列通道是否有相应的信号。
如果检测到信号,就说明用户按下了对应的按键。
通过依次扫描所有的行通道,可以获取用
户整个键盘的按键状态。
列扫描电路负责控制列通道。
它由多个列扫描引脚组成,每一个引脚
都与一个列通道相连。
当行扫描电路扫描到其中一行时,列扫描电路会检
测到该行通道与列通道之间的电位差。
如果电位差存在,则说明用户按下
了该行和列交叉点处的按键。
在实际的电路设计中,还可以使用连接电阻和电容的方式来降低电路
的噪声。
通过在矩阵键盘中添加适当的抗干扰电路,可以有效减少外界干
扰对键盘输入的影响。
总结起来,矩阵键盘的电路设计主要包括行扫描电路和列扫描电路。
通过行列通道的扫描和检测,可以判断用户所按下的按键。
在实际的设计中,还可以添加抗干扰电路来提高键盘的输入稳定性。
矩阵键盘的设计简
单且成本低廉,因此被广泛应用于各种电子产品中。
矩阵键盘程序设计
矩阵键盘程序设计一、介绍矩阵键盘是一种常见的输入设备,通常由多个行和列组成。
每个键都和一个特定的行列交叉点相连,通过检测行和列的连接状态来判断按下的是哪个键。
本文档将介绍如何设计一个基于矩阵键盘的程序。
二、硬件要求为了实现矩阵键盘程序,我们需要以下硬件设备:1-矩阵键盘:包括行和列连接点,每个键与一个特定行列连接。
2-微控制器:用于检测行列的连接状态,并处理按键输入。
3-连接线:连接矩阵键盘和微控制器的电缆。
三、程序设计步骤设计一个矩阵键盘程序的基本步骤如下:1-初始化:设置微控制器的输入输出引脚,并配置矩阵键盘的行列连接点。
2-扫描键盘:循环扫描每个连接点,判断是否有按键按下。
3-按键处理:如果有按键按下,触发相应的事件或执行相应的操作。
4-循环:重复进行扫描和处理,实现实时响应。
四、初始化设置在程序的启动阶段,需要进行初始化设置以准备矩阵键盘的使用。
1-设置输入输出引脚:将微控制器上的引脚设置为输入或输出模式,以便连接矩阵键盘和其他设备。
2-配置连接点:设置行和列的连接点,将矩阵键盘的每个键与特定的行列连接。
五、扫描键盘扫描矩阵键盘是检测按键状态的关键步骤。
1-选定一行:将矩阵键盘的行连接点设置为高电平,其他行连接点设置为低电平。
2-读取列状态:读取每一列连接点的状态,判断是否有按键按下。
3-判断按键:根据读取到的列状态,确定按下的是哪个键。
可以使用一个矩阵或查找表来管理键和行列交叉点之间的对应关系。
六、按键处理一旦检测到按键按下,程序需要触发相应的事件或执行相应的操作。
1-事件处理:例如,如果按下的是数字键,则触发相应数字的事件。
2-操作执行:例如,如果按下的是功能键,则执行相应的功能。
七、附件本文档涉及的附件包括以下内容:1-矩阵键盘的电路图:详细描述了键盘的连接方式和连接点的布局。
2-微控制器的引脚分配表:列出了微控制器上各个引脚与矩阵键盘的连接方式。
八、法律名词及注释1-版权:对于矩阵键盘的设计,可能涉及版权保护的内容,需要遵守相关法律法规。
矩阵式键盘实验报告
矩阵式键盘实验报告矩阵键盘设计实验报告南京林业大学实验报告基于AT89C51单片机4x4矩阵键盘接口电路设计课程院系班级学号姓名指导老师机电一体化设计基础机械电子工程学院杨雨图2013年9月26日一、实验目的1、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。
2、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。
3、掌握利用Keil51软件对程序进行编译。
4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿真。
5、会根据实际功能,正确选择单片机功能接线,编制正确程序。
对实验结果能做出分析和解释,能写出符合规格的实验报告。
二、实验要求通过实训,学生应达到以下几方面的要求:素质要求1.以积极认真的态度对待本次实训,遵章守纪、团结协作。
2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立工作能力。
能力要求1.模拟电路的理论知识2.脉冲与数字电路的理念知识3.通过模拟、数字电路实验有一定的动手能力4.能熟练的编写8951单片机汇编程序5.能够熟练的运用仿真软件进行仿真三、实验工具1、软件:Proteus软件、keil51。
2、硬件:PC机,串口线,并口线,单片机开发板四、实验内容1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参数及格元器件的作用。
2、用keil51测试软件编写AT89C51单片机汇编程序3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。
4、运用仿真软件对电路进行仿真。
五.实验基本步骤1、用Proteus绘制“矩阵键盘扫描”电路原理图。
2、编写程序使数码管显示当前闭合按键的键值。
3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状态和按键开关的对应关系。
4、用keil51软件编写程序,并生成HEX文件。
5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。
6、用通用编程器或ISP下载HEX程序到MCU。
矩阵键盘工作原理
矩阵键盘工作原理
矩阵键盘是一种广泛应用的按键组合,以矩阵的方式组织的,最常见的是4×4的按键矩阵,每个按键都有两个电路:一个是水平线,一个是垂直线。
当用户按下某个按键时,水平线和垂直线就会连接起来,电路就会触发,从而橙色电流流过矩阵键盘,其他按键就不会产生电流。
电路控制器可以检测到按键,并将按键的位置发送至电脑。
每个按键都有唯一的位置码,可以控制程序中输入的字符或功能。
矩阵键盘的工作原理可以归结为以下几个步骤:首先,将16个按键分别由水平线和垂直线连接形成一个矩阵。
其次,当按下某个按键时,水平线和垂直线就会连接,从而产生电流。
然后,电路控制器检测到按键,从而将该按键的位置发送给电脑。
最后,电脑根据按键的位置码,对输入的字符或功能进行控制。
矩阵键盘电路
知识点目录
1
矩阵键盘电路结构与工作原理
矩阵键盘的编码
矩阵式键盘按键识别
键盘的工作方式
1.矩阵键盘电路结构与工作原理
2
矩阵式键盘又称为行列式键盘。用I/O接口线组成行和列结构,键位设置在行和 列的交叉点上。如图1所示,8个I/O口实现了16个按键。
图1 矩阵键盘电路结构
1.矩阵键盘电路结构与工作原理
3
工作原理:以第一组键盘为例。设置KeyOut1输出一个低电平,相当于KeyOut1接 地,电路相当于4个独立按键电路,此时KeyIn1-KeyIn4四个输入端为高电平;当 键盘K1按下时,由于电路导通,此时KeyIn1变为低电平。同理,哪个按键按下, 相对应的输入端为低电平,单片机通过读输入端的状态,判断是否有按键按下。 对应图1四组按键,当KeyOut1输出为低电平时,KeyOut2-KeyOut4输出必须为高 电平,才能避免相互间的干扰。
2.矩阵键盘的编码
பைடு நூலகம்
4
对于矩阵式键盘,按键的位置由行号 和列号唯一确定,因此可分别对行号 和列号进行二进制编码,然后将两值 合成一个字节,高4位是行号,低4位 是列号。
3.矩阵式键盘按键识别
5
扫描法:
1) 判断有无键按下。
2) 如果有键按下,识别是哪一个键按下,键盘扫描取得闭合键的行、列值。
3) 用计算法或查表法得到键值。
4) 判断闭合键是否释放,如没释放则继续等待。
5) 将闭合键键号保存,同时转去执行该闭合键的功能。
4.键盘的工作方式
6
(1)编程扫描方式
利用CPU在完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入 的要求。
(2)定时扫描工作方式
单片机矩阵键盘设计方案
单片机矩阵键盘设计方案一、设计目标设计一个8行8列的矩阵键盘,每个按键都有一个唯一的键码,能够正常读取用户的按键输入,并将按键对应的键码显示在LCD屏幕上。
二、硬件设计硬件设计包括键盘电路和显示电路两部分。
1.键盘电路设计矩阵键盘的硬件设计主要包括键盘矩阵、行扫描电路和列读取电路。
键盘矩阵由8行8列的按键构成,每个按键都连接到一个由二极管组成的矩阵。
行扫描电路使用8位输出的GPIO口,根据行的值来选通对应的行组。
列读取电路使用8位输入的GPIO口,根据列的值来读取对应的列组。
2.显示电路设计三、软件设计软件设计主要包括初始化设置、按键检测、键码解析和显示处理四个部分。
1.初始化设置首先需要对GPIO口进行初始化设置,将扫描行的GPIO口设置为输出模式,将读取列的GPIO口设置为输入模式。
同时需要对LCD屏幕进行初始化设置,设置显示模式、光标位置等参数。
2.按键检测循环扫描每一行,当其中一行被选通时,读取每一列的值。
如果其中一列的值为低电平,则表示对应的按键被按下。
将按下的按键的行和列的值保存下来,用于后续的键码解析。
3.键码解析根据行和列的值,通过查表的方式找到对应的键码。
将键码保存下来,用于后续的显示处理。
4.显示处理将键码传送给LCD屏幕,通过LCD屏幕的驱动芯片进行解析和显示。
根据LCD屏幕的显示方式,可以选择逐行显示或者按需显示的方式。
四、优化设计在以上基本设计方案的基础上,可以进行一些优化设计,以提高系统的性能和可靠性。
1.消除按键抖动按键在实际使用中会存在抖动现象,需要通过软件滤波来消除。
可设置一个适当的延时,当检测到按键按下后,延时一段时间再进行键码解析,只有在延时之后仍然检测到按键按下,才认为是一个有效的按键。
2.防止冲突按键由于矩阵键盘的性质,可能存在一些按键组合会产生冲突的情况。
可以通过硬件设计和软件处理来解决。
在硬件上,可以增加二极管来隔离不同的按键。
在软件上,可以通过扫描算法和按键排除的方式来避免冲突。
4X4矩阵键盘及显示电路设计说明
4X4矩阵键盘及显示电路设计FPGA在数字系统设计中的广泛应用,影响到了生产生活的各个方面。
在FPGA 的设计开发中,VHDL语言作为一种主流的硬件描述语言,具有设计效率高,可靠性好,易读易懂等诸多优点。
作为一种功能强大的FPGA数字系统开发环境,Altera公司推出的Quar-tUSⅡ,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程,为使用VHDL语言进行FPGA设计提供了极大的便利。
矩阵键盘作为一种常用的数据输入设备,在各种电子设备上有着广泛的应用,通过7段数码管将按键数值进行显示也是一种常用的数据显示方式。
在设计机械式矩阵键盘控制电路时,按键防抖和按键数据的译码显示是两个重要方面。
本文在QuartusⅡ开发环境下,采用VHDL语言设计了一种按键防抖并能连续记录并显示8次按键数值的矩阵键盘及显示电路。
一、矩阵键盘及显示电路设计思路矩阵键盘及显示电路能够将机械式4×4矩阵键盘的按键值依次显示到8个7段数码管上,每次新的按键值显示在最右端的第O号数码管上,原有第0~6号数码管显示的数值整体左移到第1~7号数码管上显示,见图1。
总体而言,矩阵键盘及显示电路的设计可分为4个部分:(1)矩阵键盘的行及列的扫描控制和译码。
该设计所使用的键盘是通过将列扫描信号作为输入信号,控制行扫描信号输出,然后根据行及列的扫描结果进行译码。
(2)机械式按键的防抖设计。
由于机械式按键在按下和弹起的过程中均有5~10 ms的信号抖动时间,在信号抖动时间无法有效判断按键值,因此按键的防抖设计是非常关键的,也是该设计的一个重点。
(3)按键数值的移位寄存。
由于该设计需要在8个数码管上依次显示前后共8次按键的数值,因此对已有数据的存储和调用也是该设计的重点所在。
(4)数码管的扫描和译码显示。
由于该设计使用了8个数码管,因此需要对每个数码管进行扫描控制,并根据按键值对每个数码管进行7段数码管的译码显示。
矩阵式键盘工作原理
矩阵式键盘工作原理
矩阵式键盘的工作原理是基于矩阵电路的设计。
该键盘由一组键开关组成,这些键开关呈现出行和列的网格状布局。
每个键开关都连接到一个行列交叉点。
在键盘上按下某个按键时,该按键对应的行列交叉点位置会发生变化。
这种变化可以通过键盘控制器或芯片中的扫描电路进行检测。
扫描电路会按顺序扫描每个行和列的交叉点,检测到键按下的时候会产生一个电信号。
当键盘的控制器检测到有按键按下时,它会将该按键的信息发送到计算机。
计算机接收到按键信息后,会根据键盘映射表将按键转换为对应的字符或功能。
这样,用户通过按下键盘上的按键,就能够输入字符或执行特定的功能。
整个矩阵式键盘的工作原理可以归纳为以下几个步骤:
1. 初始化:键盘控制器配置为扫描矩阵键盘。
2. 扫描:控制器按顺序扫描每个行和列的交叉点,检测到按键按下的时候产生一个电信号。
3. 检测:键盘控制器检测到按键按下的电信号后,将其转换为对应的按键信息。
4. 传输:键盘控制器将按键信息传输给计算机。
5. 转换:计算机根据键盘映射表将按键信息转换为对应的字符或功能。
6. 执行:计算机执行输入的字符或功能。
通过这样的工作原理,用户可以通过按下矩阵式键盘上的按键,实现对计算机的输入操作。
第6讲 矩阵式键盘设计
矩阵式键盘设计
软件去抖
在检测到有按键按下时
执行一个10ms左右( 执行一个10ms左右(具体 10ms左右 时间应视所使用的按键进 行调整)的延时程序后; 行调整)的延时程序后; 再确认该键电平是否仍保 持闭合状态电平, 持闭合状态电平,若仍保 持闭合状态电平, 持闭合状态电平,则确认 该键是处于闭合状态。 该键是处于闭合状态。
矩阵式键盘设计
矩阵式键盘电路
R1
10k
R2
10k
R3
10k
R4
10k
VCC GND
C1
30pF
X1
C2
30pF 19
C3
10uF
U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
1. 2. 3. 4.
矩阵式键盘设计
求按键的键值
对键盘的列线进行扫描,P0.4~P0.7循环输出 对键盘的列线进行扫描,P0.4~P0.7循环输出 1110、1101、1011和0111, 次读P0 P0口 若低4 1110、1101、1011和0111,依次读P0口,若低4位 全为1 则断定该列上没有键按下; 全为1,则断定该列上没有键按下; 否则,该列上就有键按下,并且就是行线为0 否则,该列上就有键按下,并且就是行线为0,列 线为0的交叉点,行号和列号按公式: 线为0的交叉点,行号和列号按公式:rol*4+col 计算得到按下键的键值。 计算得到按下键的键值。 例如,P0.4~P0.7输出1101时 P0口的低四位读 输出1101 例如,P0.4~P0.7输出1101时,P0口的低四位读 入的值为1011,不全为1,就可以断定有键按下, 入的值为1011,不全为1 就可以断定有键按下, 1011 并且是第 交叉点的键。于是, 并且是第2行和第1列交叉点的键。于是,该键的 4+1=9。 键值= 键值=2×4+1=9。按照相同的方法可以得到所有键 的键值。 的键值。如:return(rol*4+col);
矩阵键盘工作原理
矩阵键盘工作原理矩阵键盘是一种常见的计算机输入设备,它的工作原理是通过一组排列成矩阵的按键和电路来实现数据输入。
在我们日常使用的电脑键盘中,就采用了矩阵键盘的设计原理。
下面我们来详细了解一下矩阵键盘的工作原理。
首先,矩阵键盘由多个按键组成,这些按键通常被排列成矩阵的形式,每个按键都对应着一个电路。
当用户按下某个按键时,这个按键所在的电路就会被闭合,产生一个电信号。
这个信号会被传输到计算机的主板上,然后由主板进行识别和处理。
其次,矩阵键盘的工作原理是基于键盘扫描的。
在键盘扫描过程中,计算机会通过轮流地对每行和每列的电路进行检测,以确定哪些按键被按下。
具体来说,当用户按下某个按键时,它所在的行和列的电路就会连接起来,计算机就能够通过扫描检测到这个按键的存在。
然后,一旦计算机检测到有按键被按下,它就会根据按键所在的行和列的位置来确定这个按键的具体标识。
这个标识会被转换成相应的ASCII码或者其他编码方式,然后传输到计算机的操作系统中。
操作系统会根据接收到的编码来识别用户按下的是哪个按键,并进行相应的处理,比如在屏幕上显示相应的字符或者执行相应的功能。
最后,需要注意的是,矩阵键盘的工作原理是基于按键的电路连接来实现的。
因此,它对于多个按键同时按下的情况可能会存在一定的限制。
一般来说,矩阵键盘能够支持同时按下一定数量的按键,但是如果同时按下的按键超出了它的限制,就有可能会出现按键冲突的情况,导致计算机无法准确识别用户的输入。
总的来说,矩阵键盘是一种通过按键和电路排列成矩阵来实现数据输入的计算机输入设备。
它的工作原理是基于键盘扫描和按键电路连接来实现的,能够准确地识别用户的按键输入,并将输入的数据传输到计算机进行处理。
然而,需要注意的是,矩阵键盘在处理多个按键同时按下的情况时可能会存在一定的限制,需要用户在使用时注意避免按键冲突的情况发生。
矩阵键盘键信号检测电路设计EDA课程设计说明书
课程设计说明书题目EDA技术及应用系(部)专业(班级)姓名学号指导教师起止日期EDA技术课程设计任务书系(部):专业:指导教师:目录引言 (5)一、绪论 (5)1.1 FPGA概况 (5)1.2 此课题的研究意义 (6)二、矩阵键盘接口电路的原理及总体设计 (6)2.1 矩阵键盘接口电路的原理 (6)2.2 总体设计 (8)三、各模块的设计及仿真 (8)3.1 键盘扫描电路 (8)3.2 键盘译码电路和按键标志位产生电路 (11)3.3 时钟产生模块 (16)3.4 键盘接口电路顶层电路实现 (18)四、硬件测试 (19)五、实验设备 (19)六、总结 (20)参考文献 (20)矩阵键盘键信号检测电路设计引言人类文明已进入到高度发达的信息化社会。
信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。
电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。
实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronic Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。
为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。
目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。
此设计主要利用VHDL硬件描述语言在EDA平台Quartus II上设计一个4×4阵列键盘扫描电路,将行扫描信号输入阵列键盘,读取列信号的值,输出按键编码,从而判断出按键按下的位置。
并且进行模拟仿真,下载到EDA实验箱进行硬件验证。
一、绪论1.1 FPGA概况早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。
EDA矩阵键盘控制接口电路设计
JINGGANGSHAN UNIVERSITY EDA作业设计题目:矩阵键盘控制接口设计学院:电子与信息工程学院专业:电子信息工程技术*名:***班级: 2008级专(1)班学号: ********指导老师:肖开选老师时间:2010年12月10号摘要20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
本次设计在EDA开发平台QUARTUSⅡ7.2上利用VHDL语言设计矩阵键盘控制接口电路。
要求设计一个4×9矩阵键盘,一共有三个模块,分别为:扫描电路模块、时钟产生模块、键盘译码电路和按键标志位产生电路。
扫描模块中是为了产生扫描信号,来利用扫描信号来扫描键盘中是否有按键按下。
键盘译码电路和按键标志位产生电路也是为了配合扫描模块来扫描电路中是否有按键按下,而且还要求它来产生按键标志信号,以便和外部电路握手。
时钟产生电路是为了产生不同频率的信号,来驱动上面两个电路的运转。
通过对课题的分析研究,掌握了VHDL语言编程方法,同时也增强了个人的学习能力和动手能力。
关键词:FPGA/CPLD;矩阵键盘;仿真目录1.绪论 (1)1.1FPGA概况 (1)1.2 本课题的研究意义 (2)本章小结 (2)2. VHDL语言介绍与Quartus II 7.2 (32-Bit)软件介绍 (3)2.1 VHDL语言的介绍 (3)2.1.1 VHDL语言概述 (3)2.1.2 VHDL语言的优点 (4)2.1.3 利用VHDL语言设计数字系统的特点 (6)2.1.4 VHDL语言的基本结构 (7)2.2 Quartus II 7.2 (32-Bit)软件介绍及其用法 (7)2.2.1 Quartus II 7.2软件介绍 (7)2.2.2 Quartus II 软件的用法 (10)本章小结 (13)3. 矩阵键盘接口电路的原理与总体设计 (14)3.1 矩阵键盘接口电路的原理 (14)3.2 总体设计 (16)本章小结 (16)4. 各模块的设计及仿真 (17)4.1 键盘扫描电路 (17)4.2 键盘译码电路和按键标志位产生电路 (19)4.3 时钟产生模块 (24)4.4 键盘接口电路顶层电路实现 (27)本章小结 (28)结论 (29)致谢 (30)参考文献 (31)附录程序 (32)1.绪论1.1FPGA概况早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。
矩阵键盘设计
sout<='1'; --信号有效cnt<=0; --计数器清零ELSEcnt<=cnt+1;END IF;END IF;END IF;END PROCESS;END beh;由上例的仿真波形图可知,当输入sin持续时间为时钟周期的8倍以上时才被认为是有效输入,且多个连续的有效输入被认为是同一次。
当输入信号持续时间不足时,被判无效,且计数器复位。
而当输入还不满一个时钟周期时,根本就不能被电路识别(计数器不工作)。
为了提高正常输入和毛刺的辨别能力,可以增大计数器的最大值,并减少时钟信号的周期。
例如,取N为63,则正常输入被有效识别的时间为时钟周期的64倍,即按键的持续时间至少为64倍的时钟周期。
因此该程序中时钟周期不能取太大,而应该越小越好,但又不能太小以至将毛刺也识别为正常输入。
任务2 矩阵键盘基础知识一、矩阵键盘基础知识在许多数字系统中,经常采用按键作为系统的输入方式之一,为系统提供数据输入或者命令输入。
当案件数目较多时,把每一个按键连接到键盘矩阵中行和列的交叉点,如下图所示,一个4*4行列结构可构成有16个按键的矩阵。
开发板上设计了行列式矩阵编码键盘,规模为 4*4,可作为外部输入。
采用矩阵编码键盘可以减少对 I/O 口的占用。
开发板上的矩阵编码键盘有4条行线,4条列线。
行线和列线的交叉处不直接连接,而是通过一个按键加以连接。
这样就构成 4*4=16个按键输入,比之直接将信号线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,如图列线通过电阻接正电源,并将行线所接的FPGA、CPLD的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
矩阵键盘控制接口电路
—5—
end keyboard4_4_arch; ( 4)按键显示电路: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARIT H.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENT ITY DELED IS PORT(SELTMP: IN STD_LOGIC_VECTOR(2 DOWNTO 0);
实验名称 矩阵键盘控制接口电路
指导教师
姓名
年级
学号
成绩
一、预习部分
1. 实验目的 2. 实验基本原理 3. 主要仪器设备(含必要的元器件、工具)
实验原理: 扫描信号为 BCOM[8..1],在 BCOM[8..1]前已接有一个 3-8 译码器,3-8 译码器的输入为
SEL0~SEL3。当 3-8 译码器的输入为“000” 时,即 BCOM1 为‘0’,其他位为‘1’,我们按下 第一排第一键,此时 KIN0 输出‘0’,KIN1~KIN3 输出全为‘1’,按下第二排第二键 时,KIN1 输 出‘0’,其他输出‘1’;当 3-8 译码器输入为 001 时,即 BCOM2 为‘0’,我们按下第一排第二 键,此时 KIN0 输出 ‘0’,KIN1~KIN3 输出全为‘1’,同理其他键依此类推。 键盘上的每个按键就是一个开关,当某键被按下时,该按键的接点会呈现‘0’状 态,反之为‘1’。 扫描信号为 SEL[2..0]进入 3-8 译码器,再从译码器输出到键盘,所以第一次只能扫描一排,依此周而 复始。按键位置与数码的关系 如表 40-1 所示。 若从 KIN[3..0]输出的皆为‘1’时,表示没有按键按下,代表该列没有按键被按下,则不进行按键编码 的操作,反之,如果 有被按下时,则应将 KIN[3..0]读出的值送到译码电路进行编码。 表 40-1 按键位置与数码关系 SEL2~SEL0 KIN3~KIN0 对应的按键
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计题目矩阵键盘电路设计教学院计算机学院专业计算机应用技术班级姓名指导教师2010 年01 月12 日前言.................................................................... 第一章需求分析.........................................................功能描述.........................................................功能分析......................................................... 第二章系统的原理及分析.................................................用到的知识点的介绍,知识点使用的总体思路第三章详细设计.........................................................硬件设计系统结构图,元器件的选择等软件设计所设计的软件关键模块的程序流程第四章测试............................................................运行结果分析等第五章总结............................................................. 参考文献................................................................ 附录关键程序代码........................................................矩阵键盘又称行列键盘,它是用四条I/O线作为行线,四条I/O线作为列线组成的键盘。
在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4*4个。
一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。
在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。
在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。
面板是微机仪器的重要组成部分。
面板主要包括显示器和键盘,通过面板对系统进行操作。
一般的单片机控制仪表的面板均含有数码管、发光管和按键,本文的仪器面板就是针对这个领域而开发的。
在仪器面板的设计中,键盘显示电路的设计一般采用三种方式,第一种为并行口动态扫描方式,该方式硬件简单、软件编程方便,与主板的信号连线多;第二种为串行口静态扫描方式,此方式使用串行芯片多,与主板的信号连线少;第三种为串行口动态扫描方式,此方式具有硬件简单、与主板信号连线少的优点,一般采用专用的串行口键盘显示芯片设计。
考虑到专用芯片成本较高,我们用普通芯片设计了串行口动态扫描方式的仪器面板。
每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。
实际上,键盘、显示处理是很复杂的,它往往占到一个应用程序的大部份代码,可见其重要性,但说到,这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。
第一章需求分析功能描述:行线P1.0~P1.3为输出线,列线P1.4~P1.7为输入线。
一开始单片机将行线(P1.0~P1.3)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。
延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。
最后一步确定键值。
现在我们以第二行的S5键为例,若按下S5后我们应该怎么得到这个键值呢?当判断确实有键按下之后,行线轮流输出低电平,根据读入列线的数据可以确定键值。
首先,单片机将P10输出为低电平,其它P11~P13输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键按下;其次,单片机将P11输出低电平,其它P10、P12、P13仍为高电平,此时再来读取列线数据,发现列线读到的数据有低电平,数值为1011(0x0B),如果我们的键盘布局已经确定,那么0x0B就代表S5的值了。
转到S5键功能处理子程序就可以达到目的。
功能分析:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗,两个数据指针,两个16计时器,一个5向量两级中断结构,一个全双工串行通讯口,片内振荡器及时时钟电路,同时A789S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停止工作并紧张其他所有部分工作直到下一个硬件复位。
如果给P3一个扫描初值的话:如0x0F ,则没有键按下时为:P3.1~P3.3为1,P3.4~P3.7为0。
如果有键按下,则情况发生变化:高电平接入低电平:如P3.3与P3.7连接的键按下,则P3.3与P3.7为0,即接地了。
则P3此时为:0000 0111,这时如果用P3&0x0F,则高四位为0,低四位保留,可以得到低四位的内容了。
通过去抖操作,即一个delay,可以得到低四位内容。
这里设为:h=P3&0x0F;如果再得到高四位内容,则可以组成一个数,来定位哪个键了。
当赋值后,如果有键按下的话,P3高四位不会全为1111,被拉到0了。
如P3.3与P3.7连接的键按下,则P3.3与P3.7为0,即接地了。
即:0111 0111,&F0之后,得到0111 0000,这样的话,我们得到高四位的值了,用高四位+低四位,就可以得到一个数值,确定一个键。
其扫描输出端口Pm.x不是直接与输入端口Pn.y交叉的,而是经过用于数码显示位驱动的反相组件后再与入端口Pn.y交叉的。
为此,其扫描输出有效端口不是低电平了,而是输出高电平经反相组件后再成为低电平,通过按键同样将与之交叉的输入端口线拉低。
所以,在查询输入端口时与图2所示的是相同的,而在查询扫描输出有效端口时与图2的就有所不同了。
为保证键每闭合一次MCU 只作一次处理,每一次键解读后都将置键解读标志位为逻辑对于键解读标志位的置位,可以在每一个键解释处理完毕后进行,也可在消抖动延时后就进行一次总置。
不管键有多少个,键解读标志位用的却是同一个。
其实,引入了键解读标志位,不只是控制键每闭合一次MCU只作一次处理,还可对那些持久按着的键有控地进行多次处理(如用于对一些数据递进、或递减的连续设置等)。
需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
具体的识别及编程方法如下所述。
矩阵式键盘的按键识别方法:确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
第二章系统的原理及分析用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P1.0-P1.3各管脚作输入线,以单片机的P1.4-P1.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。
数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。
若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。
所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
矩阵键盘驱动的主要作用就是实时监测外部按键中断,一旦发现外部有键按下就向内核发送键盘消息实现键盘输入功能。
键盘驱动创建了中断服务线程和4个键盘中断事件,每行按键对应一个键盘中断事件。
有键被按下时,中断服务例程得到对应的中断标识符并报告给系统任务调度进程,同时产生键盘中断事件,键盘中断服务线程响应键盘中断事件,开始扫描矩阵键盘。
根据产生的中断事件类型不同,可以首先确定被按下键的行位置。