- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章微机控制系统扩展的设计-微机原理与接口技术
第章 微机控制系统扩展的设计 键盘电路的设计
图12. 1(a)单键盘 (b)矩阵键盘
在矩阵结构的键盘里,按键以矩阵形式连接,如图12.1(b)所示。对于64键的键盘,采用8×8矩阵方式,只要2个8位的I/O端口便可完成实现,如图12.2所示。
图12. 2 8x8矩阵键盘
12.1.2 矩阵键盘的按键识别
识别矩阵键盘上的闭合键,通常用两种方法:行扫描法和行反转法。
1.行扫描法
行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。行扫描法识别按键一般需要两个步骤。
第一步,首先要判断有没有按键被按下。
这里以图12.2所示的8行8列的矩阵键盘为例。将键盘行线与8255A的端口B相连,端口B设置为输出端口B的某一位为0,便将该行线接低电平;某位为1,则该行线接高电平。将列线与端口A相连,端口A设置为输入。CPU通过读取端口A的数据,来判别是否有键被按下。首先让端口B输出0,如果此时端口A读到的值是0FFH,表明当前没有按键被按下,否则,就是有按键被按下,接下来对该键进行识别。
判断有没有按键被按下的程序段如下:
WAIT1: MOV AL, 0H
MOV DX, PORTB
OUT DX, AL ;把数据0送给端口B
MOV DX, PORTA
IN AL,DX ;读取端口A值
CMP AL, 0FFH ;判定是否有列线为低电平
JZ WAIT1 ;没有,无闭合键,则循环等待
CALL DELAY ;有,调用延时程序,键盘消抖
CALL PROC ;调用按键处理程序
第二步,识别被按下的键,获得按键编号
如果程序判断有按键被按下了,接下通过扫描键盘矩阵的方式来获得按键编号,即键值。对某一行进行扫描,就是将该行行线置为低电平,其它行线为高电平。此时检测列线的状态,若到有某根列线为低电平,被按下的键就在该行该列;如果列线全是高电平,表明被按下的键不在该行,则置下一根行线为低电平,继续检测列线状态,直到检测到某根列线为低电平为止。
判断按键被按下的具体过程如下:先使第0行接低电平,其余行为高电平,读取列端口PORTA的值。如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下,结束扫描,开始识别;否则说明第0行没有任何键被按下,接着扫描,将第1行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到找到闭合键所在的列为止。
扫描程序如下: 其中BL中存放键号值,初始值为0;CL 中放行扫描值;初始值为0FEH;DL中放扫描的最大次数,初始值为8;
PROC: MOV BL,0 ;BL中存放键号值,初始值为0
MOV CL ;CL 中放行扫描初值
MOV DL,8 ;DL中放扫描的最大次数,初始值为8
FROW: MOV AL,CL ;扫描程序开始
OUT PORTB,AL ;行端口B输出扫描值
ROL AL,1
MOV CL,AL ;设置下一个扫描值
IN AL,PORTA ;读列端口A的值
CMP PORTA,0FFH ;测试列端口值是否为0FFH
JNZ FCOL ;如果是,表明被按下的键就在此列,停止扫描
ADD BL,8 ;进入下一行扫描,键号值加8
DEC DL ;完成一次扫描, 扫描次数减1
JNZ FROW ;重新下一行扫描
JMP DONE
FCOL: RCR AL,1 ;
JNC PROCE ;完成键号值识别
INC BL ;键号值加1
JMP FCOL
PROCE:……
DONE
(2)行反转法
行反转法也是识别键盘的常用方法。这里以图12. 2所示的矩阵键盘为例来说明其工作原理。首先,让端口A输出0;此时读取端口B的值,如果端口B的值为0FF,则没有键被按下,否则就是有键被按下,接下来进行按键识别。
当判断有按键被按下时,记下此时端口B所读的值,比方说,如果键“1DH”被按下,则此时端口B读到的值就是。 接下来让端口B输出该值,此时读取端口A的值,应该是。这两个值合在一起构成的代码, 即对应着键盘唯一的一个键。
在程序里,还可以列一个表,里面存放每一个
您可能关注的文档
- 神奇的电子技术第一章初步了解电子技术.PDF
- 福州市市级政府采购-福州第十六中学.doc
- 硅靶摄象管靶面的击穿-电子科学技术.PDF
- 福建MP3、U盘、摄像头最大供货商之一.doc
- 福建省建筑节能和绿色建筑-南度度节能服务网.doc
- 离子钨钼共渗的组织分类.PDF
- 破碎围岩浅埋偏压隧道衬砌荷载的计算方法-重庆大学学报.PDF
- 神经网络自变量输入模式的视电阻率求解算法-重庆大学学报.PDF
- 种改进的核脉冲峰值甄别器.PDF
- 科学新知周报-同德国中.PDF
- 数字图像处理 课件 第三章 基本图象变换.pptx
- 建筑供电与照明工程(第2版) 课件 4.5 照明工程配电电器及其选择.ppt
- 工业机器人 课件 第5章工业机器人静力学.ppt
- C#程序设计 课件全套 1-- 11 第1章 面向对象程序设计思维及C#开发环境 - 第11章 实践安排.pptx
- 参数化造型设计及工程表达(英语) 课件 lecture 1--lecture 16.pptx
- 工业机器人 课件全套1--10 第1章工业机器人概述 - 第10章工业机器人应用技术.pptx
- 新应用大学英语1(智慧版) 课件 Unit 1 Campus、Unit 2 Role Model.pptx
- 建筑供电与照明工程(第2版) 课件 3.3照明器及其选择.ppt
- 数字图像处理 课件 第二章 图象视觉系统与图像采集系统 .pptx
- 建筑供电与照明工程(第2版) 课件 4.3 照明线路计算.ppt
文档评论(0)