单片机键盘原理和实现

单片机键盘原理和实现
单片机键盘原理和实现

\\\§8.3 键盘接口技术

一、键盘输入应解决的问题

键盘是一组按键的集合,它是最常用的单片机输入设备.

操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。

键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。

键盘分编码键盘和非编码键盘。

键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘,

如:ASCⅡ码键盘、BCD码键盘等;

靠软件识别的称为非编码键盘。

在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。

本节着重讨论非编码键盘的原理、接口技术和程序设计。

键盘中每个按键都是—个常开关电路,如图所示。

1.按键的确认:P1.7=1 无按键;

P1.7=0 有按键;

2.去抖动

去抖动的方法:

①硬件去抖动采用RS触发器:

优点: 速度快,实时,

缺点: 增加了硬件成本

②软件去抖动采用延时方法

延时5—10ms 延时5—10ms P1.7=0 确认P1.7=0 P1.7=1 (去前沿抖动) (去后沿抖动)

二、独立式键盘

每个I/O口连接一个按,S1 P1.0

S2 P1.1

……………………….

S8 P1.7

软件:

START:MOV P1,#0FFH ;置P1口为高电平

JNB P1.0, RS1 ; S1按下,程序去执行RS1

JNB P1.1, RS2 ; S2按下,程序去执行RS2

JNB P1.2, RS3 ; S3按下,程序去执行RS3

JNB P1.3, RS4 ; S4按下,程序去执行RS4

JNB P1.4, RS5 ; S5按下,程序去执行RS5

JNB P1.5, RS6 ; S6按下,程序去执行RS6

JNB P1.6, RS7 ; S7按下,程序去执行RS7

JNB P1.7, RS8 ; S8按下,程序去执行RS8

AJMP START ; 继续扫描按键

………….

RS1: AJMP PK1 ;

RS2: AJMP PK2 ;

RS3: AJMP PK3 ;

RS4: AJMP PK4 ;

RS5: AJMP PK5 ;

RS6: AJMP PK6 ;

RS7: AJMP PK7 ;

RS8: AJMP PK8 ;

AJMP START ; 无键按下,继续扫描…………………

PK1: ……….. ;按键S1功能处理程序

AJMP START ;处理S1按键后, 继续扫描PK2: ……….. ;按键S2功能处理程序

AJMP START

………………….

PK8: ………………;按键S8功能处理程序

AJMP START ; 处理S8按键后, 继续扫描优点: 连线简单,程序容易.

缺点: 太浪费资源

适用于按键较少、I/O口空闲的场合。

三、行列式非编码键盘接口方法

按键较多时,一般采用行列式键盘.

采用扫描方式,软件扫描方式有三种:

程序扫描方式: 当CPU空闲时,扫描键盘,判断有无键按下.

定时扫描方式: 利用CPU的定时器,每隔一定时间扫描一次键盘.

中断扫描方式: 在硬件上采用中断,有键按下时,产生中断,

由中断服务程序来处理.

下面是16个按键,构成的4×4键盘

行线: 四根,接P1.0---P1.3

列线: 四根,接P1.4---P1.7

程序扫描法原理:

①P1.0---P1.3输出低电平,读P1.4—P1.7,

若全为1,无键按下

若不全为1,有键按下

②在有键按下的情况下,进一步判断是那个键按下

使P1.0---P1.3依次输出低电平,读P1.4----P1.7

判断有无键按下子程序, 程序名: KAP键盘查询子程序

KAP: MOV P1,#0F0H ;行线输出低电平,列线输出高电平

MOV A,P1 ;P1口读入A

CPL A ;取反

ANL A,#0F0H ;取高四位,即P1.4---P1.7

RET

程序出口: A=0, 则无键按下.

A≠0 则有键按下.

去抖动-----------延时10ms子程序: 程序名D10MS

D10MS: MOV R6, #14H;

DL: MOV R7,#0FFH;

DJNZ R7,$

DJNZ R6,DL

RET

KINP: LCALL KAP ; 调键盘查询子程序,

JNZ KP1 ; A≠0,有键按下

SJMP END_KINP ; A=0,无键按下,退出按键查询程序

KP1: LCALL D10MS ;延时10MS,去抖动

LCALL KAP ;再次查询键盘,

JNZ KP2 ; A≠0,确认有键按下

SJMP END_KINP ; A=0,误操作,重新查询

KP2为取键值子程序

KP2: MOV R2, #0FEH ; R2为行扫描值

MOV R4, #00H ; R4初值为第0行行首键号

CLR F0 ; F0=0表示正在扫描键盘

KP4: MOV P1, R2 ; 扫描行为低

MOV A, P1 ;读P1

JB ACC.4, L1 ;第0列不为低,则检查第1列

MOV A, #00H ; 为低,则行首键值送入A

AJMP KP5 ; KP5

L1: JB ACC.5, L2 ; 检查第一列

MOV A, #04H ;第一列行首键值送入A

AJMP KP5

L2: JB ACC.6 , L3 ; 检查第二列

MOV A, #08H ;第二列行首键值送入A

AJMP KP5

L3: JB ACC.7 , NEXT ;检查第三列,若为1,则检查下一行

MOV A, #0CH ; 第三列行首键值送入A

KP5: ADD A , R4 ; A A+R4,键值调整PUSH A ;

KP3: LCALL D10MS ; 后沿去抖动

LCALL KAP ;查询按键是否释放

JNZ KP3 ; A≠0 未释放,继续查询

POP A ;键已释放,弹出键值

RET

NEXT: INC R4 ; 下一列,行键值加1 MOV A , R2 ; 取扫描值

JNB ACC.3, END_KINP ; 判断扫描是否结束?

RL A ; 下一个扫描值

MOV R2, A ;

AJMP KP4 ;

END_KINP: SETB F0

RET

键盘输入原理

基础知识 1. 键盘的基本原理 键盘是一组按键的组合,它是最常用的输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机对话。 键盘是一种常开型的开关,通常键的两个触点处于断开状态,按下键时它们才闭合。键盘的识别有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。目前有很多芯片可以用来实现键盘扫描,如有Intel8279、CH451、ICM7218、PCF8574等。但是键盘扫描的软件实现方法有助于缩减系统的重复开发成本,且只需要很少的CPU 开销。嵌入式控制器的功能很强,可以充分利用这一资源,这里就介绍一下用软件实现键盘扫描的方案。 键盘从结构上分为独立式键盘与矩阵式键盘。一般按键较少时采用独立式键盘,按键较多时采用矩阵式键盘。 (1)独立式键盘。在由单片机组成的测控系统及智能化仪器中,用的最多的是独立式键盘。这种键盘具有硬件与软件相对简单的 特点,其缺点是按键数量较多时,要占用大量口线。当按键没 按下时,CPU对应的I/O接口由于内部有上拉电阻,其输入为

高电平;当某键被按下后,对应的I/O接口变为低电平。只要 在程序中判断I/O接口的状态,即可知道哪个键处于闭合状态。 (2) 矩阵式键盘。矩阵式键盘使用于按键数量较多的场合,它由行线与列线组成,按键位于行、列的交叉点上。一个3*3的行列结构可以构成一个有9个按键的键盘。同理,一个4*4的行列可以构成一个16按键的键盘。很明显,在按键数量较多的场合,与独立式键盘相比,矩阵式键盘要节省很多I/0接口。

2、键盘按键识别方法 (1)扫描法。扫描法有行扫描和列扫描两种,无论采用哪种,其效果是一样的,只是在程序中的处理方法有所区别。下面以行扫描法为例来介绍扫描法识别按键的方法。先向键盘4根行线输出其中某一行为低电平,其它行为高电平,然后读取列值,若某一列值为低电平,则表明同时为低电平的行和列的交叉处按键被按下,如果没有某列为低电平,则继续扫描下一行。因为输入低电平的行是从第一行开始逐行遍历的,故称为行扫描法。行与列是相对的,可以将行按列对待,同时将列按行对待,所实现的扫描法效果是一样的。

基于51单片机的USB键盘设计与实现

三江学院 本科生毕业设计(论文)题目基于51单片机的USB键盘设计与实现高职院院(系)电气工程及其自动化专业 学生姓名梁邱一学号 G105071013 指导教师孙传峰职称讲师 指导教师工作单位三江学院 起讫日期 2013年12月10日至2014年4月12日

摘要 随着计算机技术的不断更新和多媒体技术的快速发展,传统的计算机外设接口因为存在许多缺点已经不能适应计算机的发展需要。比起传统的AT,PS/2,串口,通用串行总线USB,具有速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。 本论文阐述了51系列单片机和USB的相关内容,详细介绍了系统的一些功能设计,包括硬件设计和软件设计。在程序调试期间用简单的串口通信电路,通过串口调试助手掌握了USB指令的传输过程,这对整个方案的设计起到了很大的指导作用。论文以单片机最小系统配合模拟键盘组成的USB键盘硬件系统,通过对D12芯片的学习与探索,在其基本命令接口的支持下,结合硬件进行相应的固件程序设计,使其在USB协议下,实现USB模块与PC的数据通信,完成USB键盘的功能模拟。 总结论文研究工作有阐述USB总线的原理、对本设计的系统要求作出了分析、根据要求选定元件和具体编程方案、针对系统所要实现的功能对相关芯片作了详细介绍以及在硬件部分设计了原理图。 关键词:USB;D12;PC

Abstract With the rapid development of computer technology and multimedia technology constantly updated, traditional computer peripheral interface because there are many shortcomings have been unable to meet the development needs of the https://www.360docs.net/doc/cc13682548.html,pared to traditional AT, PS / 2, serial, Universal Serial Bus USB, with fast, flexible and easy to use, easy to expand, support Plug and Play, a series of advantages, such as low cost, has been widely used. This paper describes the 51 series and USB related content, detailing some of the features of the system design, including hardware and software design.During debugging a simple serial communication circuit, through the serial port debugging assistant master USB transfer instructions, which designed the entire program has played a significant role in guiding.Thesis smallest single-chip system consisting of analog keyboard with a USB keyboard hardware system, by learning and exploration D12 chips, with the support of its basic command interface, in conjunction with the corresponding hardware firmware design, making it in the USB protocol, USB module data communication with the PC, the USB keyboard to complete the functional simulation. This paper summarizes research work has elaborated the principle of the USB bus, the system is designed to require the analysis, components and solutions based on the specific requirements of the selected programming for the system to achieve the function of the relevant chips are described in detail in the hardware part of the design as well as the principle of Figure. Keywords:USB;D12;PC

单片机矩阵式键盘连接方法及工作原理

矩阵式键盘的连接方法和工作原理 什么是矩阵式键盘?当键盘中按键数量较多时,为了减少I/O 口线的占用,通常将按键排列成矩 阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样做有什么好处呢?大家看下面的电路图,一个并行口可以构成4*4=16 个按键,比之直 接将端口线用于键盘多出了一倍,而且线数越多,区别就越明显。比如再多加一条线就可以构成20 键 的键盘,而直接用端口线则只能多出一个键(9 键)。由此可见,在需要的按键数量比较多时,采用矩 阵法来连接键盘是非常合理的。 矩阵式结构的键盘显然比独立式键盘复杂一些,识别也要复杂一些,在上图中,列线通过电阻接 电源,并将行线所接的单片机4 个I/O 口作为输出端,而列线所接的I/O 口则作为输入端。这样,当按 键没有被按下时,所有的输出端都是高电平,代表无键按下,行线输出是低电平;一旦有键按下,则输 入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了,具体的识别及编程方法如下 所述: 二.矩阵式键盘的按键识别方法 确定矩阵式键盘上任何一个键被按下通常采用“行扫描法”或者“行反转法”。行扫描法又称为 逐行(或列)扫描查询法,它是一种最常用的多按键识别方法。因此我们就以“行扫描法”为例介绍矩 阵式键盘的工作原理: 1.判断键盘中有无键按下 将全部行线X0-X3 置低电平,然后检测列线的状态,只要有一列的电平为低,则表示键盘中有键 被按下,而且闭合的键位于低电平线与4 根行线相交叉的4 个按键之中;若所有列线均为高电平,则表 示键盘中无键按下。 2.判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平(即在 置某根行线为低电平时,其它线为高电平),当确定某根行线为低电平后,再逐行检测各列线的电平状 态,若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 下面给出一个具体的例子: 单片机的P1 口用作键盘I/O 口,键盘的列线接到P1 口的低4 位,键盘的行线接到P1 口的高4

矩阵键盘的工作原理和扫描确认方式

9.3.1 矩阵键盘的工作原理和扫描确认方式 来源:《AVR单片机嵌入式系统原理与应用实践》M16华东师范大学电子系马潮 当键盘中按键数量较多时,为了减少对I/O 口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。矩阵式键盘接口见图9-7 所示,它由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU 通过检测行或列线上的电平变化可以确定哪个按键被按下。 图9-7 为一个 4 x 3 的行列结构,可以构成12 个键的键盘。如果使用 4 x 4 的行列结构,就能组成一个16 键的键盘。很明显,在按键数量多的场合,矩阵键盘与独立式按键键盘相比可以节省很多的I/O 口线。 矩阵键盘不仅在连接上比单独式按键复杂,它的按键识别方法也比单独式按键复杂。在矩阵键盘的软件接口程序中,常使用的按键识别方法有行扫描法和线反转法。这两种方法的基本思路是采用循环查循的方法,反复查询按键的状态,因此会大量占用MCU 的时间,所以较好的方式也是采用状态机的方法来设计,尽量减少键盘查询过程对MCU 的占用时间。 下面以图9-7 为例,介绍采用行扫描法对矩阵键盘进行判别的思路。图9-7 中,PD0、PD1、PD2 为3 根列线,作为键盘的输入口(工作于输入方式)。PD3、PD4、PD5、PD6 为4根行线,工作于输出方式,由MCU(扫描)控制其输出的电平值。行扫描法也称为逐行扫描查询法,其按键识别的过程如下。 √将全部行线PD3-PD6 置低电平输出,然后读PD0-PD2 三根输入列线中有无低电平出现。只要有低电平出现,则说明有键按下(实际编程时,还要考虑按键的消抖)。如读到的都是高电平,则表示无键按下。 √在确认有键按下后,需要进入确定具体哪一个键闭合的过程。其思路是:依

基于单片机的键盘和LED数码管工作原理

基于单片机的键盘和LED数码管工作原理 摘要:键盘和显示器是微机最常见的输入输出设备。本文介绍键盘和LED显示器的基本工作原理,并给出在8051基础上的电路结构及C语言代码。 关键字:键盘,LED,单片机 键盘是微型计算机系统中最基本、最常见的输入设备。在各种工业过程的计算机控制和监视系统中,广泛应用发光二极管向用户提供提示。由发光二极管可以构成7段/8段LED显示器,用于显示工作状态、参数数值和故障位置。一.键盘的工作原理 键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。 (一)键盘的基本介绍 1.键盘的功能 键盘接口必须具有4个基本功能: 1.去抖动 2.防串键 3.识别被按键并产生与之对应的键码 4.释放键 而键码产生后如何去实现按键的特定功能,是操作系统和应用程序的任务2.键盘的分类 根据按键开关的排列方式,键盘可分为线性键盘和矩阵键盘。 线性键盘:硬件连接和接口程序都很简单,只适用于按键少的场合,因为线性键盘有多少按键,就需要有多少根连线与微机输入端口相连。 矩阵键盘:将按键排成n行m列,每个按键占据行列的一个交点,需要的外连接线数目是m+n,而容许的最大按键数是m*n,显然可以减少微机接口的连线,是一般微机常采用的键盘结构。 3.键盘与单片机的连接方式 矩阵键盘的连接方法有多种。可直接连接于单片机的I/O口线;可利用扩展的并行I/O口连接;也可利用可编程的键盘、显示接口芯片(如8297)进行连接等等。其中,利用扩展的并行I/O口连接方便灵活,在单片机应用系统中比较常用。下图就是通过8255A芯片扩展的并行I/O口连接的矩阵键盘。

鼠标工作原理以及流程(版权所有)

2.4 GHz无线鼠标键盘接收器的设计 ?随着无线通信技术的不断发展,近距离无线通信领域出现了蓝牙、RFID、WIFI等技术。 这些技术不断应用在嵌入式设备及PC外设中。2.4 GHz无线鼠标键盘使用24~2.483 5 GHz无线频段,该频段在全球大多数国家属于免授权使用,这为无线产品的普及扫清了最大障碍。用户可迅速地进入与世界同步的无线设计领域,最大限度地缩短设计和生产时间,并且具有完美性能,能够替代蓝牙技术。 1 系统硬件结构 ?2.4 GHz无线鼠标键盘接收器主要实现鼠标、键盘等HID类设备在PC机上的枚举识别过程和接收无线鼠标或键盘发送的数据(包括按键值、鼠标的上下左右移动等),并将接收到的数据通过USB接口传送给PC机,实现鼠标键盘的无线控制功能。接收器主要由USB接口部分、MCU和无线接收部分组成。系统硬件框图如图l所示。 1. 1 USB接口部分 系统采用H OLT EK公司生产的8位USB多媒体键盘编码器HT82K95E作为系统核心。鼠标、键盘等HID类设备为低速设备,所以接收器要能同时实现鼠标和键盘数据同PC机的双向传输。MCU首先必须具有低速的USB接口,并且最少支持3个端点(包括端点O)。综合考虑选用了 HT82K95E作为本系统的主控芯片。 本系统的USB接口部分电路图如图2所示,其中电阻R100、R101、R102、R103、R104和电容C102、C114和C115用于EMC。由于鼠标和键盘设备属于从设备,所以应在USB-信号线上加1.5 k?的上拉电阻。

1.2 MCU部分 MCU的复位电路采用由R108和C105组成的RC积分电路实现上电复位功能。上电瞬间,由于电容电压不能突变,所以复位引脚为低电平,然后电容开始缓慢充电,复位引脚电位开始升高,最后变为高电平,完成芯片的上电复位。HT82K95E微控制器内部还包含一个低电压复位电路(LVR),用于监视设备的供电电压。如果设备的供电电压下降到0.9 V~VLVR的范围内并且超过1 ms的时间,那么LVR就会自动复位设备。 应当注意的是对于该设备的复位电路,还应加1个二极管1N4148,接法如图2中的VD100。如果不加此二极管,设备在第一次使用时能够正常复位,但在以后的使用却无法正常复位,原因是电容中的电荷无法释放掉,而该二极管可以通过整个电路快速释放掉电容中的电荷。 由于n RF24L01的数据包处理模式支持与单片机低速通信而无线部分高速通信,并且nRF24L01内部有3个不同的RX FIFO寄存器和3个不同的TX FIFO寄存器,在掉电模式下、待机模式下和数据传输的过程中MCU可以随时访问FIFO寄存器。这就允许SPI接口低速传送数据,并且可以应用于MCU 硬件上没有SPI接口的情况下。因此在设计中使用HT82K95E 的PA口模拟SPI总线与nRF42L01的SPI接口通信。

第13讲51单片机按键电路

标题:键盘接口电路 教学目标与要求: 1.键盘去抖动和连接、控制方式 2.独立式按键及其接口电路 3.矩阵式键盘及其接口电路 授课时数:2 教学重点:.矩阵式键盘及其接口电路 教学内容及过程: 一、键盘接口概述 1、按键开关去抖动问题 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-11所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms 在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图9-12是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。 软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步 骤进行确认,从而可消除抖动的影响。

2.编制键盘程序 一个完善的键盘控制程序应具备以下功能: (1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。 (2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求。 二、独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图7.4所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。 2.矩阵式键盘 I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点: ①占用I/O端线较少; ②软件结构教复杂。 适用于按键较多的场合。 3.键盘扫描控制方式 ⑴程序控制扫描方式 键处理程序固定在主程序的某个程序段。 特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。 ⑵定时控制扫描方式 利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。 特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。 ⑶中断控制方式 中断控制方式是利用外部中断源,响应键输入信号。 特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。 三、独立式按键及其接口电路 1、按键直接与I/O口连接

键盘工作原理

键盘工作原理 一、PS/2键盘 PS/2键盘是遵循IBM PS/2键盘协议,通过PS/2的接口与主机相连。PS/2接口共有4条信号线。如下所示: 5-Pin DIN Connector 6-Pin Mini DIN Connector 如上图所示,PS/2接口四条信号线分别为“电源,地线,数据,时钟”。键盘通电后,所有数据都是通过“时钟/数据”两条信号线与主机进行沟通的。键盘与主机之间的沟通每次传送的数据为11位:1个起始位/8个数据位/1个校验位/1个停止位。键盘上每个按键都会进行编码称之为扫描码(Scan Code),每个键都有按下去的码称为通码(Make Code)与弹起来的码称为断码(Break Code)。扫描码又分为两种Code Set 1(简称为CS1)与Code Set2(简称为CS2)。这两种编码方式不同,CS1中“断码=通码+80(十六进制)”;CS2中“断码=F0 + 通码”。举例来说,如字母“A”,CS1码为通码=1E、断码= 9E;CS2码为通码=1C、断码=F0 1C。键盘是按CS2的方式将码传送至电脑主板的上键盘控制口8042,8042再将码转换成CS1的方式再传给操作系统。操作系统收到码后再转换成其相应的功能。

二、USB键盘 USB键盘是随着USB协议的推出而设计出来的。其通讯方式是遵循USB1.1与HID 1.1规范的。HID中文称之为人机接口设备,HID的规范主要定义了如键盘、鼠标、游戏杆等由人直接控制跟电脑相连的一些输入输出设备。 USB键盘的原理较为复杂,这里只能做简单介绍: 1、信号线:分为四条,按顺序依次为“VCC(红色)、DATA-(白色)、DATA+ (绿色)、GND(黑色)。 2、编码:USB编码跟PS/2不同,相对PS/2来讲要复杂。USB键盘编码是根据 功能不同而分成了不同的“Usage Page”,每个Page里再对各个按键进行编码。普通的按键如A、B、C….等Page为07,电源控制部分为01,多媒体控制部分为0C。 3、工作原理:USB键盘是通过主板上USB控制器上的USB接口进行沟通的。 在通电后,主机会侦测其USB接口上是否连有设备,如果有的话,会送出控制数据包到设备。设备厂收到后,会回应相关的数据包到主机。主机再解析收到的数据包,再判断此设备是哪类设备。如果是键盘的话,主机会再送键盘相应的数据包过来,键盘再回应过去,双方沟通完毕后,键盘就能正常使用了。在尚未进入Windows操作系统之前,是由BIOS控制键盘工作的,只做一些简单的沟通双方就能工作,但一些复杂的功能也不能使用,如电源与多媒体控制等功能是没法在DOS下使用的。在进入Windows操作系统后,操作系统会重新初始化键盘,会对键盘所有的数据进行解析。如用户按下字母“A”,键盘会送出含有字母“A”编码的数据包送给系统。系统收到后会解析此数据包,从中寻找其对应的Usage Page 07,再在07中寻找其对应的编码,然后再翻译成相应的功能再在屏幕上显示字母“A”等。

4×4矩阵键盘原理及其在单片机中的简单应用(基Proteus仿真)

4×4矩阵键盘原理及其在单片机中的简单应用 基于Proteus仿真 1、4×4矩阵键盘的工作原理 如下图所示,4×4矩阵键盘由4条行线和4条列线组成,行线接P3.0-P3.3,列线接P3.4-P3.7,按键位于每条行线和列线的交叉点上。

按键的识别可采用行扫描法和线反转法,这里采用简单的线反转法,只需三步。 第一步,执行程序使X0~X3均为低电平,此时读取各列线Y0~Y3的状态即可知道是否有键按下。当无键按下时,各行线与各列线相互断开,各列线仍保持为高电平;当有键按下时,则相应的行线与列线通过该按键相连,该列线就变为低电平,此时读取Y0Y1Y2Y3的状态,得到列码。 第二步,执行程序使Y0~Y3均为低电平,当有键按下时,X0~X3中有一条行线为低电平,其余行线为高电平,读取X0X1X2X3的状态,得到行码。 第三步,将第一步得到的列码和第二步得到的行码拼合成被按键的位置码,即Y0Y1Y2Y3X0X1X2X3(因为行线和列线各有一条为低电平,其余为高电平,所以位置码低四位和高四位分别只有一位低电平,其余为高电平)。 也就是说,当某个键按下时,该键两端所对应的行线和列线为低电平,其余行线和列线为高电平。比如,当0键按下时,行线X0和列线Y0为低电平,其余行列线为高电平,于是可以得到0键的位置码Y0Y1Y2Y3X0X1X2X3为01110111,即0X77。当5键按下时,行线X1和列线Y1为低电平,其余行列线为高电平,于是可得到5键的位置码Y0Y1Y2Y3X0X1X2X3为10111011,即0XBB。全部矩阵键盘的位置码如下: 2、4×4矩阵键盘在单片机的简单应用举例(一) 如下图所示,运行程序时,按下任一按键,数码管会显示它在矩阵键盘上的序号0~F,并且蜂鸣器发出声音,模拟按键的声音。此处采用线反转法识别按键。 C程序如下:

基于人因工程学原理的键盘设计

学生课程设计(论文) 题目:基于人因工程学原理的键盘设计 学生姓名:学号: 所在院(系):机械工程学院 专业:工业工程 班级:2010级 指导教师:职称: 2013年6 月25 日 教务处制 摘要 随着科学技术的发展,特别是计算机技术的推广和普及,计算机越来越多的应用在人们的日常生活中的各个领域;无论实在工作方面,还是在娱乐休闲方面,

计算机都扮演着重要的角色,在计算机的配件中当然有个重要的配件,那便是计算机重要的输入设备之一---键盘;键盘是人和计算机交互的一个主要界面,它集成了计算机的操作的功能;然而标准的键盘并不符合人机系统高效、舒适的要求不利于提高信息输入的效率;随着日常生活中使用键盘的时间和频率的增加以及键盘设计的不合理性,一些不健康的隐患也随之而来,比如称为“累积性骨骼肌肉损伤”这种职业病;另一个方面,键盘不合理的设计也会降低工作效率。因此最需要的是设计出符合高效、舒适、安全等要求的键盘。 在科学技术不断提高的背景下,我们所使用的产品就需要不断地改善和创新,从一定程度上来讲,每一次的设计应该都是一次创新的过程,作为科学技术载体的产品创新,是改进人类工作、生活方式进而促进社会进步的重要推动力,产品的创新是理性分析产生的,从设计变量来看,工业产品的材料、形态、尺寸、色彩、机理、技术原理等方面都可以成为创新的突破点。产品在设计过程中需要注意的是要依据“以人为本”的设计思想,充分考虑人的因素,并依据人因工程的理论为依据;注重人机交互,注重人与工具的和谐性。 关键词高效,舒适,人机系统,创新,以人为本,交互 目录 摘要 ..............................................................................................................................

单片机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 0000H LJMP START ORG 0003H RETI ORG 000BH

键盘基本工作原理

PS/2协议,键盘基本工作原理,键盘模拟器 upsdn首页> 嵌入式开发> 电路与通信系统 摘要:先简要介绍普通PC机的键盘,然后分析PS/2协议,最后实现了一个键盘仿真器,可利用其开发真正的键盘. PC机键盘简介 随着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位计数器循环计数。当高5位(D6一D2)状态为全“0”时,经译码器在O列线上输出一个“0”,其余均为“1”;而计数器的低二位(D1D0)通过4选1多路选择器控制0—3行的扫描。计数器计一个数则扫描一行,计4个数全部行线扫描一遍,同时由计数器内部向D2进位,使另一列线1 变低,行线再扫描一遍。只要没有键按下,多路选择器就一直输出高电平,则时钟一直使计数器循环计数,对键盘轮番扫描。当有一个键被按下时,若扫描到该键所在的行和列时,多路选择器就会输出一个低电平,去封锁时钟门,使计数器停止计数。这时计数器输出的数据就是被按键的位置码(即扫描码)。8048利用程序读取这个键码后,在最高位添上一个“O”,组成一个字节的数据,然后从P22引脚以串行方式输出。在8048检测到键按下后,还要继续对键盘扫描检测,以发现该键是否释放。当检测到释放时,8048在刚才读出的7位位置码的前面(最高位)加上一个“1”,作为“释放扫描码”,也从P22引脚串行送出去,以便和“按下扫描码”相

基于单片机的键盘和LED数码管工作原理

摘要:键盘和显示器是微机最常见的输入输出设备。本文介绍键盘和LED显示器的基本工作原理,并给出在8051基础上的电路结构及C语言代码。 关键字:键盘,LED,单片机 键盘是微型计算机系统中最基本、最常见的输入设备。在各种工业过程的计算机控制和监视系统中,广泛应用发光二极管向用户提供提示。由发光二极管可以构成7段/8段LED显示器,用于显示工作状态、参数数值和故障位置。 一.键盘的工作原理 键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。 (一)键盘的基本介绍 1.键盘的功能 键盘接口必须具有4个基本功能: 1.去抖动 2.防串键 3.识别被按键并产生与之对应的键码 4.释放键 而键码产生后如何去实现按键的特定功能,是操作系统和应用程序的任务2.键盘的分类 根据按键开关的排列方式,键盘可分为线性键盘和矩阵键盘。 线性键盘:硬件连接和接口程序都很简单,只适用于按键少的场合,因为线性键盘有多少按键,就需要有多少根连线与微机输入端口相连。 矩阵键盘:将按键排成n行m列,每个按键占据行列的一个交点,需要的外连接线数目是m+n,而容许的最大按键数是m*n,显然可以减少微机接口的连线,是一般微机常采用的键盘结构。 3.键盘与单片机的连接方式 矩阵键盘的连接方法有多种。可直接连接于单片机的I/O口线;可利用扩展的并行I/O口连接;也可利用可编程的键盘、显示接口芯片(如8297)进行连接等等。其中,利用扩展的并行I/O口连接方便灵活,在单片机应用系统中比较常用。下图就是通过8255A芯片扩展的并行I/O口连接的矩阵键盘。 图 1 微处理器和键盘接口接线示意

键盘输入工作原理

键盘输入工作原理 作者:飄lá┽蕩去来源:博客园发布时间:2007-11-12 14:37 阅读:1809 次原文链接[收藏] Windows 窗体编程 键盘输入工作原理 Windows 窗体通过引发键盘事件来处理键盘输入以响应 Windows 消息。大多数Windows 窗体应用程序都通过处理键盘事件来以独占方式处理键盘输入。但是,必须了解键盘消息的工作方式,才能实现更高级的键盘输入方案(如在按键到达控件之前截获它们)。本主题描述 Windows 窗体能够识别的按键数据的类型,并概述键盘消息的传送方式。有关键盘事件的信息,请参见使用键盘事件。 按键的类型 Windows 窗体将键盘输入标识为由按位Keys枚举表示的虚拟键代码。使用Keys枚举,可以综合一系列按键以生成单个值。这些值与 WM_KEYDOWN 和 WM_SYSKEYDOWN Windows 消息所伴随的值相对应。可通过处理KeyDown或KeyUp事件来检测大多数物理按键操作。字符键是Keys枚举的子集,它们与WM_CHAR 和 WM_SYSCHAR Windows 消息所伴随的值相对应。如果通过组合按键得到一个字符,则可以通过处理KeyPress事件来检测该字符。或者,可以使用由Visual Basic 编程接口公开的Keyboard来发现已按下的键并发送它们。有关更多信息,请参见访问键盘。 键盘事件的顺序 正如上面列出的那样,在一个控件上可能出现三个与键盘相关的事件。以下顺序是发生这些事件的常规顺序: 1.用户按“a”键,该键将被预处理和调度,而且会发生KeyDown事件。 2.用户按住“a”键,该键将被预处理和调度,而且会发生KeyPress事件。 在用户按住某个键时,此事件会发生多次。 3.用户松开“a”键,该键将被预处理和调度,而且会发生KeyUp事件。 键的预处理 像其他消息一样,键盘消息是在窗体或控件的WndProc方法中处理的。但是,在处理键盘消息之前,PreProcessMessage方法会调用一个或多个方法,这些方法可被重写以处理特殊的字符键和物理按键。您可以重写这些方法,以便在控件

单片机4x4矩阵式键盘的设计与仿真

课程设计报告 (单片机原理和应用) 题目名称4x4矩阵式键盘专业班级 学生姓名 学号 指导教师

4x4矩阵式键盘的设计与仿真 1、设计原理: 矩阵式键盘工作原理 矩阵式键盘使用于按键数量较多的场合,它由行线与列线组成,按键位于行、列的交叉点上,行、列线分别列接到按键开关的两端。行线通过上拉电阻接到+5V上。无键按下时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平一样为高电平。这是识别矩阵键盘按键是否被按下的关键所在。一个4x4的行列可以构成一个16按键的键盘。 本次以扫描法来识别按键。在扫描法中分两步处理按键,首先是判断有无键按下,让所有的列线置高电平,检查各行线电平是否有变化,如行线有一个为高,则有键按下。当判断有键按下时,使列线依次变低,其余各列为高电平,读行线,进而判断出具体哪个键被按下。 下表为7段共阴极段码表: 显示字符共阴极段码显示字符共阴极段码 “0”3FH“8”7FH “1”06H“9”6FH “2”5BH“A”77H “3”4FH“b”7CH “4”66H“C”39H “5”6DH“d”5EH “6”7DH“E”79H “7”07H“F”71H “灭“00H 实验环境 Keil uVision3 proteus 7 功能设计描述 由4x4组成16个按钮矩阵式键盘 按键成功会在7段LED显示该按键的键号 主要知识点 Keil uVision3的使用及调试 proteus 7的使用及调试 键盘接口、LED 显示接口、模拟电路的相关知识

开始 有键按下吗 延时50ms 确定有键按下吗 确定按键位置 返回 键释放了吗 键值→p2 N N N Y Y Y 2、实现及编程 程序框图 电路原理图 程序内容 4x4行列式键盘识别

4×4矩阵键盘的工作原理与编程

ME300B单片机学习开发系统应用之三 ---4×4矩阵键盘的工作原理与编程 本文介绍如何在ME300B型51/AVR单片机学习开发系统上使用数码管显示4×4矩阵键盘的键值。 一、硬件工作原理的简单介绍 该实验使用ME300B上的8位数码管显示电路和4×4矩阵键盘电路。现将这二部分的电路工作原理进行简单的介绍: 1、4×4矩阵键盘的工作原理 矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。 K2 P15K3 P16 2、数码管动态扫描显示电路

所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。 在ME300B单片机开发系统中使用数码管来显示信息时,要将JP2的2、3端短接。见图3 二、演示程序的编程方法 1、4×4矩阵键盘的编程方法: 1.1、先读取键盘的状态,得到按键的特征编码。 先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。 举例说明如何得到按键的特征编码: 假设“1”键被按下,找其按键的特征编码。 从P1口的高四位输出低电平,即P1.4-P1.7为输出口。低四位输出高电平,即P1.0-P1.3为输入口。读P1口的低四位状态为“1101”,其值为“0DH”。 再从P1口的高四位输出高电平,即P1.4-P1.7为输入口。低四位输出低电平,即P10-P13为输出口,读P1口的高四位状态为“1110”,其值为“E0H”。 将两次读出的P0口状态值进行逻辑或运算就得到其按键的特征编码为“EDH”。 用同样的方法可以得到其它15个按键的特征编码。

矩阵键盘的工作原理

4×4矩阵键盘的工作原理与编程 51/AVR单片机学习开发系统上使用数码管显示4×4矩阵键盘的键值。 一、硬件工作原理的简单介绍 该实验使用的8位数码管显示电路和4×4矩阵键盘电路。现将这二部分的电路工作原理进行简单的介绍: 1、4×4矩阵键盘的工作原理 矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。 图1为矩阵键盘电路图,行线接P1.4-P1.7,列线接P1.0-P1.3。 图1 矩阵键盘电路 图2 按键排列 2、数码管动态扫描显示电路 在ME300B开发系统中,采用了8位数码管动态扫描显示。它将所有数码管的8个段线相应地并接在一起,并接到 AT89S51的P0口,由P0口控制字段输出。而各位数码管的共阳极由AT89S51的P2口控制Q20-Q27来实现8位数码管的位输出控制。 这样,对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。 由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。 图3 数码管电路 数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。 在ME300B单片机开发系统中使用数码管来显示信息时,要将JP2的2、3端短接。见图3 二、演示程序的编程方法 1、4×4矩阵键盘的编程方法: 1.1、先读取键盘的状态,得到按键的特征编码。 先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。 举例说明如何得到按键的特征编码: 假设“1”键被按下,找其按键的特征编码。

基于MCS51系列单片机实现键盘按键与数字动态显示计数器课程设计

毕业设计论文 摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。本实验是基于MCS51系列单片机所设计的,可以实现键盘按键与数字动态显示并可以用音乐倒数的计数器。本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。当倒计数为0时,蜂鸣器就发出音乐声响等等。该计数器系统主要由计数器模块、LCD显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。 关键词:AT89C51、键盘、LCD1602显示、蜂鸣器

目录 摘要............................................................... I 1 项目概述和要求 (1) 1.1 单片机基础知识 (1) 1.2 单片机的发展趋势 (1) 1.3 项目设计任务与要求 (3) 2 系统设计 (4) 2.1 框图设计 (4) 2.2部分硬件方案论述 (4) 2.3电路原理图 (4) 2.4元件清单 (5) 2.4.1AT89C51芯片 (5) 2.4.2字符型LCD1602 (6) 2.4.3按键控制模块 (8) 2.4.4其它元件 (8) 3软件设计 (9) 3.1 程序流程图 (9) 3.2 程序关键问题的部分代码 (11) 4 系统的仿真与调试 (16) 4.1 硬件调试 (16) 4.2 软件调试 (16) 4.3 软硬件调试 (16) 5总结 (17) 参考文献 (18)

相关文档
最新文档