单片机与键盘输入的接口设计与应用解析
第7章 单片机接口技术71 单片机与键盘接口 711 键盘工作原资料

第7章 单片机接口技术
(3) 求按键位置。根据前述键盘扫描法,进行逐列置0扫描。 图7.6中,32个键的键值分布如下(键值由4位十六进制数码组成, 前两位是列的值,即A口数据,后两位是行的值,即C口数据, X为任意值): FEXE FDXE FBXE F7XE EFXE DFXE BFXE 7FXE FEXD FDXD FBXD F7XD EFXD DFXD BFXD 7FXD FEXB FDXB FBXB F7XB EFXB DFXB BFXB 7FXB FEX7 FDX7 FBX7 F7X7 EFX7 DFX7 BFX7 7FX7
编程扫描方式是利用CPU完成其它工作的空余时间,调用 键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时, CPU不再响应键输入要求,直到CPU重新扫描键盘为止。
第7章 单片机接口技术
键盘扫描程序一般应包括以下内容: (1) 判别有无键按下。 (2) 键盘扫描取得闭合键的行、列值。 (3) 用计算法或查表法得到键值。 (4) 判断闭合键是否释放,如没释放则继续等待。 (5) 将闭合键键号保存,同时转去执行该闭合键的功能。
第7章 单片机接口技术
7.1.3 矩阵式按键 单片机系统中,若使用按键较多时,通常采用矩阵式(也称 行列式)键盘。
1. 矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位于行、列线的交叉 点上,其结构如图7.5所示。 由图可知,一个4×4的行、列结构可以构成一个含有16个 按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立 式按键键盘要节省很多I/O口。
单片机教程-键盘程序设计23

23.3.1 扫描法及其程序设计
• 扫描法是在程序中反复扫描查询键盘接口,根据 端口的输入情况,调用不同的按键处理子程序。 由于在执行按键处理子程序的时候,单片机不能 再次响应按键请求。因此,单片机的按键处理子 程序应该尽可能少占用CPU的运行时间,并且尽可 能将键盘扫描安排在程序空余的时候,以满足实 时准确响应按键请求的目的。 • 1.扫描法的原理 • 2.扫描法程序设计
23.1.3 程序检测及响应
• 单片机对键盘输入的检测可以采用查询和中断两种方式。 查询方式需要在程序中反复查询每一个按键的状态,因此 会占用大量的CPU处理时间,这种方法适用于一般用途的程 序。中断法是当有按键按下的时候向CPU申请中断,平时不 会占用CPU处理时间,适用于一些对实时性要求较高的复杂 单片机系统。 • 程序中,对键盘的处理应该包括如下几个方面: • 检测按键是否按下; • 如果检测到按键被按下,执行延时程序,用来实现软件去 抖动,消除抖动的影响; • 扫描按键,准确判断按键的键值; • 转向相应的程序处理子程序。
23.1.2 输入的可靠性
• 输入的可靠性即让单片机程序能够正确无误地响应按键操 作。由于目前的键盘按键均为机械式接触点,由于触点的 机械弹性效应,在按键闭合和断开的时候,接触会出现抖 动,这样可能导致误响应或者多次响应等。键盘的可靠输 入是键盘接口设计的关键点。对于键盘的可靠输入需要在 程序中做如下两方面的处理: • 去抖动。由于机械特性的不同,按键的抖动时间长短不等, 大致在5ms~10ms之间。这样可以在硬件或者软件中进行响 应的处理来消除抖动的影响。 • 一次按键处理。由于人操作的按键闭合是有一定的时间限 制的,一般来说,大致为0.1s~5s。当按键按下之后,相应 的按键编码以高低电平的方式输入到单片机的I/O口。因为 单片机的执行速度很快,有可能导致单片机程序对该按键 操作响应多次。
单片机实用接口技术键盘接口技.pptx

LED显示器接口设计
• LED的结构 • LED静态显示 • LED动态显示
1. LED静态显示方式 各数码管的共阴极(或共阳极)
连接在一起并接地(接+5V),每个数 码管的各段分别与一个8位的锁存器输 出相连,这样当锁存器存入一个数据后, 数码管将始终显示此数据。
OE为0时,D0~D7呈高阻态。 START:启动信号,下降沿启动。 EOC:转换结束信号。该信号从启动信号上升沿开始经1、8个
时钟周期后由高电平变为低电平,表征A/D转换正在 进行;64个时钟周期后(每位转换需8个时钟周期)由低
CLK:时钟输入。时钟频率≤640kHz。 、:基准电压输入.基准电压必须满足: 0≤<≤Vcc
一般I/O接口不能提供这么大的电流,需要 使用驱动电路。常用的有 ULN2003A,7 段驱动, ULN2803 8段驱动。
特点: 1。 最大驱动电流可达500ma 2。反相驱动 3。需要限流电阻,数码管越多,限流电
A/D转换器的接口设计
1。根据要求的精度选择位数。8,12,16位 2。根据信号性质选择转换速度。
;判断有无键按下 ;有键按下
;去抖延时 ;再判断有无键按下 ;有键按下,确定按键位置
POP
A
RET
; 判断有无键按下子程序, 有键按下时,A的值不为0
KEY_ON:
MOV
A, #00H
MOV
DPTR, #0700H ;PA口
MOVX
@DPTR, A
MOV
DPTR, #0702H
MOVX
A,@DPTR
中断服务程序中读转换结果的程序段如下:
《单片机应用技术》教学课件04键盘接口及扫描原理

{key=kbscan( ); dlms( ); } }
void dlms( ) {uchar i; for(i=200;i>0;i--){} }
uchar kbscan( ) {uchar sccode,recode; P1=0xf0; if((P1&0xf0)!=0xf0)
3、行列扫描键盘原理
➢消除键的抖动 常用键盘的键是一个机械开关结构,被按下时,
由于机械触点的弹性及电压突跳等原因,在触点闭 合或断开的瞬间会出现电压抖动。抖动时间长短与 键的机械特性有关,一般为5~10 ms。
而键的闭合时间和操作者的按键动作有关,大 约为十分之几秒到几秒不等。
3、行列扫描键盘原理 ➢消除键的抖动
return(0); }
• 若要求返回的键值,用0表示行列位置,如何修 改程序?
5、线反转法键盘扫描程序
➢键盘扫描采用线反转法,其实现方法是: 首先将行线编程为输出线,列线编程为输入线,
使输出全部为零电平,则列线中电平由高变低的即 为按键所在的列;
然后将行线编程为输入线,列线编程为输出线, 使输出全为零电平,则行线中电平由高变低的即为 按键所在的行;这样便可确定键值。
• {dlms( );
• if((P0&0xf0)!=0xf0)
• col = P0&0xF0;
• P0=0x0F;
//
• row = P0&0x0F; //
• return((row|col));
•
}
• return(0);
•}
if(TempValue!=0x0f) //判断是否有键按下
单片机键盘接口技术 共47页

LP1:
JB K2,FH CALL DELAY JB K2,FH DEC 30H
MOV P1,#7FH
CALL DISP JNB K2,$
RET
DELAY: MOV R7,#5 LOOP1: MOV R6,#250 LOOP2: NOP
NOP DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET
若在同一行上有两个键同时按下,从 硬件上来说,不会出现什么问题;从软件 上来说,由于这时读入的列代码中出现了 两个0,由此代码与行值组合成的键特征 值就超出了原设定键的范围,因此也就查 不出有效的键值来。一旦出现这样情况, 一般作为废键处理。
(2)键处理
根据键值转移到不同程序段。 若键值属于数字、字符键,则调用显示数 字和字符的子程序。 若键值属于功能键,则进行多分支转移, 执行各个功能程序段。
二、独立式键盘
1.独立式键盘结构及与单片机的连接 (通过I/O口连接)
+5v
P1.0 P1.1
P1.7
每个按键单独占有一根I/O接口引线。
独立连接式键盘例1: 条件:按K1:灯左移,K2:灯右移。 K1 EQU P1.0 K2 EQU P1.1 主程序流程:
调用键盘子程序
子程序流程(法一):
K1=0? N Y
按键值编码方式:编码键盘与非编码键盘
编码键盘: 采用专用的编码/译码器件,被按 下的键由该器件译码输出相应的键码/键值。
特点:增加了硬件开销,编码因选用器件而 异,编码固定,但编程简单。适用于规模大 的键盘。
按键值编码方式:编码键盘与非编码键盘
非编码键盘: (单片机系统多采用此类键盘) 采用软件编/译码的方式,通过扫描,对每个被 按下的键判别输出相应的键码/键值。
单片机原理及接口技术结课报告——键盘输入及显示

单片机原理及接口技术结课报告——键盘输入及显示小组成员:第一章总体设计原理本设计是一个实现加、减、乘、除的计算器,它的硬件主要由四部分组成,一个AT89C51单片机芯片,一个八位共阳极的数码管,一个4*4的键盘,一个排阻(10K)做P0口的上拉电阻,它可以实现结果低于65535的加、减、乘、除运算。
——P2.7相连,P2口作为数码管的位控制端。
——P1.3管脚相连,程序运行时依次扫描各行,查询是否有键按下,如果有则进入键盘识别处理程序,实现相应的运算,然后通过数码管输出结果,如果没有按键就调用显示程序显示一个0,等待按键按下,在进入按键扫描程序。
执行过程:开机即显示0,等待键入数值,当键入数字,将通过数码管显示出来,在键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当在键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。
注:结果不能超出65535。
按键控制显示电路系统的总体原理框图为:第二章硬件设计2.1 系统所选芯片介绍AT89C51芯片是一种带有4K字节闪存的低电压、高性能CMOS 8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
AT89C51单片机模块是整个电路的核心,时钟信号与复位信号的产生以及程序的处理等任务都是由单片机来完成的。
时钟信号用来提供单片机片内各种微操作的时间基准,复位信后用来初始化单片机内部的某些特殊功能寄存器,使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
图1 AT89C51单片机2.2显示器介绍LED(Light Emiting Diode)是发光二极管的缩写。
通常所说的LED显示器由7个发光二极管组成,因此也称为七段LED显示器,其排列形状如下图所示。
显示器还有一个圆点型发光二极管(图中dp),用于显示小数点。
通过其个发光二极管亮暗的不同组合,就可以显示多种数字、字母以及其他符号。
精选单片机的输入输出设备接口详述
图12-4键盘扫描程序流程图
一个完整的键盘处理程序清单:
#include<reg51.h> #define LABA P2_7
//sbit P1_0=P1^0; //sbit P1_1=P1^1; //sbit P1_2=P1^2; //sbit P1_3=P1^3; //sbit P2_7=P2^7; //sbit P3_7=P3^7; unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0 xA1,0x86,0x8E}; void KeyScan(); void delay10ms(unsigned char time); void Dispaly(unsigned char k); void buzzer(); unsigned char key,temp;
(1)判断键盘中有无键按下 将全部行线Y0-Y3置低电
平,然后检测列线的状态。只要有一列的电平为低,则 表示键盘中有键被按下,而且闭合的键位于低电平线与4 根行线相交叉的4个按键之中。若所有列线均为高电平, 则键盘中无键按下。 (2)判断闭合键所在的位置 在确认有键按下后,即可
进入确定具体闭合键的过程。其方法是:依次将行线置 为低电平,即在置某根行线为低电平时,其它线为高电 平。在确定某根行线位置为低电平后,再逐行检测各列 线的电平状态。若某列为低,则该列线与同为低电平的 行线交叉处的按键就是闭合的按键。 图12-3中,单片机的P1口用作键盘I/O口,键盘的列线接 到P1口的低4位,键盘的行线接到P1口的高4位。列线 P1.0-P1.3分别接有4个上拉电阻到正电源+5V,并把列 线P1.0-P1.3设置为输入线,行线P1.4-P1.7设置为输 出线。4根行线和4根列线形成16个相交点。
单片机与键盘的连接.
模块7 系统扩展与接口技术
源程序(主函数)
调节温度的设置可分别在 #include<reg51.h>
外部中断0和外部中断1的 中断服务程序中实现,在
模块7 系统扩展与接口技术
识别键闭合的方法
对键盘的行线进行扫描。P1.4~P1.7按下述4种组合 依次输出: P1.7 1 1 1 0 P1.6 1 1 0 1 P1.5 1 0 1 1 P1.4 0 1 1 1
在每组行输出时读取P1.0~P1.3,若全为“1”,则 表示为这一行没有键闭合,否则有键闭合。由此得 到闭合键的行值和列值,然后可采用计算法或查表 法将闭合键的行值和列值转换成所定义的键值。
硬件方法:一般不常用。 软件方法:单片机设计中常用软件法,软件去除抖动其实很
简单,就是在单片机获得P1.0口为低的信息后,不是立即认 定S已被按下,而是延时10毫秒或更长一段时间后再次检测 P1.0口,如果仍为低,说明S的确按下了,这实际上是避开 了按键按下时的抖动时间。而在检测到按键释放后(P1.0为 高),再延时5~10个毫秒,消除后沿的抖动,然后再对键 值处理。
键盘扫描函数
unsigned char key_scan() { unsigned char kdata,vkey,keyNo; bit iskey=0; //标志,在确定具体哪一个键按下时,如果检测
到有一个键按下则该标志置1 P1=0x0f; //行线送“0” kdata=P1; //读取列线值 kdata&=0x0f; if(kdata==0x0f) return 0xff; //无键按下,建立无效标志(0xff为无键按下的 无效标志)
模块7 系统扩展与接口技术
键盘扫描函数
else //若列线均为“1”则无键按下,否则有键按下 {delay(25); //有键按下,去除抖动
单片机基础:键盘接口原理详解
单片机基础:键盘接口原理详解按键根据结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
前者造价低,后者寿命长。
目前,微机系统中最频繁的是触点式开关按键。
2.输入原理在应用系统中,除了复位按键有特地的复位及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。
当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构疏远相关的过程。
对于一组键或一个键盘,总有一个接口电路与CPU相连。
CPU可以采纳查询或中断方式了解有无将键输入,并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转命令转入执行该键的功能程序,执行完后再返回主程序3.按键结构与特点微机键盘通常用法机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的规律关系。
也就是说,它能提供标准的TTL规律电平,以便与通用数字系统的规律电平相容。
机械式按键再按下或释放时,因为机械弹性作用的影响,通常陪同有一定时光的触点机械颤动,然后其触点才稳定下来。
其颤动过程如下图所示,颤动时光的长短与开关的机械特性有关,普通为5~10 ms。
在触点颤动期间检测按键的通与断状态,可能导致推断出错,即按键一次按下或释放被错误地认为是多次操作,这种状况是不允许浮现的。
为了克服按键触点机械颤动所致的检测误判,必需实行去颤动措施。
这一点可从硬件、软件两方面予以考虑。
在键数较少时,可采纳硬件去抖,而当键数较多时,采纳软件去抖。
4. 按键编码一组按键或键盘都要通过I/O口线查询按键的开关状态。
按照键盘结第1页共4页。
第4章单片机系统的键盘接口
描) BFH = 1011 1111 B (7次扫
描)
若=全1,表明此次送0的行无键按下。 7FH = 0111 1111 B (8次扫描)
KEY1:LCALL KS1 ;查有无键闭合
MOV A,R2 ;取出此次行扫描值
JNZ LK1 ;有键闭合转消颤
JNB ACC.7,LK8 ;若已扫过最后
LJMP LK8 ;无键闭合则退出
若有键按下,则低4位中必有“1”
RET
检查的结果(出口): 若(A)≠0,则有键按下; 若(A)=0,则无键按下。
KEY1:LCALL KS1 ;查有无键闭合
JNZ LK1 ;有键闭合转消颤 @ 行号:第0行—第7行→(R3)
LJMP LK8 ;无键闭合则退出
(0,1,2,3,4,5,6,7)
LK1:LCALL DL6ms ;消颤12ms LCALL DL6ms LCALL KS1 ;再查有无键闭合 JNZ LK2 ;的确有,转处理 LJMP LK8 ;确实无,退出去
@ 行扫描值: 0FEH →(R2) (FE,FD,FB,F7,EF,DF,BF,7F) FEH = 1111 1110 B(首次扫
描)
LK2:MOV R3,#00H ;(R3)←行号初值 FDH = 1111 1101 B (2次扫
MOV R2,#0FEH;(R2)←行扫描初值 描)
LK3:MOV DPTR #0101H;指向8155 A口 MOV A, R2 ;取行扫描值 MOVX,@DPTR,A ;送到行线上去 INC DPTR
…………… BFH = 1011 1111 B (7次扫
CJNE A,#0FH,LK4;列值≠全“1” 描) 表明此次送0的行有键按下,转LK4处理, 7FH = 0111 1111 B (8次扫描) 若=全1,表明此次送0的行无键按下。 注意:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机与键盘输入的接口设计与应用解析引言:
单片机是一种集成电路芯片,具有处理器核、存储器和输入输出引脚等组成部分,可以控制各种外部设备。
键盘是计算机和其他电子设备的常用输入设备,通过按下不同的按键来输入信息。
在许多应用中,需要将键盘与单片机相连接,以实现键盘输入的功能。
本文将深入探讨单片机与键盘输入的接口设计与应用,包括接口电路的设计原理、接口方式的选择以及相关应用案例的分析。
一、接口电路设计原理
1. 键盘扫描原理
键盘通常是由一系列按键按排成矩阵状的结构,每个按键都有两个触点,当按键按下时,两个触点短接,形成闭合电路。
为了检测到具体按下的按键,需要通过扫描的方式来逐个检测。
2. 电路连接方式
通常,键盘与单片机之间可以通过行列式和矩阵式两种方式实现连接。
行列式连接方式即将键盘的行和列通过引脚分别连接到单片机的IO口,通过单片机的输入输出控制来检测按键信号。
矩阵式连接方式则是采用矩阵键盘的形式,将所有的按键都连接到行和列的交叉点上,通过扫描的方式来检测按键信号。
二、接口方式的选择
1. 行列式连接方式的优势和劣势
行列式连接方式相对简单,常用于按键较少的情况下。
它的优势在于节省IO 口的使用,通过编写简单的行列扫描程序即可实现对按键的检测。
然而,它的劣势在于不能同时检测多个按键,当同时有多个按键按下时,只能检测到其中一个。
2. 矩阵式连接方式的优势和劣势
矩阵式连接方式可以同时检测多个按键,因为所有的按键都连接到行和列的交
叉点上。
它的优势在于可以通过编写复杂的扫描程序,实现同时检测多个按键,并且可以检测到按键的精确位置。
然而,它的劣势在于需要占用较多的IO口,且对
于按键较多的情况下,编写扫描程序较为复杂。
三、相关应用案例的分析
1. 数字密码锁
数字密码锁是常见的应用之一,通过将键盘与单片机连接,可以实现输入密码
的功能,比如开启或关闭某个装置。
在设计中,可以选择行列式连接方式,通过扫描程序来检测按键,进而判断输入的密码是否匹配。
2. 游戏控制器
游戏控制器是游戏爱好者常用的设备,通过将键盘与单片机连接,可以实现游
戏控制的功能。
在设计中,可以选择矩阵式连接方式,通过编写复杂的扫描程序来检测多个按键,并根据不同的按键组合产生相应的控制信号。
3. 报警系统
报警系统常用于保护家庭和商业场所的安全。
通过将键盘与单片机连接,可以
实现设置密码和报警解锁功能。
在设计中,可以选择行列式连接方式,通过扫描程序来检测按键,进而判断输入的密码是否正确,并产生相应的报警信号。
结论:
单片机与键盘输入的接口设计是实现各种应用的重要一步。
通过设计合适的接
口电路和选择适当的接口方式,可以实现对键盘输入的检测和应用。
在实际应用中,需要根据具体的需求和资源限制来做出选择。
无论是行列式连接方式还是矩阵式连
接方式,都可以通过编写相应的程序来实现键盘输入的功能,从而为各种应用提供便利和扩展性。
在今后的发展中,随着技术的进步和单片机的不断发展,接口设计和应用也会不断地有新的突破。
我们可以期待更多的创新和应用,将单片机与键盘输入的接口设计发挥到极致。