当前位置:文档之家› 浅谈单片机非编码键盘工作原理及设计方法

浅谈单片机非编码键盘工作原理及设计方法


3
行列式键盘
2 独立式按键
独立式按键是指直接用 I/O 口线构成的单个按键电路。 每个 独立式按键单独占有一根 I/O 口线, 每根 I/O 口线的工作状态都 不会影响其他 I/O 口线的工作状态, 这是一种最简单 、 易懂的按 键结构。 2.1 独立式按键结构 独立式按键电路结构见图 2。该图中, 每个 I/O 口引脚上都 加了上拉电阻。在实际使用中, 如 I/O 口内部已有上拉电阻 (如 P1 口 ) , 可省去。 110
Strengthen the Core Competitiveness of the Primary Medical Information Centre
LUO Fang, HU Wei, JIN Xiao-jun, YU Dan-yan
ABSTRACT: This paper analyzes the present situation of the primary medical information centre , and points out that the primary medical information centre must strengthen the self-construction continuously , and based on the actual situation of the local users, centers on the satisfaction of users’information demands and on the knowledge service, establishes the self’ s core competitiveness, and therefore improves the service quality. KEY WORDS: primary medical information centre; core competitiveness; knowledge service
图3
单片机 I/O 口组成的行列式键盘
是断开的, 所有行线 P2.0~P2.3 输入全部为高电平。当按下键盘 上某个键使其闭合时, 则对应的行线和列线短路, 行线输入即为 列线输出。如果此时把所有列线初始化为输出低电平, 则通过读 取行线输入值 P2.0~P2.3 的状态是否全为 1, 即可。 判断具体哪个键按下:对键盘进行扫描,流程如下 。先令 P1.0 输出低电平 0, P1.1~P1.7 输出高电平 1,读行线 P2.0~P2.3 输入电平。如果读得某行线为 0 电平, 则可确认对应于该行线与 列线 P1.0 相交处的键被按下, 否则 P1.0 列线上无键按下。如果 P1.0 列线上无键按下, 接着令 P1.1 输出低电平 0, 其余为高电平 1, 再读 P2.0~P2.3, 判断其是否全为 1, 若是, 表示按键也不在此 列,以此类推至列线 P1.7。如果所有列线均判断完,仍未出现 P2.0~P2.3 读入值有 0 的情况, 则表示此次并无键按下。 3.2 键盘的工作方式 在单片机应用系统中, 要做到及时响应键操作, 又不过多地 占用 CPU 的工作时间, 需根据应用系统中 CPU 的忙闲程度选择 适当的键盘工作方式。键盘的工作方式一般有循环扫描和中断 扫描两种。 3.2.1 循环扫描方式 利用 CPU 在完成其他工作的空余, 调用键盘扫描子程序来响 CPU 不再响应键输入要求。 应键输入要求。在执行键功能程序时, 键盘扫描程序通常具备 4 项功能: 第一, 判断键盘上有无键 按下。 第二, 去除键抖动影响。 在判断有键按下, 软件延时一段时 间 (一般 10 ms 左右 ) 后, 再判断键盘状态。如果仍为有键按下状 态, 则确定; 否则按键抖动处理。第三, 扫描键盘, 得到按键的键 号。第四, 判别闭合的键是否释放。程序框图见图 4。 在系统初始化后, CPU 必须反复轮流调用扫描式显示子程 序和键盘输入程序。在识别有键闭合后, 执行规定的操作, 然后 再重新进入上述循环。 3.2.2 中断工作方式 采用扫描键盘的工作方式,虽然能响应键输入的命令或数 CPU 总要定时扫描键 据, 但是这种方式不管键盘上有无键按下, 盘; 而应用系统在工作时, 并不经常需要按键输入, 因此, CPU 常
8
其他特色信息服务建设
中心不能仅仅满足于解答用户的咨询,还应不断开发新型 的服务项目, 如针对基层医务工作者信息素质不太强的情况, 为 用户开展相关的培训活动, 提高用户的信息素质, 如举办现代信 息技术、网络化信息资源利用和医学信息方面的知识讲座或培 训班, 针对现场培训的不足, 将培训的教学课件放在医学信息中 心的网站上, 供用户下载。
结构特点: 独立式按键电 Vcc 路配置灵活,硬件结构简单, 但每个按键必须占用一根 I/O 口线。在按键数量较多时, I/ O 口线浪费较大。应用场合: 在 按键数量不多时, 采用这种按 键电路。 在此电路中, 按键输入都 设置为低电平有效。 上拉电阻 图 2 独立式按键电路 保证了按键断开时 I/O 口线 有确定的高电平。 2.2 独立式按键的软件编制 下面这段程序的作用是当检测到相应的键按下时就转向每 OPR1~OPR7 个按键的功能程序 。 程序中省略了软件延时部分; 分别为每个按键的功能程序入口地址。设 I/O 口为 P1 口, P1.0~ P1.7 分别对应 OPR1~OPR7。 程序清单如下: START: MOV A, #0FFH ; 置输入方式 MOV P1, A L1: MOV A, P1 ; 输入键状态 CJNE A, #0FFH, L3 ; 有键按下转 L3 ; 延时 5 ms, 省略 LCALL DELAY SJMP L1 ; 延时 5 ms, 省略 L3: LCALL DELAY LCALL DELAY ; 延时 5 ms, 省略 MOV A, P1 ; 再读 P1 口 CJNE A, #0FFH, L2 ; 确实有键按下转 L2 SJMP L1 ; 误读键, 返回 L2: JNB ACC.0, TAB0 ; 为 0 转 0 号键首地址 JNB ACC.1, TAB1 ; 为 1 转 1 号键首地址 …… JNB ACC.7, TAB7 ; 为 7 转 7 号键首地址 SJMP L1 TAB0: LJMP OPR0 ; 转向 0 号键功能程序 TAB1: LJMP OPR1 ; 转向 1 号键功能程序 …… TAB7: LJMP OPR7 ; 转向 7 号键功能程序 …… OPR0: …… LJMP START ; 0 号键程序执行完, 返回 …… OPR7: …… LJMP START ; 7 号键程序执行完, 返回
独立式按键电路每一个按键开关占一根 I/O 口线, 当按键数 较多时, 要占用较多的 I/O 口线。因此, 在按键数大于 8 时, 通常 多采用行列式 (也称 “矩阵式” ) 键盘电路。 3.1 行列式键盘电路的结构及原理 图 3 为用 AT89S51 单片机扩展 I/O 口组成的行列式键盘电 路。图中行线 P2.0~P2.3 通过 4 个上拉电阻接 Vcc, 且处于输入 状态, 列线 P1.0~P1.7 为输出状态。按键设置在行、 列线交点上, 行、 列线分别连接到按键开关的两端。 判断有无键按下: 当键盘上没有键闭合时, 行线和列线之间
1
键盘工作原理
在单片机应用系统中,除复位键有专门的复位电路以及专 一的复位功能外,其他的按键均以开关状态来设置控制功能或 输入数据, 因此, 这些按键只是简单的电平输入 。键信息输入是 与软件功能密切相关的过程。对于某些应用系统,例如智能仪 表, 键输入程序是整个应用程序的重要组成部分。
9
结语
7
人文精神建设
109
李伍元
浅谈单片机非编码键盘工作原理及设计方法
本刊 E-mail:bjb@mail.sxinfo.net
信息工作研究
键输入原理 键盘中的每个按键都是一个常开的开关电路,当所设置的 功能键或数字键按下时, 则处于闭合状态。对于一组键或一个键 盘, 需要通过接口电路与单片机相连, 把键的开关状态通知单片 机。单片机可以采用查询或中断方式检查有无键输入以及是哪 一个键被按下, 并通过转移指令转入执行该键的功能程序, 执行 完再返回到原始状态。 1.2 键输入接口与软件应解决的问题 键输入接口与软件应可靠 、快速地实现键信息输入与执行 应解决下列问题。 键功能任务。为此, 1.2.1 键开关状态的可靠输入 目前,无论是按键还是键盘,大部分都是利用机械触点的 合、 断作用。机械触点在闭合及断开瞬间由于弹性作用的影响, 抖动时间 均存在抖动过程, 从而使电压信号也出现抖动, 见图 1。 长短与开关的机械特性有关, 一般为 5 ms~10 ms。 1.1
提升信息中心的核心竞争力, 不仅要靠技术 、 管理和服务的 创新, 还要学习其他先进的管理理念, 建立具有先进服务理念的 人文精神。核心竞争力需要开发、 培养、 不断巩固以及更新, 因为 即使建立了核心竞争力, 如果发展不好, 也还有可能再瓦解 。因 此中心引入其他先进的管理理念, 应用于平时的服务管理中, 创 建了独特的文化氛围, 如主动服务理念 、 人性化服务理念 、 首问 负责理念等先进理念, 不断培育核心竞争力得以成长的土壤, 使 自身的核心竞争力长盛不衰。
键按下
前沿抖动
键稳定
后沿抖动
图1
键闭合及断开时的电压波动
为保证 CPU 对键的一次闭合仅作一次键输入处理,就必须 通常去抖动影响的方法有硬件和软件两种。 在 去除抖动的影响。 硬件上,采取在键输出端加 R-S 触发器或单稳态电路构成去抖 动电路。在软件上采取的措施是: 在检测到有键按下时, 执行一 再判断该键电平是否仍保持闭合状 个 10 ms 左右的延时程序后, 态电平, 若仍保持为闭合状态电平, 则确认该键处于闭合状态, 通常 否则认为是干扰信号, 从而去除了抖动影响 。为简化电路, 采用软件方法。 1.2.2 对按键进行编码以给定键值或直接给出键号 任何一组按键或键盘都要通过 I/O 口线查询按键的开关状 态。根据不同的键盘结构, 采用不同的编码方法。但无论有无编 码以及采用什么编码,最后都要通过程序转换成为与累加器中 数值相对应的键值, 以实现按键功能程序的散转转移 (相应的散 转指令为 “JMP @A+DPTR” ) , 因此, 一个完善的键盘控制程序应 能完成下述任务: (1 ) 监测有无键按下。 (2 ) 有键按下后, 在无硬件去抖动电路时, 应采用软件延时 方法去除抖动影响。 (3 ) 有可靠的逻辑处理方法, 例如 n 键锁定, 即只处理一个 键。其间任何按下又松开的键不产生影响, 不管一次按键持续多 长时间, 仅执行一次按键功能程序。 (4 ) 输出确定的键号以满足散转指令要求。
相关主题