矩阵键盘及其电路设计

合集下载

矩阵键盘电路设计

矩阵键盘电路设计

矩阵键盘电路设计矩阵键盘是一种常见的输入设备,它通过矩阵布局的按键组成,可以方便地输入数字、字母和其他符号。

在电子设备中,矩阵键盘通常采用扫描电路进行输入和控制。

在本文中,将探讨矩阵键盘电路的设计。

首先,我们需要确定矩阵键盘的布局。

一般情况下,矩阵键盘采用4×4或者3×4的布局。

每个按键都是一个开关,当按下时闭合,松开时断开。

接下来,我们需要设计输入电路。

输入电路通过扫描矩阵键盘的每一行和每一列来检测按键的状态。

为了实现这个功能,我们可以使用两个二进制计数器来控制扫描的行和列。

每当计数器增加时,就对应地扫描一行或者一列。

我们可以通过多路复用器和反向器将计数器输出与矩阵键盘的行和列相连。

当计数器的输出与矩阵键盘的行和列相连后,我们可以通过逐行或逐列地扫描矩阵键盘并检测按键的状态。

如果有按键按下,我们可以将对应的按键编码为数字信号。

在设计输入电路时,我们还需要考虑按键去抖动的问题。

按键去抖动是指当按键被按下或松开时,会产生多次开关闭合的现象。

为了解决这个问题,我们可以使用一个滤波器电路来消除按键的抖动。

滤波器电路可以采用RC滤波器或者Schmitt触发器等。

设计好输入电路后,接下来需要设计控制电路。

控制电路负责扫描矩阵键盘的每一行和每一列,以及对按键的状态进行控制。

我们可以使用计时器和计数器来控制扫描的速度和顺序。

当检测到按键按下时,控制电路会将对应的按键编码为数字信号并传递给接收端。

此外,在设计控制电路时,我们还需要考虑矩阵键盘的多键同时按下的问题。

当多个按键同时按下时,我们需要使用矩阵解码器来对这些按键进行解码,并将解码结果传递给接收端。

在进行电路设计时,我们还需要考虑一些其他的因素,比如布线、电源供应和接收端的设计等。

布线是指将电路中的各个元件和连接线布置在PCB板上的过程。

在布线时,我们需要确保信号传输的可靠性和稳定性。

电源供应是指提供电路所需的电源电压和电流的过程。

接收端的设计是指接收和处理从矩阵键盘电路传递过来的数字信号的过程。

矩阵键盘显示电路的设计

矩阵键盘显示电路的设计

矩阵键盘显示电路的设计一、实验目的1、了解普通4×4键盘扫描的原理。

2、进一步加深七段码管显示过程的理解。

3、了解对输入/输出端口的定义方法。

二、实验原理实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。

作为一个嵌入系统设计人员,总是会关心产品成本。

目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。

嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。

图12-1 简单键盘电路通常在一个键盘中使用了一个瞬时接触开关,并且用如图10-1 所示的简单电路,微处理器可以容易地检测到闭合。

当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。

可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。

尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。

当触点闭合时,其弹起就像一个球。

弹起效果将产生如图12-2 所示的好几个脉冲。

弹起的持续时间通常将维持在5ms∼30ms 之间。

如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。

然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。

图12-2 按键抖动键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图12-3 所示的二维矩阵。

当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。

一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。

矩阵所需的键的数目显然根据应用程序而不同。

每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。

图12-3 矩阵键盘键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

9、矩阵式键盘的设计

9、矩阵式键盘的设计

第二章矩阵式键盘的设计班级:光信科1203 组员:陈宏烨、王凯杰、龚馨1.设计要求设计一个4*4的矩阵式键盘,以P1.0~P1.3作为行线,以P1.4~P1.7作为列线。

要求:未按下键时,LED数码管显示“-”,按下键时,在数码管上显示相应的键值。

2.硬件电路图图2.1电路说明:在图2.1所示的电路中,数码管采用共阳极接法,当P1口输出低电平时,数码管发光。

P1.0~P1.3行线开始时为高电平,P1.4~P1.7列线开始时为低电平,当有键被按下时(每次只按下一个键),键所在的行线变成低电平。

3.软件流程设计思路:要想让数码管输出正确的数字,必须要做到三步:1.判断是否有键被按下;2.判断被按下键的位置;3.确定该位置所对应的数字并输出。

由于我们令低四位为高电平的行线,令高四位为低电平的列线,所以对应的十六进制数应该是0x0f。

当有键被按下时,被按下的键所在的行必定由高电平变成低电平,对应的十六进制数必定不是0x0f,从而确定是否有键被按下并且确定被按下键所在的行。

同理,我们可以重新定义一个函数,先令高四位为高电平,低四位为低电平,所对应的十六进制数为0xf0,接着当有键被按下时,这时对应的十六进制数必定不是0xf0,从而可以确定被按下键所在的列。

最后,定义一个函数,按每个键所处的不同位置,分别输出不同的数。

4.源代码#include <reg52.h>void delay(ms){ for(;ms>0;ms--);}void Hang1(){ char key;P1=0xf0;delay (100);key=P1;switch(key){case 0xe0:P0=0xc0;break;case 0xd0:P0=0xf9;break;case 0xb0:P0=0xa4;break;case 0x70:P0=0xb0;break;default :break;}}void Hang2(){ char key;P1=0xf0;delay (100);key=P1;switch(key){case 0xe0:P0=0x99;break;case 0xd0:P0=0x92;break;case 0xb0:P0=0x82;break;case 0x70:P0=0xf8;break;default :break; }}void Hang3(){ char key;P1=0xf0;delay (100);key=P1;switch(key){case 0xe0:P0=0x80;break;case 0xd0:P0=0x90;break;case 0xb0:P0=0x88;break;case 0x70:P0=0x83;break;default :break;}}void Hang4(){ char key;P1=0xf0;delay (100);key=P1;switch(key){case 0xe0:P0=0xc6;break;case 0xd0:P0=0xa1;break;case 0xb0:P0=0x86;break;case 0x70:P0=0x8e;break;default :break; }}void main(){ int key;P1=0x0f;while(P1==0x0f){P0=0x3f;};delay(100);while(P1==0x0f){P0=0x3f;};/*进行去抖操作*/key=P1;if( P1!=0x0f) /*判断是否有键被按下*/{switch(key) /*判断被按下的键在哪一行,并进行相应的操作*/ {case 0x0e:Hang1();break;case 0x0d:Hang2();break;case 0x0b:Hang3();break;case 0x07:Hang4();break;}}}5.出现的问题及解决方法在设计的时候,如果我们直接按照流程图的做法来写程序,这样的工作量会增大。

单片机4×4矩阵键盘设计方案

单片机4×4矩阵键盘设计方案

1、设计原理(1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。

(2)键盘中对应按键的序号排列如图14.1所示。

2、参考电路图14.2 4×4矩阵式键盘识别电路原理图3、电路硬件说明(1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。

(2)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。

4、程序设计内容(1)4×4矩阵键盘识别处理。

(2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线分别通过两并行接口和CPU通信。

键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。

键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。

两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。

5、程序流程图(如图14.3所示)6、汇编源程序;;;;;;;;;;定义单元;;;;;;;;;;COUNT EQU 30H;;;;;;;;;;入口地址;;;;;;;;;;ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;;;;;;;;;;主程序入口;;;;;;;;;;ORG 0100HSTART: LCALL CHUSHIHUALCALL PANDUANLCALL XIANSHILJMP START;;;;;;;;;;初始化程序;;;;;;;;;;CHUSHIHUA: MOV COUNT,#00HRET;;;;;;;;;;判断哪个按键按下程序;;;;;;;;;;PANDUAN: MOV P3,#0FFHCLR P3.4MOV A,P3ANL A,#0FHJZ SW1LCALL DELAY10MS JZ SW1MOV A,P3ANL A,#0FHCJNE A,#0EH,K1 MOV COUNT,#0 LJMP DKK1: CJNE A,#0DH,K2 MOV COUNT,#4 LJMP DKK2: CJNE A,#0BH,K3 MOV COUNT,#8 LJMP DKK3: CJNE A,#07H,K4 MOV COUNT,#12K4: NOPLJMP DKSW1: MOV P3,#0FFH CLR P3.5MOV A,P3ANL A,#0FHJZ SW2LCALL DELAY10MS JZ SW2MOV A,P3ANL A,#0FHCJNE A,#0EH,K5 MOV COUNT,#1 LJMP DKK5: CJNE A,#0DH,K6 MOV COUNT,#5 LJMP DKK6: CJNE A,#0BH,K7 MOV COUNT,#9 LJMP DKK7: CJNE A,#07H,K8 MOV COUNT,#13K8: NOPLJMP DKSW2: MOV P3,#0FFH CLR P3.6MOV A,P3ANL A,#0FHJZ SW3LCALL DELAY10MS JZ SW3MOV A,P3ANL A,#0FHCJNE A,#0EH,K9 MOV COUNT,#2 LJMP DKK9: CJNE A,#0DH,KA MOV COUNT,#6 LJMP DKKA: CJNE A,#0BH,KB MOV COUNT,#10 LJMP DKKB: CJNE A,#07H,KC MOV COUNT,#14 KC: NOPLJMP DKSW3: MOV P3,#0FFH CLR P3.7MOV A,P3ANL A,#0FHJZ SW4LCALL DELAY10MSJZ SW4MOV A,P3ANL A,#0FHCJNE A,#0EH,KDMOV COUNT,#3LJMP DKKD: CJNE A,#0DH,KE MOV COUNT,#7LJMP DKKE: CJNE A,#0BH,KF MOV COUNT,#11 LJMP DKKF: CJNE A,#07H,KG MOV COUNT,#15KG: NOPLJMP DKSW4: LJMP PANDUAN DK: RET ;;;;;;;;;;显示程序;;;;;;;;;; XIANSHI: MOV A,COUNTMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ALCALL DELAYSK: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ SKRET;;;;;;;;;;10ms延时程序;;;;;;;;;;DELAY10MS: MOV R6,#20D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RET;;;;;;;;;;200ms延时程序;;;;;;;;;;DELAY: MOV R5,#20LOOP: LCALL DELAY10MSDJNZ R5,LOOPRET;;;;;;;;;;共阴码表;;;;;;;;;;TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;;;;;;;;;;结束标志;;;;;;;;;;END7、C语言源程序#includeunsigned char code table[]={0x3f,0x66,0x7f,0x39,0x06,0x6d,0x6f,0x5e,0x5b,0x7d,0x77,0x79,0x4f,0x07,0x7c,0x71};void main(void){ unsigned char i,j,k,key;while(1){ P3=0xff; //给P3口置1//P3_4=0; //给P3.4这条线送入0//i=P3;i=i&0x0f; //屏蔽低四位//if(i!=0x0f) //看是否有按键按下//{ for(j=50;j>0;j--) //延时//for(k=200;k>0;k--);if(i!=0x0f) //再次判断按键是否按下//{ switch(i) //看是和P3.4相连的四个按键中的哪个// { case 0x0e:key=0;break;case 0x0d:key=1;break;case 0x0b:key=2;break;case 0x07:key=3;break;}P0=table[key]; //送数到P0口显示//}}P3=0xff;P3_5=0; //读P3.5这条线//i=P3;i=i&0x0f; //屏蔽P3口的低四位//if(i!=0x0f) //读P3.5这条线上看是否有按键按下// { for(j=50;j>0;j--) //延时//for(k=200;k>0;k--);i=P3; //再看是否有按键真的按下//i=i&0x0f;if(i!=0x0f){ switch(i) //如果有,显示相应的按键//{ case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;}P0=table[key]; //送入P0口显示//}}P3=0xff;P3_6=0; //读P3.6这条线上是否有按键按下// i=P3;i=i&0x0f;if(i!=0x0f){ for(j=50;j>0;j--)for(k=200;k>0;k--);i=P3;i=i&0x0f;if(i!=0x0f){ switch(i){ case 0x0e:key=8;break;case 0x0d:key=9;break;case 0x0b:key=10;break;case 0x07:key=11;break;}P0=table[key];}}P3=0xff;P3_7=0; //读P3.7这条线上是否有按键按下//i=P3;i=i&0x0f;if(i!=0x0f){ for(j=50;j>0;j--) for(k=200;k>0;k--); i=P3;i=i&0x0f;if(i!=0x0f){ switch(i){ case 0x0e:key=12;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;}P0=table[key];}}}}8、注意事项在硬件电路中,要把8联拨动拨码开关JP2拨下,把8联拨动拨码开关JP3拨上去。

矩阵式键盘设计实训报告

矩阵式键盘设计实训报告

一、实验目的1. 掌握矩阵式键盘的工作原理及电路设计方法。

2. 熟悉单片机与矩阵键盘的接口连接及编程技巧。

3. 提高动手实践能力,培养创新意识。

二、实验设备1. 单片机实验平台2. 矩阵键盘模块3. 数字多用表4. 编译器(如Keil51)5. 连接线三、实验原理矩阵键盘是一种常用的键盘设计方式,通过行列交叉点连接按键,从而实现多个按键共用较少的I/O端口。

矩阵键盘通常采用逐行扫描的方式检测按键状态,当检测到按键按下时,根据行列线的电平状态确定按键位置。

四、实验内容1. 矩阵键盘电路设计2. 矩阵键盘编程3. 矩阵键盘测试与调试五、实验步骤1. 电路设计(1)根据矩阵键盘的规格,确定行线和列线的数量。

(2)将行线和列线分别连接到单片机的I/O端口。

(3)在行线上串联电阻,防止按键抖动。

(4)连接电源和地线。

2. 编程(1)初始化单片机的I/O端口,将行线设置为输出,列线设置为输入。

(2)编写逐行扫描程序,逐行拉低行线,读取列线状态。

(3)根据行列线状态判断按键位置,并执行相应的操作。

3. 测试与调试(1)将编写好的程序下载到单片机中。

(2)连接矩阵键盘,观察按键是否正常工作。

(3)使用数字多用表检测行列线电平,确保电路连接正确。

(4)根据测试结果,对程序进行调试,直到矩阵键盘正常工作。

六、实验结果与分析1. 电路连接正确,按键工作正常。

2. 逐行扫描程序能够正确检测按键位置。

3. 按键操作能够触发相应的程序功能。

七、实验总结1. 通过本次实训,掌握了矩阵式键盘的工作原理及电路设计方法。

2. 熟悉了单片机与矩阵键盘的接口连接及编程技巧。

3. 提高了动手实践能力,培养了创新意识。

八、心得体会1. 在实验过程中,遇到了电路连接错误和程序调试困难等问题,通过查阅资料、请教老师和同学,最终成功解决了问题。

2. 本次实训让我深刻体会到理论知识与实际操作相结合的重要性,同时也认识到团队合作的重要性。

九、改进建议1. 在电路设计过程中,可以考虑增加去抖动电路,提高按键稳定性。

单片机4×4矩阵键盘设计方案

单片机4×4矩阵键盘设计方案

1、设计原理(1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。

(2)键盘中对应按键的序号排列如图14.1所示。

2、参考电路图14.24×4矩阵式键盘识别电路原理图3、电路硬件说明(1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。

(2)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。

4、程序设计内容(1)4×4矩阵键盘识别处理。

(2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线分别通过两并行接口和CPU通信。

键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。

键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。

两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。

5、程序流程图(如图14.3所示)6、汇编源程序;;;;;;;;;;定义单元;;;;;;;;;;COUNTEQU30H;;;;;;;;;;入口地址;;;;;;;;;;ORG0000HLJMPSTARTORG0003HRETIORG000BHRETIORG0013HRETIORG001BHRETIORG0023HRETIORG002BHRETI;;;;;;;;;;主程序入口;;;;;;;;;;ORG0100HSTART:LCALLCHUSHIHUALCALLPANDUANLCALLXIANSHILJMPSTART;;;;;;;;;;初始化程序;;;;;;;;;; CHUSHIHUA:MOVCOUNT,#00HRET;;;;;;;;;;判断哪个按键按下程序;;;;;;;;;; PANDUAN:MOVP3,#0FFHCLRP3.4MOVA,P3ANLA,#0FHXRLA,#0FHJZSW1LCALLDELAY10MSJZSW1MOVA,P3ANLA,#0FHCJNEA,#0EH,K1MOVCOUNT,#0LJMPDKK1:CJNEA,#0DH,K2MOVCOUNT,#4 LJMPDKK2:CJNEA,#0BH,K3 MOVCOUNT,#8 LJMPDKK3:CJNEA,#07H,K4 MOVCOUNT,#12K4:NOPLJMPDKSW1:MOVP3,#0FFH CLRP3.5MOVA,P3ANLA,#0FH XRLA,#0FHJZSW2 LCALLDELAY10MS JZSW2MOVA,P3ANLA,#0FH CJNEA,#0EH,K5 MOVCOUNT,#1LJMPDKK5:CJNEA,#0DH,K6 MOVCOUNT,#5 LJMPDKK6:CJNEA,#0BH,K7 MOVCOUNT,#9 LJMPDKK7:CJNEA,#07H,K8 MOVCOUNT,#13K8:NOPLJMPDKSW2:MOVP3,#0FFH CLRP3.6MOVA,P3ANLA,#0FH XRLA,#0FHJZSW3 LCALLDELAY10MS JZSW3MOVA,P3ANLA,#0FHCJNEA,#0EH,K9 MOVCOUNT,#2 LJMPDKK9:CJNEA,#0DH,KA MOVCOUNT,#6 LJMPDKKA:CJNEA,#0BH,KB MOVCOUNT,#10 LJMPDKKB:CJNEA,#07H,KC MOVCOUNT,#14 KC:NOPLJMPDKSW3:MOVP3,#0FFH CLRP3.7MOVA,P3ANLA,#0FH XRLA,#0FHJZSW4 LCALLDELAY10MS JZSW4ANLA,#0FHCJNEA,#0EH,KD MOVCOUNT,#3LJMPDKKD:CJNEA,#0DH,KE MOVCOUNT,#7LJMPDKKE:CJNEA,#0BH,KF MOVCOUNT,#11LJMPDKKF:CJNEA,#07H,KG MOVCOUNT,#15KG:NOPLJMPDKSW4:LJMPPANDUANDK:RET;;;;;;;;;;显示程序;;;;;;;;;; XIANSHI:MOVA,COUNT MOVDPTR,#TABLEMOVCA,@A+DPTRLCALLDELAYSK:MOVA,P3ANLA,#0FHXRLA,#0FHJNZSKRET;;;;;;;;;;10ms延时程序;;;;;;;;;; DELAY10MS:MOVR6,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1RET;;;;;;;;;;200ms延时程序;;;;;;;;;; DELAY:MOVR5,#20LOOP:LCALLDELAY10MSDJNZR5,LOOPRET;;;;;;;;;;共阴码表;;;;;;;;;;TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB7FH,6FH,77H,7CH,39H,5EH,79H,71H7、C语言源程序#includeunsignedcharcodetable[]={0x3f,0x66,0x7f,0x39,0x06,0x6d,0x6f,0x5e,0x5b,0x7d,0x77,0x79,0x4f,0x07,0x7c,0x71};voidmain(void){unsignedchari,j,k,key;while(1){P3=0xff;//给P3口置1//P3_4=0;//给P3.4这条线送入0//i=P3;i=i&0x0f;//屏蔽低四位//if(i!=0x0f)//看是否有按键按下//{for(j=50;j>0;j--)//延时//for(k=200;k>0;k--);if(i!=0x0f)//再次判断按键是否按下//{switch(i)//看是和P3.4相连的四个按键中的哪个// {case0x0e:key=0;break;case0x0d:key=1;break;case0x0b:key=2;break;case0x07:key=3;break;}P0=table[key];//送数到P0口显示//}}P3=0xff;P3_5=0;//读P3.5这条线//i=P3;i=i&0x0f;//屏蔽P3口的低四位//if(i!=0x0f)//读P3.5这条线上看是否有按键按下// {for(j=50;j>0;j--)//延时//for(k=200;k>0;k--);i=P3;//再看是否有按键真的按下//i=i&0x0f;if(i!=0x0f){switch(i)//如果有,显示相应的按键// {case0x0e:key=4;break;case0x0d:key=5;break;case0x0b:key=6;break;case0x07:key=7;break;}P0=table[key];//送入P0口显示//}}P3=0xff;P3_6=0;//读P3.6这条线上是否有按键按下// i=P3;i=i&0x0f;if(i!=0x0f){for(j=50;j>0;j--)for(k=200;k>0;k--);i=P3;i=i&0x0f;if(i!=0x0f){switch(i){case0x0e:key=8;break;case0x0d:key=9;break;case0x0b:key=10;break;case0x07:key=11;}P0=table[key];}}P3=0xff;P3_7=0;//读P3.7这条线上是否有按键按下// i=P3;i=i&0x0f;if(i!=0x0f){for(j=50;j>0;j--)for(k=200;k>0;k--);i=P3;i=i&0x0f;if(i!=0x0f){switch(i){case0x0e:key=12;break;case0x0d:key=13;case0x0b:key=14;break;case0x07:key=15;break;}P0=table[key];}}}}8、注意事项在硬件电路中,要把8联拨动拨码开关JP2拨下,把8联拨动拨码开关JP3拨上去。

51单片机矩阵键盘设计

51单片机矩阵键盘设计

51单片机矩阵键盘设计
一、引言
AT89C51单片机矩阵键盘设计是嵌入式系统中一个重要的技术,它的
作用是以矩阵形式把外部按键与MCU相连,使得系统可以对外部的按键进
行检测和响应。

矩阵键盘设计在可编程嵌入式系统的设计中占有重要的地位,如智能交通系统、智能家居系统、航空电子系统等。

本文主要介绍了矩阵键盘设计中硬件电路的设计,包括按键、拉电阻、和矩阵编码等,同时给出系统的控制算法,使得系统可以实现有效的按键
检测和响应。

二、矩阵键盘概述
矩阵键盘是将多个按键排布成列行形式进行连接,一般来说,矩阵键
盘是由按键、拉电阻、矩阵编码器和控制器组成,按键是系统中重要的部件,其作用是将外部输入信号传递给控制器。

拉电阻起到的作用是防止按
键耦合,一般可以使用4.7KΩ拉电阻来防止按键耦合。

矩阵编码器用来
识别按键的状态,通常通过硬件把按键信号编码为数字信号,输入到处理
器或控制器。

控制器用来实现按键信号的检测,通过定义硬件定时器和软
件定时器,实现按键检测和处理。

1、硬件电路设计
应用AT89C51单片机矩阵键盘。

矩阵键盘设计实验报告

矩阵键盘设计实验报告

矩阵键盘设计实验报告
矩阵键盘是一种特殊的电子输入设备,其特殊性在于每个按键可以仅由几根线连接而成。

这可以将按键尺寸缩小,同时也减少了接線复杂度。

在本次实验中,我们设计了一个4*4的矩阵键盘。

矩阵键盘的外型是4 *4的按键,其中每个按键由一个PIN组成,连接起来分别连接在一个不同的ROW与COL上。

在使用矩阵键盘时,我们将其连接到一台电脑上,通过电脑程序监视每行每列的通断状态,当一行或者一列被按下,程序会自动捕捉,来表示一个字符或者code.
首先,我们先准备一台电脑,再连接矩阵键盘的各个PIN,用8个信号线将矩阵键盘连接到单片机,再用USB线将单片机连接到电脑上,使用PL 2303驱动链接矩阵键盘和电脑终端。

单片机负责捕获ROW和COL的信号,计算并识别矩阵键盘的按键,将计算出的字符发送至电脑终端,进行小程序的检测。

在电脑端,我们使用Apple系统的终端运行.bash,编写简单的shell脚本实现对矩阵键盘信号识别。

脚本将不断检测矩阵键盘信号状态,根据捕捉到的ROW和COL信号,将其映射出字符信息,在一定时间内输出至终端。

在实验的最后,我们检验了所设计的矩阵键盘是否符合预期效果。

通过代码发送进行按键操作,能检测到正确的字符,表明矩阵键盘的设计及实现满足要求。

本次实验可以作为以后矩阵键盘的参考,深入研究程序软件,提高实验效率。

矩阵式键盘控制数码管显示

矩阵式键盘控制数码管显示
完成实训报告十
7
谢谢观赏!
二、工作原理
当扫描开始时, 首先将P1.7列初始值设置为低电平, 即P
3
三、程序流程图 ——主程序
开始
初始化
按键查询
YES
A=FFH?
NO
调用消除抖动子程序转Leabharlann 功能处理程序AAAA 1234
结束
4
四、程序清单
独立式键盘控制灯移动程序.doc
5
五、实验板上测试
观察实验结果并记录: 按下不同按键开关,可以看到P0端口的
实训十一: 矩阵式键盘控制数码管显示
功能说明: 使用4*4矩阵式键盘控制第一个数码
管显示0~F。
1
一、电路图
4条列线的一端分别与单片机P1口中的P1.4、 P1.5、 P1.6. P1.7 相接,另一端通过上拉电阻接到+5V电源上,平时使 列线处于高电平状态;而4条行线的一端分别与P1口中的 P1.0、 P1.1、 P1.2、 P1.3相接。16个按键设置在行、列 2 线交点上。
灯作不同方向的移动或闪烁,说明是在执 行不同功能键的处理程序。 按DL1键,亮灯从右向左移动 按DL2键,亮灯从左向右移动 按DL3键,左边4只灯与右边4只灯交替闪亮 按DL4键,8个灯闪烁
6
码管显示0; 作业布置按下DL2,第二个数
码管显示1; 按下DL3,第三个数 码管显示2; 按下DL4,第四个数 码管显示3 。

矩阵键盘及其电路设计

矩阵键盘及其电路设计

矩阵键盘及其电路设计
矩阵键盘是一种常见的输入设备,常用于计算机、电视机、手机等电
子产品中。

它由多个按键组成,每个按键都与一个矩阵电路相连。

矩阵键
盘的设计简单、成本低廉,因此在许多场景中广泛应用。

矩阵键盘的电路设计可以分为两个主要方面:行扫描电路和列扫描电路。

行扫描电路负责控制行通道。

它由多个行扫描引脚组成,每一个引脚
都与一个行通道相连。

通常情况下,行扫描电路会以一定的频率依次将每
一个引脚置高电平,然后检测列通道是否有相应的信号。

如果检测到信号,就说明用户按下了对应的按键。

通过依次扫描所有的行通道,可以获取用
户整个键盘的按键状态。

列扫描电路负责控制列通道。

它由多个列扫描引脚组成,每一个引脚
都与一个列通道相连。

当行扫描电路扫描到其中一行时,列扫描电路会检
测到该行通道与列通道之间的电位差。

如果电位差存在,则说明用户按下
了该行和列交叉点处的按键。

在实际的电路设计中,还可以使用连接电阻和电容的方式来降低电路
的噪声。

通过在矩阵键盘中添加适当的抗干扰电路,可以有效减少外界干
扰对键盘输入的影响。

总结起来,矩阵键盘的电路设计主要包括行扫描电路和列扫描电路。

通过行列通道的扫描和检测,可以判断用户所按下的按键。

在实际的设计中,还可以添加抗干扰电路来提高键盘的输入稳定性。

矩阵键盘的设计简
单且成本低廉,因此被广泛应用于各种电子产品中。

基于VHDL的矩阵键盘及显示电路设计

基于VHDL的矩阵键盘及显示电路设计

基于VHDL的矩阵键盘及显示电路设计摘要:为了有效防止机械式键盘按键抖动带来的数据错误,这里在Quartus ?开发环境下,采用VHDL 语言设计了一种能够将机械式4 ×4 矩阵键盘的按键值依次显示到8 个7 段数码管上的矩阵键盘及显示电路。

仿真结果表明,所设计的矩阵键盘及显示电路成功地实现了按键防抖和按键数据的准确显示。

以ACEX1K系列EP1K30QC208 芯片为硬件环境,验证了各项设计功能的正确性。

FPGA/ CPLD 在数字系统设计中的广泛应用,影响到了生产生活的各个方面。

在FPGA/ CPLD 的设计开发中,V HDL 语言作为一种主流的硬件描述语言,具有设计效率高, 可靠性好, 易读易懂等诸多优点。

作为一种功能强大的FPGA/ CPLD 数字系统开发环境,Altera 公司推出的Quart us ?,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程,为使用V HDL 语言进行FPGA/ CPLD 设计提供了极大的便利。

矩阵键盘作为一种常用的数据输入设备,在各种电子设备上有着广泛的应用,通过7 段数码管将按键数值进行显示也是一种常用的数据显示方式。

在设计机械式矩阵键盘控制电路时,按键防抖和按键数据的译码显示是两个重要方面。

本文在Quart us ?开发环境下,采用V HDL语言设计了一种按键防抖并能连续记录并显示8 次按键数值的矩阵键盘及显示电路。

1 矩阵键盘及显示电路设计思路矩阵键盘及显示电路能够将机械式4 ×4矩阵键盘的按键值依次显示到8 个7段数码管上,每次新的按键值显示在最右端的第0 号数码管上,原有第0,6号数码管显示的数值整体左移到第1,7号数码管上显示,见图1 。

总体而言,矩阵键盘及显示电路的设计可分为4 个部分:(1) 矩阵键盘的行及列的扫描控制和译码。

该设计所使用的键盘是通过将列扫描信号作为输入信号,控制行扫描信号输出,然后根据行及列的扫描结果进行译码。

一种矩阵键盘的电路控制模块的制作方法

一种矩阵键盘的电路控制模块的制作方法

一种矩阵键盘的电路控制模块的制作方法
矩阵键盘的电路控制模块是一种常用的输入设备,可用于电子产品中,如计算机、手机和家电等。

本文将介绍一种制作矩阵键盘的电路控制模块的方法。

制作矩阵键盘的电路控制模块需要以下材料和工具:矩阵键盘、电路板、导线、焊锡、焊接工具和测试仪器。

首先,将矩阵键盘的引脚与电路板上的连接点对应起来。

矩阵键盘通常有多行
多列的引脚,根据键盘规格和需要的按键数量,确定连接方式。

接下来,使用导线将键盘的引脚与电路板上的连接点焊接在一起。

确保焊接牢固且接触良好。

然后,根据需要的按键数量,确定矩阵键盘的排列方式。

将键盘按键的行列进
行编码,并在电路板上绘制相应的电路连接。

使用导线将键盘按键与电路板上的相应行列连接点焊接在一起。

确保每个按键的连接都正确无误。

接着,进行焊接和连接点的检查。

检查焊接是否牢固,连接是否正确。

可以使
用测试仪器来检测按键和电路的连通性。

确保每个按键在按下时都能正确地触发相应的行列连接点。

最后,进行电路模块的调试和封装。

连接模块到相应的电子产品,测试按键是
否正常工作。

对于需要外部接口的电子产品,可以设计相应的信号转换电路,以适配键盘和电子产品的接口。

最终,将模块进行固定封装,以保护电路和提高外观。

上述是一种矩阵键盘的电路控制模块制作方法。

通过对键盘引脚的连接、焊接
和排列,以及对电路的调试和封装,可以制作出功能稳定、可靠性高的矩阵键盘电路控制模块。

这一模块在各种电子产品中得到广泛应用,并为用户提供更加便捷的输入方式。

矩阵键盘电路

矩阵键盘电路
矩阵键盘电路
知识点目录
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、5x5等不同规格,其中每个按键都通过行线和列线连接到单片机上。

二、行列式编码原理行列式编码是一种基于矩阵的按键编码方式,它通过将按键矩阵中的行线和列线进行编码,实现对按键的识别和操作。

具体来说,我们将按键矩阵中的行线和列线分别连接到单片机的I/O口上,并使用单片机的软件对I/O口的状态进行检测,从而识别出按键的位置和状态。

在行列式编码中,我们通常将行线划分为上、下两行,并将列线划分为左、右两列。

这样,当一个按键被按下时,其所在的行线和列线将同时发生变化。

通过检测行线和列线的状态变化,我们可以确定按键的位置和状态。

三、编码实现方法在实现单片机矩阵键盘编码时,我们需要编写相应的软件程序,对行线和列线的状态进行检测和判断。

通常,我们使用单片机的中断系统来实现按键的实时检测和响应。

具体来说,我们可以在单片机的I/O口上设置相应的中断请求,并在中断服务程序中对行线和列线的状态进行检测和判断。

当一个按键被按下时,其所在的行线和列线将同时发生变化。

我们可以通过比较当前状态和上一次状态的不同来确定按键的位置和状态。

如果某一行或某一列的状态发生变化,则说明有按键被按下。

我们可以通过判断该行或该列的状态变化来确定是哪个按键被按下。

四、总结单片机矩阵键盘编码是一种常用的输入设备接口技术,通过将按键矩阵与单片机相连,实现对按键的识别和操作。

在单片机矩阵键盘编码中,常用的编码方式有行列式编码和扫描式编码等。

本文介绍了一种基于行列式编码的单片机矩阵键盘编码方法,通过将按键矩阵中的行线和列线进行编码,实现对按键的识别和操作。

基于VHDL的矩阵键盘及显示电路设计

基于VHDL的矩阵键盘及显示电路设计

基于VHDL的矩阵键盘及显示电路设计FPGA/CPLD 在数字系统设计中的广泛应用,影响到了生产生活的各个方面。

在FPGA/CPLD 的设计开发中,VHDL 语言作为一种主流的硬件描述语言,具有设计效率高,可靠性好,易读易懂等诸多优点。

作为一种功能强大的FPGA/CPLD 数字系统开发环境,Altera 公司推出的Quar-tUSⅡ,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程,为使用VHDL 语言进行FPGA/-CPLD 设计提供了极大的便利。

矩阵键盘作为一种常用的数据输入设备,在各种电子设备上有着广泛的应用,通过7 段数码管将按键数值进行显示也是一种常用的数据显示方式。

在设计机械式矩阵键盘控制电路时,按键防抖和按键数据的译码显示是两个重要方面。

本文在QuartusⅡ开发环境下,采用VHDL 语言设计了一种按键防抖并能连续记录并显示8 次按键数值的矩阵键盘及显示电路。

1 矩阵键盘及显示电路设计思路矩阵键盘及显示电路能够将机械式4 乘以4 矩阵键盘的按键值依次显示到8 个7 段数码管上,每次新的按键值显示在最右端的第O 号数码管上,原有第0~6 号数码管显示的数值整体左移到第1~7 号数码管上显示,见图1。

总体而言,矩阵键盘及显示电路的设计可分为4 个部分:(1)矩阵键盘的行及列的扫描控制和译码。

该设计所使用的键盘是通过将列扫描信号作为输入信号,控制行扫描信号输出,然后根据行及列的扫描结果进行译码。

(2)机械式按键的防抖设计。

由于机械式按键在按下和弹起的过程中均有5~10 ms 的信号抖动时间,在信号抖动时间内无法有效判断按键值,因此按键的防抖设计是非常关键的,也是该设计的一个重点。

(3)按键数值的移位寄存。

由于该设计需要在8 个数码管上依次显示前后共8 次按键的数值,因此对已有数据的存储和调用也是该设计的重点所在。

(4)数码管的扫描和译码显示。

由于该设计使用。

单片机矩阵按键实训报告

单片机矩阵按键实训报告

一、实训目的1. 理解矩阵键盘的工作原理和电路设计。

2. 掌握矩阵键盘的编程方法,实现按键的检测和响应。

3. 培养实际动手能力和团队协作能力。

二、实训内容1. 矩阵键盘电路设计2. 矩阵键盘编程3. 矩阵键盘应用实例三、实训环境1. 单片机开发板:51单片机开发板2. 矩阵键盘:4x4矩阵键盘3. 编程软件:Keil uVision54. 仿真软件:Proteus四、实训过程1. 矩阵键盘电路设计矩阵键盘由行线和列线组成,通过行列交叉连接的按键阵列实现按键功能。

在4x4矩阵键盘设计中,共有4条行线和4条列线,共16个按键。

电路设计如下:(1)行线连接:将单片机的P1.0至P1.3端口作为行线输出,用于控制行线电平。

(2)列线连接:将单片机的P2.0至P2.3端口作为列线输入,用于检测按键状态。

(3)按键连接:将16个按键分别连接到行线和列线交叉处。

2. 矩阵键盘编程(1)初始化:设置P1端口为输出模式,P2端口为输入模式。

(2)按键检测:通过逐行扫描的方式检测按键状态。

首先将P1端口的所有行线设置为低电平,然后逐行检查P2端口列线的状态,如果某列线为低电平,则表示该行对应列的按键被按下。

(3)消抖处理:为了避免按键抖动引起的误读,需要进行消抖处理。

通常采用软件消抖方法,即在检测到按键按下后,延时一段时间(如10ms)再次检测按键状态,如果按键仍然被按下,则确认按键操作有效。

(4)按键处理:根据检测到的按键,执行相应的操作。

例如,当按键按下时,在LCD1602显示屏上显示对应的按键值。

3. 矩阵键盘应用实例以LCD1602显示屏为例,实现按键与显示内容的关联。

(1)LCD1602显示屏初始化:设置LCD1602的显示模式、光标位置等。

(2)按键扫描:按照上述方法检测按键状态。

(3)按键处理:根据按键值,在LCD1602显示屏上显示对应的字符。

五、实训结果1. 成功设计并实现了4x4矩阵键盘电路。

2. 编写了矩阵键盘的检测和响应程序,实现了按键的检测和消抖处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键(9键)。
3、矩阵式键盘的按键识别方法
• 逐行扫描法是一种逐行或逐列判断是否有键按下的方法。扫描法又称为逐行或列扫 描查询法,是一种最常用的按键识别方法。利用行扫描法判断矩阵键盘中被按下的 键时主要经过以下步骤。
• 第一步、识别有无键按下 • 让所有的行线均置为0电平,即P1.4-P1.7均输出低电平,读取列线P1.0-P1.3的值,
若P1.0-P1.3均为高电平,则表示无键按下,若不全为高电平,则表示有键按下 • 第二步、若有键被按下,识别出具体的按键 • 方法是采用逐行扫描的办法,即逐行置零电平,检查各列线的电平。如首先置第一
行为0,其余行为1,也就是让P1.4-P1.7输出0111,读取列线P1.0-P1.3的值,若不 全为1,则根据读取的列值即可判断出按键在第一行第几列上,从而识别出按键的 位置,若全为1,表示第一行无键按下,那么就再置第二行为0,其余行为1,即 P1.4-P1.7输出1011,再读取列值,根据列值结果,判断第二行上有无键被按下, 依此类推,识别出按键的键值。
1、独立式键盘及其接口
• 独立式键盘,是一种最简单的键盘构成 方法,它将每个按键的一端接到单片机 的I/O口,另一端接地,如图所示。
• 主要特点是各个键相互独立,每一个按 键对应一根输入口线。键盘软件结构简 单,但当键盘数目较多时,需占用大量 的输入口线,所以在使用上受到了很大 的限制。
2、矩阵式键盘及其接口
键盘及其电路设计
一、键盘的基本概念
• 键盘是一组开关的集合,是最常用的输入设备之一。组成键盘的按键 有触点式和非触点式两种。
• 触点式按键通常是机械触点开关,它利用了机械触点的通、断特性来 完成信息的输入。
• 非触点式按钮主要指利用电子器件的通、断来完成信息的输入,如工 作在开关状态的三极管等。
• 在单片机控制系统中常用触点式开关来组成键盘。
• 键 排列成矩阵形式。
• 在矩阵式键盘中,每条水平线和 垂直线在交叉处不直接连通,而 是通过一个按键加以连接,如图 所示。这样,一个端口(如P1口) 就可以构成4*4=16个按键,比独 立式键盘多出了一倍,而且线数 越多,区别越明显,如再多加一 条线就可以构成20键的键盘,而 直接用端口线则只能多出一个
三、键盘使用时需注意的问题
• 按键开关的抖动问题 • 由于按键的结构为机械弹性开关,因此按键从最初按下到接
触稳定需数毫秒的弹跳时间,这样的抖动时间一般在5~10ms, 松开键时也有同样 • 键盘消抖动的方法有两种。 • 硬件消抖动:利用双稳态电路、单稳态电路及RC积分电路去 抖。 • 软件消抖动:利用延时子程序来完成,既在第一次检测到按 下按键后经过一定抖动时间后再次检测按键是否按下,从而 消除抖动的影响。的问题。
二、键盘的结构方式
• 键盘有两种基本类型编码键盘和非编码键盘。 • 编码键盘采用硬件线路来产生键码,每按下一个键,键盘能自动生成
按键代码。 • 非编码键盘是靠编程来识别键盘上的闭合键,并由编程来确定按键代
码。非编码键盘具有结构简单、价格便宜等特点因此在单片机系统中 普遍采用非编码键盘。 • 编码键盘按结构方式划分有独立式键盘和矩阵式键盘两大类。
相关文档
最新文档