笔记本16乘8矩阵键盘原理
电脑键盘工作原理

电脑键盘工作原理电脑键盘工作原理随着IBM PC机的发展,键盘也分为XT, AT, PS/2键盘以至于后来的USB键盘. PC系列机使用的键盘有83键、84键、101键、102键和104键等多种。
XT和AT机的标准键盘分别为83键和84键,而286机以上微机的键盘则普遍使用101键、102键或104键。
83键键盘是最早使用的一种PC机键盘,其键号与扫描码是一致的。
这个扫描码被直接发送到主机箱并转换为 ASCII码;随着高档PC机的出现,键盘功能和按键数目得到了扩充,键盘排列也发生了变化,产生的扫描码与83键键盘的扫描码不同。
为了保持PC系列微机的向上兼容性,需将84/101/102/104键键盘的扫描码转换为83键键盘的扫描码,一般将前者叫作行列位置扫描码,而将后者称为系统扫描码。
显然,对于83键键盘,这两种扫描码是相同的。
键盘是由一组排列成矩阵方式的按键开关组成,通常有编码键盘和非编码键盘两种类型,IBM系列个人微型计算机的键盘属于非编码类型。
微机键盘主要由单片机、译码器和键开关矩阵三大部分组成。
其中单片机采用了INTEL8048单片微处理器控制,这是一个40引脚的芯片,内部集成了8位 CPU、1024×8位的ROM、64×8位的RAM、8位的定时器/计数器等器件。
由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由键盘内部的单片机通过译码器来实现的。
单片机在周期性扫描行、列的同时,读回扫描信号线结果,判断是否有键按下,并计算按键的位置以获得扫描码。
当有键按下时,键盘分两次将位置扫描码发送到键盘接口;按下一次,叫接通扫描码;释放时再发一次,叫断开扫描码。
因此可以用硬件或软件的方法对键盘的行、列分别进行扫视,去查找按下的键,输出扫描位置码,通过查表转换为ASCII码返回。
键盘是与主机箱分开的一个独立装置,通过一根5芯电缆与主机箱连接,系统主板上的键盘接口按照键盘代码串行传送的应答约定,接受键盘发送来的扫描码;键盘在扫描过程中,7位计数器循环计数。
矩阵式键盘实验报告材料

矩阵键盘实验报告姓名佘成刚学号 2010302001班级 08041202时间 2016.01.20一、实验目的1.学习矩列式键盘工作原理;2.学习矩列式接口的程序设计。
二、实验设备普中HC6800ESV20开发板三、实验要求要求实现:用4*4矩阵键盘,用按键形式输入学号,在数码管上显示对应学号。
四、实验原理工作原理:矩阵式由行线和列线组成,按键位于行、列的交叉点上。
如图所示,一个 4*4 的行、列结构可以构成一个由 16 个按键的键盘。
很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的 I/0 口。
(1)矩阵式键盘工作原理按键设置在行、列交节点上,行、列分别连接到按键开关的两端。
行线通过下拉电阻接到 GND 上。
平时无按键动作时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。
列线电平如果为低,行线电平为高,列线电平如果为高,则行线电平则为低。
这一点是识别矩阵式键盘是否被按下的关键所在。
因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。
(2)按键识别方法下面以3 号键被按下为例,来说明此键是如何被识别出来的。
前已述及,键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线电平在无键按下时处于高电平状态。
如果让所有列线处于高电平那么键按下与否不会引起行线电平的状态变化,始终是高电平,所以,让所有列线处于高电平是没法识别出按键的。
现在反过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为低电平,根据此变化,便能判定该行一定有键被按下。
但我们还不能确定是这一行的哪个键被按下。
所以,为了进一步判定到底是哪—列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平。
当第 1 列为低电平,其余各列为高电平时,因为是键 3 被按下,所以第 1 行仍处于高电平状态;当第 2 列为低电平,其余各列为高电平时,同样我们会发现第 1 行仍处于高电平状态,直到让第 4 列为低电平,其余各列为高电平时,因为是 3 号键被按下,所以第 1 行的高电平转换到第 4 列所处的低电平,据此,我们确信第 1 行第 4 列交叉点处的按键即3 号键被按下。
笔记本16乘8矩阵键盘原理

键盘工作的主要原理:计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。
所谓行列扫描法是指,把键盘按键排列成n行×m列的n*m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,点阵上的键一旦被按动,该键所在的行列点阵信号就被认为已接通。
按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其行、列分别进行扫描,以查询和确认是否有键按动。
如有键按动,键盘就会向主机发送被按键所在的行列点阵的位置编码,称为键扫描码。
单片机通过周期性扫描行、列线,读回扫描信号结果,判断是否有键按下,并计算按键的位置以获得扫描码。
键被按下时,单片机分两次将位置扫描码发送到键盘接口:按下一次,叫接通扫描码;按完释放一次,叫断开扫描码。
这样,通过硬件或软件的方法对键盘分别进行行、列扫视,就可以确定按下键所在位置,获得并输出扫描位置码,然后转换为ASCII码,经过键盘I/O电路送入主机,并由显示器显示出来。
我們的應用是EC有KSI/KSO接鍵盤,EC確認鍵盤某個鍵有作用,才會通知系統來減少系統資源浪費,此外每一列会间断性发low讯号請問一秒內,一個固定的列(KSO)會發1000次Low Pulse.笔记本EC中使用到了16*8矩阵键盘,其中16根列线输入端为KSO0~KSO15,8根行线输出端为KSI0~KSI7。
16根列线和8根行线可以确定16*8=128个坐标点。
键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。
逐线扫描,得出键码。
下图给出了4*4的矩阵键盘的电路具体加以说明。
矩阵式键盘中,行、列线分别连接到按键开关的两端,行线X0、X1、X2、X3通过上拉电阻接到+5 V上。
当无键按下时,行线处于高电平状态,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。
矩阵键盘的接口与控制

完整程序实例
#include <reg51.h> #define uchar unsigned char
void keyscan(void); void dlms(void); uchar keyvalue=0xff; void main(void) { while(1) { keyscan(); P2=~keyvalue; } } void dlms(void) { uchar i; for(i=200;i>0;i--); }
STEP5:将得到的行号和列号进行译码,得到键值
P3.0 ) if(recode==0xfb { switch(sccode) { P3.1 case 0xfe: keyvalue=16;break; case 0xfd:keyvalue=17;break; case 0xfb:keyvalue=18;break; P3.2 case 0xf7:keyvalue=19;break; case 0xef:keyvalue=20;break; case 0xdf:keyvalue=21;break; case 0xbf:keyvalue=22;break; case 0x7f:keyvalue=23;break; P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 default:break; } }
STEP1: 检测是否有键按下 void keyscan( ) 向单片机的行扫描口输出全0,检测列输出口的状态是否全为“ 1” { unsigned char temp_key; P1=0xff; P3=0xf8; temp_key=P1; if(temp_key!=0xff) { … P3.0 } } “0”
STEP6: 松手检测
单片机独立按键和矩阵键盘概念及原理

单片机独立按键和矩阵键盘概念及原理一、基本知识 1.按键分类与输入原理 按键按照结构原理科分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关灯;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
前者造价低,后者寿命长。
目前,微机系统中最常见的是触点式开关按键。
在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。
当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入时与软件结构密切相关的过程。
对于一组键或一个键盘,总有一个接口电路与CPU相连。
CPU可以采用查询或中断方式了解有无将按键输入,并检查是哪一个按键按下,将该键号送人累加器,然后通过跳转指令转入执行该键的功能程序,执行完成后再返回主程序。
2.按键结构与特点 微机键盘通常使用机械触点式按键开关,其主要功能式把机械上的通断转换为电气上的逻辑关系。
也就是说,它能提供标准的TTL逻辑电平,以便于通用数字系统的逻辑电平相容。
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定的时间触点机械抖动,然后其触点才稳定下来。
其抖动过程如下图1所示,抖动时间的长短与开关的机械特性有关,一般为5-10ms。
在触点抖动期间检测按键的通与断,可能导致判断出错,即按键一次按下或释放错误的被认为是多次操作,这种情况是不允许出现的。
为了克服你、按键触点机械抖动所致的检测误判,必须采取消抖措施。
按键较少时,可采用硬件消抖;按键较多式,采用软件消抖。
图1 按键触点机械抖动 (1)按键编码 一组按键或键盘都要通过I/O口线查询按键的开关状态。
根据键盘结构的不同,采用不同的编码。
无论有无编码,以及采用什幺编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。
(2)键盘程序 一个完整的键盘控制程序应具备以下功能: a.检测有无按键按下,并采取硬件或软件措施消抖。
51单片机矩阵键盘原理

51单片机矩阵键盘原理介绍在嵌入式系统中,矩阵键盘是一种常见的输入装置。
51单片机是广泛使用的一种微控制器,结合矩阵键盘可以实现各种应用。
本文将详细介绍51单片机矩阵键盘的原理及其工作方式。
什么是矩阵键盘?矩阵键盘是将一组按钮布置成矩阵形式,以减少输入引脚的数量。
每个按钮在矩阵键盘中都会被分配一个坐标,通过扫描行和列,可以确定用户按下的是哪个按钮。
51单片机的输入输出结构51单片机具有强大的输入输出能力,可以连接各种外设。
在使用矩阵键盘时,通常使用IO口进行输入和输出操作。
矩阵键盘的接线方式将矩阵键盘与51单片机连接时,需要将键盘的行和列引脚分别连接到单片机的IO 口。
通过对行进行扫描,再根据列的输入状态判断按钮是否按下。
这种接线方式可以大大减少所需的IO口数量。
矩阵键盘的扫描原理矩阵键盘的扫描原理是通过不断扫描行并读取列的状态来判断按钮是否按下。
具体步骤如下: 1. 将所有行引脚设为输出,输出高电平。
2. 逐个扫描行,将当前行引脚设为低电平。
3. 读取所有列引脚的状态,如果有低电平表示有按钮按下。
4. 如果有按钮按下,则根据行和列的坐标确定按下的按钮。
51单片机矩阵键盘的实现以下是使用51单片机实现矩阵键盘的基本步骤: 1. 将行和列引脚连接到单片机的IO口。
2. 初始化IO口的状态。
3. 在主程序中进行循环扫描,根据扫描结果执行相应的操作。
优化矩阵键盘的扫描速度为了提高矩阵键盘的扫描速度,可以采用以下优化方法: 1. 使用硬件定时器来定时扫描行,减少CPU的负载。
2. 使用中断方式处理按键事件,从而减少程序中的轮询操作。
3. 将矩阵键盘的行和列布局进行优化,减少扫描的时间复杂度。
利用矩阵键盘实现密码输入矩阵键盘广泛应用于密码输入功能。
通过将矩阵键盘与51单片机结合,可以实现密码的输入、验证等功能。
以下是一个简单的密码输入的实现步骤: 1. 设置一个密码数组用于存储密码。
2. 使用矩阵键盘获取用户输入的密码,并依次存储到临时数组中。
矩阵键盘的按键识别原理

矩阵键盘的按键识别原理嘿,朋友们!今天咱来唠唠矩阵键盘的按键识别原理。
你看啊,这矩阵键盘就像是一个小小的战场,每个按键都是一名勇敢的战士呢!想象一下,这些按键整齐地排列在那里,等待着我们去“召唤”它们。
那它到底是怎么识别我们按的是哪个键呢?其实啊,就像是一场巧妙的游戏。
矩阵键盘是通过行列交叉的方式来工作的哦!比如说,它有好多行和列,就像一个方格网。
当我们按下一个键时,就相当于在这个方格网上点亮了一个特定的点。
这就好像是在一群人中,你一下子就找到了你要找的那个人一样神奇!每个按键都有它自己独特的位置,通过行和列的组合,矩阵键盘就能准确地知道是哪个键被按下啦。
那它怎么知道这个键被按下了呢?这就得说到它的检测机制啦。
它会不停地去“巡逻”这些行列,一旦发现有某个地方的信号有变化,嘿嘿,那就说明有键被按下去啦!这多有意思呀!而且哦,矩阵键盘还很聪明呢!它不会因为你不小心碰到了别的键就乱了套,它能准确地识别出你真正想要按的那个键。
这就好像一个经验丰富的侦探,能从一堆线索中找到真正的关键信息。
你说这矩阵键盘是不是很厉害?它就静静地待在那里,随时准备为我们服务,只要我们一伸手,它就能快速响应。
想想我们日常生活中的各种电子设备,好多都有矩阵键盘的身影呢!从小小的遥控器到复杂的电脑键盘,它们都在默默地工作着。
我们每天都在和它们打交道,却很少有人真正去了解它们背后的原理。
现在你知道了矩阵键盘的按键识别原理,是不是对这些常见的东西又多了一份好奇和敬意呢?下次再使用有矩阵键盘的设备时,你可以在心里默默感叹一下它的神奇哦!反正我是觉得挺有意思的,它就像是一个隐藏在电子世界里的小秘密,等着我们去发现和探索。
这不就是科技的魅力所在嘛!所以呀,别小看了这些看似普通的东西,它们背后可都有着不简单的原理和故事呢!原创不易,请尊重原创,谢谢!。
44 矩阵键盘工作原理

44 矩阵键盘工作原理
矩阵键盘是一种常见的输入设备,它可以用于电子设备、计算机等系统中。
它的工作原理是基于一个由多行多列的按键组成的矩阵。
矩阵键盘的按键布局类似于一个矩阵,其中按键的行和列被编号。
每个按键都有一个独特的行列地址。
按下一个按键时,矩阵键盘会通过行和列的触点之间的闭合来检测到按键的操作。
在工作时,矩阵键盘会周期性地轮询每个行和列的触点状态。
它会先闭合一个行(即将该行的输出信号置为高电平),然后依次检测每一列,看哪些按键的该列的触点闭合。
如果某个按键被按下,那么它所对应的行和列的触点就会闭合。
矩阵键盘通常采用编码器来记录按键信息。
在触发了某个按键后,编码器会将按键的行列地址转换成一个特定的二进制码。
这个二进制码可以被连接的设备(如计算机)所识别,从而得知哪个按键被按下了。
通过矩阵键盘的工作原理,我们可以实现对多个按键的监测和输入。
无论是在计算机上打字,还是在其他电子设备上进行输入,矩阵键盘都可以提供一个简单有效的解决方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘工作的主要原理:计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。
所谓行列扫描法是指,把键盘按键排列成n行×m列的n*m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,点阵上的键一旦被按动,该键所在的行列点阵信号就被认为已接通。
按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其行、列分别进行扫描,以查询和确认是否有键按动。
如有键按动,键盘就会向主机发送被按键所在的行列点阵的位置编码,称为键扫描码。
单片机通过周期性扫描行、列线,读回扫描信号结果,判断是否有键按下,并计算按键的位置以获得扫描码。
键被按下时,单片机分两次将位置扫描码发送到键盘接口:按下一次,叫接通扫描码;按完释放一次,叫断开扫描码。
这样,通过硬件或软件的方法对键盘分别进行行、列扫视,就可以确定按下键所在位置,获得并输出扫描位置码,然后转换为ASCII码,经过键盘I/O电路送入主机,并由显示器显示出来。
我們的應用是EC有KSI/KSO接鍵盤,EC確認鍵盤某個鍵有作用,才會通知系統來減少系統資源浪費,此外每一列会间断性发low讯号
請問一秒內,一個固定的列(KSO)會發1000次Low Pulse.
笔记本EC中使用到了16*8矩阵键盘,其中16根列线输入端为KSO0~KSO15,8根行线输出端为KSI0~KSI7。
16根列线和8根行线可以确定16*8=128个坐标点。
键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。
逐线扫描,得出键码。
下图给出了4*4的矩阵键盘的电路具体加以说明。
矩阵式键盘中,行、列线分别连接到按键开关的两端,行线X0、X1、X2、X3通过上拉电阻接到+5 V上。
当无键按下时,行线处于高电平状态,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。
当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。
这一点是识别矩阵按键是否被按下的关键。
按键按下时,与此键相连的行线与列线导通,对应的行线被拉低,CPU根据行平电的变化,便能判定相应的行有键按下。
例如8号键按下时,第X2行一定为低电平,然而,第2行为低电平时,不能确定一定是8号键按下的,因为9、10、11号键按下同样使第2行为低电平。
为进一步
确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。
下面对几个常见问题的探讨:
1、CPU对键盘扫描的方式
键盘扫描只是CPU的工作内容之一,CPU对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。
通常,键盘的工作方式有三种,程序控制的随机方式(CPU 空闲时扫描键盘)、定时控制方式(定时扫描键盘)和中断方式. 由于CPU经常处于空扫描状态,为提高CPU工作效率,一般采用中断扫描工作方式。
其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。
2、独立连接式键盘与矩阵连接式键盘的对比
独立连接式键盘每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。
其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占I/O口线多。
适用场合:多用于设置控制键、功能键,适用于键数少的场合。
矩阵连接式键盘键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。
逐线扫描,得出键码。
其特点是键多时占用I/O口线少,硬件资源利用合理,但判键速度慢。
适用场合:多用于设置数字键,适用于键数多的场合。
3、按键开关去抖动问题
键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。
消除抖动不良后果的方法有硬件去抖动和软件去抖动。
硬件去抖动常用RC滤波电路去抖动电路。
软件去抖动是测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。
4、键盘的键位冲突问题
简单的说,也就是当你同时按下键盘上的几个键的时候,这几个键不能同时反映出来,这就叫做键盘的键位冲突。
例如,经常有一些键盘不能同时对例如A-S-空格这样的按键组合作出反应,这样在FPS游戏中,使用者就会大为吃亏。
键位冲突的直接起因,是键盘的非编码结构。
传统的键盘,是编码式键盘,它的每个键按下时都会产生唯一的按键编码,并且通过专有的一组导线传输到键盘接口电路,由于其线路和编码的唯一性,这种键盘是不存在键位冲突的问题的,但是
编码键盘结构复杂,现在已经很少使用了,现在的键盘几乎都是非编码的薄膜接触式键盘。
而现代的薄膜接触式键盘,任何一个按键都有上下两层薄膜的触点,在任何一层薄膜上,导线数都远少于按键数,而且每一条导线都同时连通多个按键的触点,而且,上层和下层的任何两条导线都最多只在一个按键上重合。
也就是说,上层的1号导线可能会同时经过1、2、3、4、5…等按键,而下层的1号导线可能同时经过1、Q、A、Z…等按键,且两条导线只在1键上重合。
CPU对键盘扫描的方式一般采用中断扫描工作方式。
当无键按下时,CPU处理自己的工作;当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。
其目的是为了提高CPU的工作效率。
键盘主要工作原理:无键按下时,所有行线为high,列线为low;有键按下时,CPU转去执行键盘扫描程序,将所有列线拉high,但每一列会间断性发low讯号(时间间隔不同),当CPU判断按下键对应的列线时,low讯号会将键对应的行线拉low,从而确定键的位置。
实验关键为列线发low讯号的时间间隔不同,证实昨天Frank的观点是正确的。
在实验证实时,随机选取两组列线输入端KSO15(通道1)、KSO0(通道2);随机选取两组行线输出端KSI3(通道3)、KSI5(通道4)。
1、无任何键按下时,通过多次实验,发现所有行线为high,列线为low。
2、按下鍵“A”時,CPU执行键盘扫描程序,将所有列线拉high,但每一列会间断性发low讯号(时间间隔不同),由于只是从8组行线随机选的2组,下图没有A键行线。
3、按下鍵“4”時,CPU执行键盘扫描程序,将所有列线拉high,但每一列会间断性发low讯号(时间间隔不同),
4、按下小鍵盤中數字鍵“2”時,CPU执行键盘扫描程序,将所有列线拉high,但每一列会间断性发low 讯号(时间间隔不同)。
此时CPU扫描判断键“2”对应的列线为KSO0,KSO0的Low讯号将键“2”对应的行线KSI5拉low,从而确定键“2”行、列的位置。