单片机键盘接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU对键盘扫描
(1)可以采用程序控制的随机方式调用键盘扫描 子程序响应键输入要求;
(2)也可以采用定时控制方式,每隔一定时间, 调用键盘扫描子程序,来响应键输入要求。可 利用8051内部定时器,定时10ms中断,调用 键盘扫描子程序,从而转到键功能处理程序。
第八章 单片机人机接口
键盘扫描子程序一般应具备如下几个功能:
键处理程序 中断返回
键盘、显示器接口—8155(8第八.2章.3单)片机人机接口
4×8 键盘
8155的端口地址分配如下:
第八章 单片机人机接口
7F00H 7F01H 7F02H 7F03H
命令/状态口 A口(显示器位选口;键盘列扫描输出口) B口(显示器段选口) C口(键盘行输入口)
LED采用动态显示、软件译码; 键盘采用编程扫描工作方式。 LED采用共阴极数码管;键盘编码为十六进制数。 LED驱动采用集电极开路同相输出8位驱动器8718芯片
相连,作键扫描输出线; 列线与P1口的低四位P1.3~P1.0 行 相连,作读键输入线; 四根列线P1.3~P1.0接到与门输
入端,与门输出接到INT0引脚, 列 以申请中断。
4×4 键盘 初始化时使键盘行输出口全为0。当有键按下时,
向CPU发出中断请求,CPU中断开放,响应中 断请求,进入中断服务程序后,
GND
8.2.1 键盘工作原理
>100ms
1.键的特性
键盘实际上是一组按键开关的集合,平时按键开关总是
处于断开状态,当按下键时它才闭合。键的按下与释放是通过
机械触点的闭合与断开来实现的,因机械触点的弹性作用,在
闭合与断开的瞬间电压会产生波动,即抖动。它的结构和产生
的波形如图所示。
2.去抖动影响的措施
3、判别闭合键的键号 方法执行扫描键盘程序,PA口依次输出扫描码,并用计数
器记录下当前扫描列的列号,并相应地读取PC口的状态。 N=行首键号+列号=8+1=9
4、使CPU对键的一次闭合仅做一次处理 等待闭合键释放以后再做处理 。
第八章 单片机人机接口
PA口列扫描输出码
图8-10 键扫描程序框图
键盘、显示器接口程序清单:
LK1: ACALL DIR
;延时12ms
ACALL DIR
ACALL KS1
JNZ LK2
ACALL DIR
AJMP KEYI
LK2: MOV R2,#0FEH ;列扫描码送R2
MOV R4,#00H
;R4是列计数单元
LK4: MOV DPTR,#7F01H ;列扫描码送PA口
时,执行一个10ms左右的延时程序后,再确认该键电平是
否保持闭合状态电平,若仍保持闭合状态电平,则确认该
键处于闭合状态,从而消除了抖动影响。
3. 行列式键盘工作原理 4×4 键盘第八章 单片机人机接口
图中键盘的行线X0~X3通过电阻接
+5V。当键盘上没有键闭合时,所有
的行线和列线都断开,行线都呈高
ORG 3000H
START: MOV SP,#60H
MOV DPTR,#2F00H
MOV A,#03H
MOVX DPTR,A
MOV 70H,#00H ;70H存放键号
KEYI: ACALL KS1 ;调用判有无键闭合子程序
JNZ LK1
NI: ACALL DIR ;调用显示子程序,延时6ms
AJMP KEYI
电平。当键盘上某一个键闭合时,
图8-6 键盘结构
该键所对应的行线和列线被短路。
如果把行线接到单片机的输入口,列线接到单片机的输出口。
在单片机的控制下,先使列线Y0输出 “0”,其余列线都为
“1”,读行线状态。如果行线都为“1” ,则Y0列上没有键
闭合。如果读出的行线不全为“1” ,则为“0”的行线和Y0
1)判断键盘上有无键按下。 2)用软件去除键的抖动影响。 3)扫描键盘,得到按下键的键号。 4)判断闭合的键是否抬起,键闭合一次仅进行一次键
功能操作。 5)输出确定的键号。
2)中断扫描方式
第八章 单片机人机接口
编程扫描方式,CPU经常处于空扫状态,为提高
CPU的效率,可采用中断方式。
接线说明:键盘 行线与P1口的高四位P1.7~P1.4
相交的键处于闭合状态,如果Y0这一列上没有键闭合,接着是
列线Y1为“0”,其余为“1” ,用同样方法检查Y1列上是否
有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的
8.2.2 键盘的工作方式
第八章 单片机人机接口
键盘的工作方式一般有两种:
一、编程扫描方式(查询方式)
二、中断扫描方式
一、编程扫描方式
进入中断服务程序后,要完成以第下八章功单能片:机人机接口
键识别:执行键盘识别程序,使行扫线P1.4-P1.7 全部输出低电平,读入P1.3-P1.0列线的状态,如有 键按下,必有列线为低电平,转去抖动;
去除抖动:延时10ms左右后,再次识别有无键按 下;
确定键并计算键值:执行扫描键盘程序,使行扫线 P1.4-P1.7逐次输出低电平,读入P1.3-P1.0列线的 状态,如所扫行有键按下,必有列线为低电平wenku.baidu.com从 而根据行号和列号可以计算出键值。 键值=行首值+列号值
键扫描子程序的设计要考虑以下第4八个章 方单片面机人:机接口
1、判别键盘上有无键闭合 方法是使PA口输出全“0”,读PC口的状态, 若PC口全为“1”则键盘上没有键闭合, 若PC口不全为“1”,则有键闭合。
2、去除键的机械抖动 方法是判断到键盘上有键闭合后,延迟一段时 再判别键盘的状态,若仍有键闭合,则认为有 一个键处于稳定的闭合期,否则认为是键的抖动。
第八章 单片机人机接口
为了保证CPU对键的一次闭合仅进行一次键功能操作消除按 键盘抖动,通常有两种方法:硬件消+5v抖和软件消抖。
硬件消抖是通过在按键 输出电路上加一定的硬 件线路来消除抖动,一 般采用R-S触发器或单
&
开关 +5v
&
I/O 接 口
单 片 机
稳态电路。
消除抖动电路
软件消抖是利用延时来跳过抖动过程。在检测到有键按下
第八章 单片机人机接口
8.2 键盘接口
第八章 单片机人机接口
“ 断开 ”
“ 断开 ”
键盘是计算机不可缺P少1.1的输入设备,是实现人机对话的
纽带。V按CC其结构形式键盘可分为非编码键“ 闭盘合和”编码键盘,前
抖动时间
<10ms
者用软件方法产生键码,而后者<1用0m硬s 件方法产生键码。
P1.1
K
开关动作时间
(1)可以采用程序控制的随机方式调用键盘扫描 子程序响应键输入要求;
(2)也可以采用定时控制方式,每隔一定时间, 调用键盘扫描子程序,来响应键输入要求。可 利用8051内部定时器,定时10ms中断,调用 键盘扫描子程序,从而转到键功能处理程序。
第八章 单片机人机接口
键盘扫描子程序一般应具备如下几个功能:
键处理程序 中断返回
键盘、显示器接口—8155(8第八.2章.3单)片机人机接口
4×8 键盘
8155的端口地址分配如下:
第八章 单片机人机接口
7F00H 7F01H 7F02H 7F03H
命令/状态口 A口(显示器位选口;键盘列扫描输出口) B口(显示器段选口) C口(键盘行输入口)
LED采用动态显示、软件译码; 键盘采用编程扫描工作方式。 LED采用共阴极数码管;键盘编码为十六进制数。 LED驱动采用集电极开路同相输出8位驱动器8718芯片
相连,作键扫描输出线; 列线与P1口的低四位P1.3~P1.0 行 相连,作读键输入线; 四根列线P1.3~P1.0接到与门输
入端,与门输出接到INT0引脚, 列 以申请中断。
4×4 键盘 初始化时使键盘行输出口全为0。当有键按下时,
向CPU发出中断请求,CPU中断开放,响应中 断请求,进入中断服务程序后,
GND
8.2.1 键盘工作原理
>100ms
1.键的特性
键盘实际上是一组按键开关的集合,平时按键开关总是
处于断开状态,当按下键时它才闭合。键的按下与释放是通过
机械触点的闭合与断开来实现的,因机械触点的弹性作用,在
闭合与断开的瞬间电压会产生波动,即抖动。它的结构和产生
的波形如图所示。
2.去抖动影响的措施
3、判别闭合键的键号 方法执行扫描键盘程序,PA口依次输出扫描码,并用计数
器记录下当前扫描列的列号,并相应地读取PC口的状态。 N=行首键号+列号=8+1=9
4、使CPU对键的一次闭合仅做一次处理 等待闭合键释放以后再做处理 。
第八章 单片机人机接口
PA口列扫描输出码
图8-10 键扫描程序框图
键盘、显示器接口程序清单:
LK1: ACALL DIR
;延时12ms
ACALL DIR
ACALL KS1
JNZ LK2
ACALL DIR
AJMP KEYI
LK2: MOV R2,#0FEH ;列扫描码送R2
MOV R4,#00H
;R4是列计数单元
LK4: MOV DPTR,#7F01H ;列扫描码送PA口
时,执行一个10ms左右的延时程序后,再确认该键电平是
否保持闭合状态电平,若仍保持闭合状态电平,则确认该
键处于闭合状态,从而消除了抖动影响。
3. 行列式键盘工作原理 4×4 键盘第八章 单片机人机接口
图中键盘的行线X0~X3通过电阻接
+5V。当键盘上没有键闭合时,所有
的行线和列线都断开,行线都呈高
ORG 3000H
START: MOV SP,#60H
MOV DPTR,#2F00H
MOV A,#03H
MOVX DPTR,A
MOV 70H,#00H ;70H存放键号
KEYI: ACALL KS1 ;调用判有无键闭合子程序
JNZ LK1
NI: ACALL DIR ;调用显示子程序,延时6ms
AJMP KEYI
电平。当键盘上某一个键闭合时,
图8-6 键盘结构
该键所对应的行线和列线被短路。
如果把行线接到单片机的输入口,列线接到单片机的输出口。
在单片机的控制下,先使列线Y0输出 “0”,其余列线都为
“1”,读行线状态。如果行线都为“1” ,则Y0列上没有键
闭合。如果读出的行线不全为“1” ,则为“0”的行线和Y0
1)判断键盘上有无键按下。 2)用软件去除键的抖动影响。 3)扫描键盘,得到按下键的键号。 4)判断闭合的键是否抬起,键闭合一次仅进行一次键
功能操作。 5)输出确定的键号。
2)中断扫描方式
第八章 单片机人机接口
编程扫描方式,CPU经常处于空扫状态,为提高
CPU的效率,可采用中断方式。
接线说明:键盘 行线与P1口的高四位P1.7~P1.4
相交的键处于闭合状态,如果Y0这一列上没有键闭合,接着是
列线Y1为“0”,其余为“1” ,用同样方法检查Y1列上是否
有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的
8.2.2 键盘的工作方式
第八章 单片机人机接口
键盘的工作方式一般有两种:
一、编程扫描方式(查询方式)
二、中断扫描方式
一、编程扫描方式
进入中断服务程序后,要完成以第下八章功单能片:机人机接口
键识别:执行键盘识别程序,使行扫线P1.4-P1.7 全部输出低电平,读入P1.3-P1.0列线的状态,如有 键按下,必有列线为低电平,转去抖动;
去除抖动:延时10ms左右后,再次识别有无键按 下;
确定键并计算键值:执行扫描键盘程序,使行扫线 P1.4-P1.7逐次输出低电平,读入P1.3-P1.0列线的 状态,如所扫行有键按下,必有列线为低电平wenku.baidu.com从 而根据行号和列号可以计算出键值。 键值=行首值+列号值
键扫描子程序的设计要考虑以下第4八个章 方单片面机人:机接口
1、判别键盘上有无键闭合 方法是使PA口输出全“0”,读PC口的状态, 若PC口全为“1”则键盘上没有键闭合, 若PC口不全为“1”,则有键闭合。
2、去除键的机械抖动 方法是判断到键盘上有键闭合后,延迟一段时 再判别键盘的状态,若仍有键闭合,则认为有 一个键处于稳定的闭合期,否则认为是键的抖动。
第八章 单片机人机接口
为了保证CPU对键的一次闭合仅进行一次键功能操作消除按 键盘抖动,通常有两种方法:硬件消+5v抖和软件消抖。
硬件消抖是通过在按键 输出电路上加一定的硬 件线路来消除抖动,一 般采用R-S触发器或单
&
开关 +5v
&
I/O 接 口
单 片 机
稳态电路。
消除抖动电路
软件消抖是利用延时来跳过抖动过程。在检测到有键按下
第八章 单片机人机接口
8.2 键盘接口
第八章 单片机人机接口
“ 断开 ”
“ 断开 ”
键盘是计算机不可缺P少1.1的输入设备,是实现人机对话的
纽带。V按CC其结构形式键盘可分为非编码键“ 闭盘合和”编码键盘,前
抖动时间
<10ms
者用软件方法产生键码,而后者<1用0m硬s 件方法产生键码。
P1.1
K
开关动作时间