第三章输入输出设备及接口技术(键盘LCD)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;指向8155口C ;读入列值 ;保留低4位 ;高4位取“1” ;取反,无键按下则全0 ;返主
DIR数码显示器扫描显示子程序参阅LED数码显示器
8155的I/O口地址:7F00H-7F05H PA口:输出,作键盘的列线(键扫描) 又作6位显示器的位扫描 PB口:输出,作显示器段数据输出 PC口:输入,作键盘的行线(键输入)
当键盘的某一键按下后,4位数码管都显示左移一位,最左边1位 移出丢弃,最右边移入当前的键值(开始时4位数码管显示全0)。
注:P1:字型码输出 P2:低4位,位选输出 P3:低4位作键盘列线,输出 高4位作键盘行线,输入
接线 a-dot bit0-bit3 Y0-Y3 X0-X3
P1.0-P1.7(段码、共阴) P2.0-P2.3(位选、1有效) P3.0-P3.3(输出、写) P3.4-P3.7(输入、读)
二 、独立式按键
1、接口设计
(1) 接口与数据
+5v
每个按键单独占有一根
I/O接口引线。
P1.0
P1.1
输入每根I/O接口引线的
信号对应某个按键状态。
P1.7
2、独立式按键接口程序设计
键盘处理程序任务 1)键输入
检查键盘是否有键被按下,消除按 键抖动。确定被按键的键号。
硬件电路消除抖动或软件消除抖动。 2)键译码
3) 中断扫描方式
无键按下时,与门各输入 端均为高电平,输出端保 持为高电平
有键按下时,与门输入有 低,输出端为低电平,向 CPU申请中断,若CPU开放 外部中断,则会响应中断 请求,转去执行键盘扫描 子程序。
中断式键盘电路 P1.0-P1.3 输出,为“0” P1.4-P1.7 输入
80 31
&
1) 编程扫描方式 编程扫描方式是利用CPU完成其它工作的空余时间, 调用键盘扫描子程序来响应键盘输入的要求。在执行键 功能程序时,CPU不再响应键输入要求,直到CPU重新扫 描键盘为止。
2) 定时扫描方式
定时扫描方式就是每隔一段时间对键盘扫描一次, 它利用单片机内部的定时器产生一定时间(例如10ms) 的定时,当定时时间到就产生定时器溢出中断。
LK2:MOV R2,#0FEH MOV R4,#0
LK4:MOV DPTR,#7F01H MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,LONE MOV A,#0 AJMP LKP
LONE:JB ACC.1,LTWO MOV A,#08H AJMP LKP
确定键值 3)键处理
根据键值转移到不同程序段。若键 值属于数字、字符键,则调用显示数字 和字符的子程序。若键值属于功能键, 则进行多分支转移,执行各个功能程序 段。
有按键信号? N Y
延时等待10ms
仍有按键信号? N Y
键盘处理
按键释放? N Y
3、独立式按键接口程序
KEY:SETB JB
KEY1: ACALL SETB JB
LTWO:JB ACC.2,LTHR MOV A,#10H AJMP LKP
LTHR:JB ACC.3,NEXT MOV A,#18H
LKP:ADD A,R4 PUSH ACC
LK3:ACALL DIR ACALLKS1 JNZ LK3 POP ACC RET
NEXT:INC R4 MOV A,R2 JNB ACC.7,KND RL A MOV R2,A AJMP LK4
KEY5:PUSH ACC KEY6:MOV P1,#0FFH
MOV A,P1 ANL A,#03H CJNE A,#03H,KEY6 LCALL DELAY MOV P1,#0FFH MOV A,P1 ANL A,#03H CJNE A,#03H,KEY6 POP ACC SETB PSW.5 RET
2. 矩阵式键盘按键的识别
1)行翻转法
列行0 列行10
列行20
列行30
1
输入输出
0
0 行列0
闭合键 0
行列1
1
0
行列2
1
0
0
0
0
输输
1
入出
1
0
2. 矩阵式键盘按键的识别
2)扫描法 (1) 判断有无键按下。 方法为:输出口全为0,读输入口状态,若全为1,则 说明无键按下;若不全为1,则说明有键按下 (2) 消除按键抖动的影响。其方法为:在判断有 键按下后,用软件延时的方法延时10ms后,再判断键 盘状态,如果仍为有键按下状态,则认为有一个按键 按下,否则当作按键抖动来处理 (3)列线逐列输出“0”,某行有键按下,则对应 行线输入为“0”,若该行无键按下,对应行线输入为 “1”
一 键盘工作原理
1. 键盘的可靠性 按键的机械抖动:在实际按键操作中,由于按键动
作是一个机械动作,键在闭合或断开的过程会发生抖动
输入
输入
键抖动时间的长短与开关的机械特性有关,一 般为5ms~10ms左右,然后达到稳定状态。
键盘接口:为了保证CPU对键的闭合作一次且仅作 一次处理,必须去除抖动,使CPU在键的稳定闭合或 断开状态时读取键值
键盘扫描程序:
KEY1: LCALL JNZ LJMP
LK1: LCALL LCALL LCALL JNZ LJMP
LK2: MOV MOV
LK3: MOV MOV MOVX INC INC MOVX ANL MOV CJNE MOV
KS1 LK1 LK8 DIR DIR KS1 LK2 LK8 R3,#00H R2,#0FEH DPTR,#7F01H A,R2 @DPTR,A DPTR DPTR A,@DPTR A,#0FH R4,A A,#0FH,LK4 A,R2
KEY2: JNB ACALL RET
P1.0
P1.0, KEY ;有键按下P1.0=0
DELAY
;延时,防止抖动
P1.0
P1.0, KEY ;键是否仍按下?
P1.0, KEY2 ;消除了连击功能
PROGRAM ;
KEY:MOV P1,#0FFH MOV A,P1 ANL A,#03H CJNE A,#03H,KEY1
“1”
“0”
抖动时间 <10ms 开关动作时间 >100ms
<10ms
消除抖动的方法
硬件去抖:常用双稳态电路、单稳态电路和RC积
分电路三种方法
软件去抖:在键盘接口中,另一种普遍使用的是
采用软件延时来完成消抖的方法。 基本思想是:在检测到按键按下或释放时,记
录按键的状态,延时大约10ms,再次检测按键的状 态,若与前一次的状态相同,说明按键的状态已稳 定,可进行处理;否则,表示键的状态不稳定,可 能是误动作,不应被处理
;已扫到最后1行则转 ;未扫完,则移至下1行 ;行值存入R2中 ;行号加1 ;转至扫描下1行 ;行号送入A ;行号×2 ;暂存 ;行号×4 ;存入R5中 ;列值送入A ;右移1位 ;该位为0则转 ;列号加1 ;列号未判完继续 ;保护键值 ;扫描1遍显示器 ;发全扫描信号 ;键未释放则等待 ;键已释放 ;延时12ms,消抖 ;键值存入A中
第三章 输入/输出设备及接口技术
3.2 键盘接口技术
Biblioteka Baidu
常用的按键,都存在两种状态:断开和闭合
当某一键被按下,则为闭合状态 键被释放,则为断开状态
键盘电路的功能就是将键的闭合和断开状态用 “0”和“1”来表示,然后通过数据线送到CPU内进 行键的识别
若键盘闭合键的识别是由专用硬件实现的,则称 为编码键盘;若用软件实现闭合键识别的,则称为非 编码键盘。非编码键盘又分为行列式和独立式两种。 本节我们主要讨论非编码键盘的工作原理、接口技术 和程序设计。
;检查有闭合键否? ;A非0,有键闭合则转 ;无键闭合转返回 ;有键闭合,则延时12ms ;消抖 ;再次检查有键闭合否? ;有键闭合则转 ;无键闭合转返回 ;行号初值送R3
;行扫描初值送R2 ;指向8155口A ;行扫描值送A ;扫描1行
;指向8155口C ;读入列值 ;保留低4位 ;暂存列值 ;列值非全“1”则转 ;行扫描值送A
KND: RET LK8: MOV
RET KS1: MOV
MOV MOVX INC INC MOVX ANL ORL CPL RET
A,#FFH
DPTR,#7F01H A,#00H @DPTR,A DPTR DPTR A,@DPTR A,#0FH A,#F0H A
;返主 ;无闭合键标志FFH存入A中 ;返主 ;有无闭合键判断子程序 ;取全扫描信号 ;发全扫描信号
KND:AJMP KEY1
KS1:MOV DPTR #7F01H MOV A,#0 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR CPL A ANL A,#0FH RET
注: A为”0”,则无键按下 否则有键按下
DIR:…
RET
同七段LED显示部分程序,此略
JNB RL MOV INC SJMP LK4: MOV ADD MOV ADD MOV MOV LK5: RRC JNC INC SJMP LK6: PUSH LK7: LCALL LCALL JNZ LCALL LCALL POP
ACC.7,LK8 A R2,A R3 LK3 A,R3 A,R3 R5,A A,R5 R5,A A,R4 A LK6 R5 LK5 R5 DIR KS1 LK7 DIR DIR A
三、矩阵式键盘
1、结构 由多条I/O接口引线组成矩阵式键盘
由行线和列 线组成,按 键位于行、 列线的交叉 点上 行: 输入 列: 输出
矩阵式键盘中,行、列线分别连接到按键开关的两端 当无键按下时,行线处于高电平状态; 当有键按下时,行、列线将导通,此时,行线电平将 由与此行线相连的列线电平决定。这是识别按键是否按下 的关键。 矩阵键盘中的行线、列线和多个键相连,各按键按下 与否均影响该键所在行线的电平,各按键间将相互影响, 因此,必须将行线、列线信号配合起来作适当处理,才能 确定闭合键的位置。
KEY3:CLR PSW.5 RET
KEY1:LCALL DELAY MOV P1,#0FFH MOV A,P1 ANL A,#03H CJNE A,#03H,KEY2 SJMP KEY3
KEY2:JB ACC.0,KEY4 MOV A,#0
SJMP KEY5 KEY4:JB ACC.1,KEY3
MOV A,#1
实验九 键盘显示实验
实验内容
1、利用核心模块(CPU)的P0~P3口、数码管模块和键盘模块设 计好接线,编出相应程序实现以下功能:
当键盘的某一键按下后,4位数码管都显示该键值(开始时4位数 码管显示全0)。
2、利用核心模块(CPU)的P0~P3口、数码管模块和键盘模块设 计好接线,编出相应程序实现以下功能:
键输入程序功能:1、判有无键按下 2、去抖 3、判键号 4、其它(键释放才执行,多键等)
键输入程序清单
KEY1:MOV A,#03H MOV DPTR,#7F00H MOVX @DPTR,A ACALL KS1 JNZ LK1 ACALL DIR AJMP KEY1
LK1:ACALL DIR ACALL DIR ACALL KS1 JNZ LK2 ACALL DIR AJMP KEY1
1
输 入
10
闭合键
1
01 x x x

01

01
01
有键闭合时无,键假闭设合为时7号键
四. 键盘的工作方式
对键盘的响应取决于键盘的工作方式,键盘的工作 方式应根据实际应用系统中CPU的工作状况而定,其选取 的原则是既要保证CPU能及时响应按键操作,又不要过多 占用CPU的工作时间。通常,键盘的工作方式有三种,即 编程扫描、定时扫描和中断扫描。
CPU响应中断后对键盘进行扫描,并在有键按下时 识别出该键,再执行该键的功能程序。
定时扫描方式的硬件电路与编程扫描方式相同
按键处理程序:
有按键输入? 延时消抖 确有按键?
键扫描求键号 延时
按键释放? 键译码求键值
是数字键? 输入数字
跳转各功能程序
采用上述两种键盘扫描方式时,无论是否按 键,CPU都要定时扫描键盘,而单片机应用 系统工作时,并非经常需要键盘输入,因此, CPU经常处于空扫描状态。
IN T0
P 1.0 P 1.1 P 1.2 P 1.3
P 1.4 P 1.5 P 1.6 P 1.7
用行扫描法进行键扫描的程序 其中KS1为判键闭合的子程序。有键闭合时 (A)=0。 DIR 为 数 码 显 示 器 扫 描 显 示 子 程 序 , 执 行 一 次的时间约6ms。 程序执行后, 若键闭合, 键值存入A中, 键 值的计算公式是: 键值=行号×4+列号; 若无 键闭合, 则A中存入标志FFH。
相关文档
最新文档