人机交互接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章 人机交互接口
人机交互接口是指人和计算机之间建 立联系、交流信息的有关输入/输出设备的 接口。它是计算机与用户之间最直接的信 息通道,是计算机设备的外在表现。对于 一个智能设备来讲,设计人性化的人机接 口,方便用户使用,变得越来越重要。
6.1 人机交互输入设备—键盘 6.2 人机交互输入设备—触摸屏 6.3 人机交互输出设备—LED 6.4 键盘、LED显示接口电路 6.5 人机交互输出设备—LCD
有了按键所在的行列值,可以转换成按键代码(键值), 根据键值的不同,执行不同的程序,即可完成按键的输入 功能。
(2)线反转法
线反转法也是一种常用的按键识别方法。这种方法非常简 单。通过前面的扫描法,我们可以发现在按键发现的过程 中,我们已经能够查找出按键所在的列,我们只需要把行 和列的角色互换一下,让列作输出,行作输入,实际上我 们就可以确定按键所在的行,这样我们只需要两步就可以 确定按键位置。其原理如下图所示:
1、硬件去抖动技术
即在键开关输出端与计算机接口之间加一个硬件消抖电路, 如RC滤波电路、单稳态触发器电路、双稳态触发器电路 (R-S触发器)等。
其中RC滤波去抖动电路如图所示:
双稳态去抖动电路如图所示
由于硬件去抖技术增加了电路的复杂性,故适用于按键数 目较少的场合。
2、软件去抖动技术 根据下图我们可以发现,当有键按下或释放时,我们可以 利用软件延时一段时间再检测就会“躲过”这个不稳定的 抖动期,而进入稳定期。例如当我们检查到有键按下以后 延时一段时间(10ms~20ms),再检查一次看是否有按 键按下,若这一次检查不到,则说明前一次结果为干扰或 者抖动;若这一次检查到有按键按下,则说明信号已经稳 定,确实有键按下。同样,在监测到有按键释放时,也是 先延迟一段时间,然后再检查按键是否释放,如果又检测 到按键释放后则说明按键已稳定释放。
软件键盘去抖动处理流程如 图所示。
这种软件去抖动的方法最大 的特点是成本低,实现起来 比较灵活,在键数目较多时, 大多采用软件延时法去抖动。
6.1.3 键盘的识别技术
1、独立式键盘的识别技术
独立式键盘,每个按键连 接了一个独立的输入端口, 所以只要CPU定时去查看 各个输入口的状态,只要 定时时间合适,即可识别 出相应的按键状态。但是, 如果查询时间不合适或者 按键动作太快,就有可能 漏判。为防止这种情况的 出现,可以利用中断技术 实现,具体实现电路如图 所示:
扫描法按键识别的原理如下图所示:
当按键发现部分已经发现有按键按下时,就需要进一步确 定具体是哪一个按键被按下,也就是需要具体确定按键的 具体位置。方法是先让行线输出第0行为0,其它行都是1, 这时读入列线,查看所读入的列线信号是否全为1,如果 全为1,则说明该键不在第0行(如图a所示);再让行线 输出第1行为0,其它行都为1,再读入列线信号,查看所 读入的列线信号是否为1,同样如果全为1,则说明该键不 在第1行(如图b);如是再查看第2行,第3行等等。当某 一行输出对应的列输入不全是1,则说明按键在该行,同 时,根据列输入中为0的位也能够确定该键所在的列,如 图d中所示,说明该按键在第3行第2列。
⑵非编码键盘 这种键盘只简单地提供按键的通或断状态, 而按键的识别、键值的确定等工作全靠软件完成,需要程 序控制扫描键盘,判断是否有键被按下、哪个键被按下。 非编码键盘硬件电路简单,成本低,但占用CPU的时间较 长,相当于用时间换取硬件电路的简单化。
非编码键盘又可分为独立式键盘和行列式键盘
独立式键盘是指其中每一个按键均有一条输入线与计算机 的接口相连,如图所示,每个按键的电路相互独立。结构 简单,连接方便,但缺点是有多少个按键,就需要多少条 输入线。这种键盘结构占用硬件资源较多,适合按键不多 的场合。
6.1.1 键盘的种类
根据键盘功能和结构形式的不同,通常把键盘分为两种基 本类型:编码键盘和非编码键盘。
⑴编码键盘 编码键盘的按键识别由专用的硬件编译码电路 实现,按下键后,键盘电路便能自动产生按键代码,如 ASCII码、EBCDIC码等。编码键盘使用方便,键盘码产 生速度快,占用CPU时间少,但对按键的检测与消除抖动 干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高, 价格较贵,在单片机系统中应用较少
一般情况下,正常的按键操作其开关动作时间(抖动 时间加上稳定时间)大约100ms左右,而抖动时间一般都 不超过10ms。
按键的抖动会造成按一次键产生的开关状态被CPU误 读几次,即按键一次按下或释放被错误地认为是多次操作。 为了使CPU能正确地读取按键状态,必须在按键闭合Βιβλιοθήκη Baidu断 开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件 方法和软件方法两种。
行列式键盘是指在键盘中 按键数量较多时,为了减 少I/O口的占用,按键按行 和列来排列,成为矩阵形 式,如图所示,又叫矩阵 式键盘。以4×4键盘为例, 这种方式可排列4×4=16 个按键,但与计算机的连 线线仅为4+4=8条。这种 结构适合按键较多的场合。
6.1.2 键盘的去抖动技术
按键的按下与释放一般是通过机械触点的闭合与断开来实 现,由于机械触点的弹性振动,按键在按下时不会马上稳 定地接通,在弹起时也不能立刻完全地断开,因而在按键 闭合和断开的瞬间均会出现一连串的抖动。如图所示:
为了发现按键按下,行线(输出信号线)输出全0信号, 列线通过上拉电阻连接到Vcc,若无按键按下,读列线 (输入信号线),读到的信号各位应该为全1(如图a所 示)。当有任何一个按键按下时,该按键将相应的行线与 列线短路,而行线输出全是0,所以列线读到的信号应该 至少有一个位不是1(如图b所示),哪一个位不是1,说 明该按键在哪一列。
2、行列式键盘的识别技术
行列式键盘识别闭合键的方法有两种:扫描法和线反转法。
(1)扫描法
扫描法中,为了提高效率,识别键盘中有无按键按下是由 行线送出全扫描字、列线读入行线状态来判断的,这叫做 按键发现。具体确定键盘中哪一个键按下可由行线逐行置 低电平后,检查列线输入状态来判断,这叫做按键识别。
扫描法按键发现的原理如下图所示:
人机交互接口是指人和计算机之间建 立联系、交流信息的有关输入/输出设备的 接口。它是计算机与用户之间最直接的信 息通道,是计算机设备的外在表现。对于 一个智能设备来讲,设计人性化的人机接 口,方便用户使用,变得越来越重要。
6.1 人机交互输入设备—键盘 6.2 人机交互输入设备—触摸屏 6.3 人机交互输出设备—LED 6.4 键盘、LED显示接口电路 6.5 人机交互输出设备—LCD
有了按键所在的行列值,可以转换成按键代码(键值), 根据键值的不同,执行不同的程序,即可完成按键的输入 功能。
(2)线反转法
线反转法也是一种常用的按键识别方法。这种方法非常简 单。通过前面的扫描法,我们可以发现在按键发现的过程 中,我们已经能够查找出按键所在的列,我们只需要把行 和列的角色互换一下,让列作输出,行作输入,实际上我 们就可以确定按键所在的行,这样我们只需要两步就可以 确定按键位置。其原理如下图所示:
1、硬件去抖动技术
即在键开关输出端与计算机接口之间加一个硬件消抖电路, 如RC滤波电路、单稳态触发器电路、双稳态触发器电路 (R-S触发器)等。
其中RC滤波去抖动电路如图所示:
双稳态去抖动电路如图所示
由于硬件去抖技术增加了电路的复杂性,故适用于按键数 目较少的场合。
2、软件去抖动技术 根据下图我们可以发现,当有键按下或释放时,我们可以 利用软件延时一段时间再检测就会“躲过”这个不稳定的 抖动期,而进入稳定期。例如当我们检查到有键按下以后 延时一段时间(10ms~20ms),再检查一次看是否有按 键按下,若这一次检查不到,则说明前一次结果为干扰或 者抖动;若这一次检查到有按键按下,则说明信号已经稳 定,确实有键按下。同样,在监测到有按键释放时,也是 先延迟一段时间,然后再检查按键是否释放,如果又检测 到按键释放后则说明按键已稳定释放。
软件键盘去抖动处理流程如 图所示。
这种软件去抖动的方法最大 的特点是成本低,实现起来 比较灵活,在键数目较多时, 大多采用软件延时法去抖动。
6.1.3 键盘的识别技术
1、独立式键盘的识别技术
独立式键盘,每个按键连 接了一个独立的输入端口, 所以只要CPU定时去查看 各个输入口的状态,只要 定时时间合适,即可识别 出相应的按键状态。但是, 如果查询时间不合适或者 按键动作太快,就有可能 漏判。为防止这种情况的 出现,可以利用中断技术 实现,具体实现电路如图 所示:
扫描法按键识别的原理如下图所示:
当按键发现部分已经发现有按键按下时,就需要进一步确 定具体是哪一个按键被按下,也就是需要具体确定按键的 具体位置。方法是先让行线输出第0行为0,其它行都是1, 这时读入列线,查看所读入的列线信号是否全为1,如果 全为1,则说明该键不在第0行(如图a所示);再让行线 输出第1行为0,其它行都为1,再读入列线信号,查看所 读入的列线信号是否为1,同样如果全为1,则说明该键不 在第1行(如图b);如是再查看第2行,第3行等等。当某 一行输出对应的列输入不全是1,则说明按键在该行,同 时,根据列输入中为0的位也能够确定该键所在的列,如 图d中所示,说明该按键在第3行第2列。
⑵非编码键盘 这种键盘只简单地提供按键的通或断状态, 而按键的识别、键值的确定等工作全靠软件完成,需要程 序控制扫描键盘,判断是否有键被按下、哪个键被按下。 非编码键盘硬件电路简单,成本低,但占用CPU的时间较 长,相当于用时间换取硬件电路的简单化。
非编码键盘又可分为独立式键盘和行列式键盘
独立式键盘是指其中每一个按键均有一条输入线与计算机 的接口相连,如图所示,每个按键的电路相互独立。结构 简单,连接方便,但缺点是有多少个按键,就需要多少条 输入线。这种键盘结构占用硬件资源较多,适合按键不多 的场合。
6.1.1 键盘的种类
根据键盘功能和结构形式的不同,通常把键盘分为两种基 本类型:编码键盘和非编码键盘。
⑴编码键盘 编码键盘的按键识别由专用的硬件编译码电路 实现,按下键后,键盘电路便能自动产生按键代码,如 ASCII码、EBCDIC码等。编码键盘使用方便,键盘码产 生速度快,占用CPU时间少,但对按键的检测与消除抖动 干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高, 价格较贵,在单片机系统中应用较少
一般情况下,正常的按键操作其开关动作时间(抖动 时间加上稳定时间)大约100ms左右,而抖动时间一般都 不超过10ms。
按键的抖动会造成按一次键产生的开关状态被CPU误 读几次,即按键一次按下或释放被错误地认为是多次操作。 为了使CPU能正确地读取按键状态,必须在按键闭合Βιβλιοθήκη Baidu断 开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件 方法和软件方法两种。
行列式键盘是指在键盘中 按键数量较多时,为了减 少I/O口的占用,按键按行 和列来排列,成为矩阵形 式,如图所示,又叫矩阵 式键盘。以4×4键盘为例, 这种方式可排列4×4=16 个按键,但与计算机的连 线线仅为4+4=8条。这种 结构适合按键较多的场合。
6.1.2 键盘的去抖动技术
按键的按下与释放一般是通过机械触点的闭合与断开来实 现,由于机械触点的弹性振动,按键在按下时不会马上稳 定地接通,在弹起时也不能立刻完全地断开,因而在按键 闭合和断开的瞬间均会出现一连串的抖动。如图所示:
为了发现按键按下,行线(输出信号线)输出全0信号, 列线通过上拉电阻连接到Vcc,若无按键按下,读列线 (输入信号线),读到的信号各位应该为全1(如图a所 示)。当有任何一个按键按下时,该按键将相应的行线与 列线短路,而行线输出全是0,所以列线读到的信号应该 至少有一个位不是1(如图b所示),哪一个位不是1,说 明该按键在哪一列。
2、行列式键盘的识别技术
行列式键盘识别闭合键的方法有两种:扫描法和线反转法。
(1)扫描法
扫描法中,为了提高效率,识别键盘中有无按键按下是由 行线送出全扫描字、列线读入行线状态来判断的,这叫做 按键发现。具体确定键盘中哪一个键按下可由行线逐行置 低电平后,检查列线输入状态来判断,这叫做按键识别。
扫描法按键发现的原理如下图所示: