版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 人机交互接口技术,本章要点: 键盘接口技术 LED显示接口技术 LCD显示接口技术,所谓人机交互接口,是指人与计算机之间建立联系、交换信息的 输入/输出设备的接口。,这些输入/输出设备主要有键盘、显示器和打印机等。,3.1 键盘接口技术 3.1.1 键盘设计需解决的几个问题,编码键盘和非编码键盘,编码键盘,自动识别按下的键并产生相应代码,以并行或串行方式发送给CPU。,它使用方便,接口简单,响应速度快,但需要专用的硬件电路。,第3章 人机交互接口技术,非编码键盘,通过软件来确定按键并计算键值。这种方法虽然没有编码键 盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用。,1. 按键
2、的确认,键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,若高电平表示断开,则低电平表明键闭合。所以,通过电平状态(高或低)的检测,便可确定相应按键是否已被按下。,第3章 人机交互接口技术,2. 重键与连击的处理 实际按键操作中,若无意中同时或先后按下两个以上的键,系统确认哪个键操作是有效的,完全由设计者的意志决定。如视按下时间最长者为有效键,或认为最先按下的键为当前按键,也可以将最后释放的键看成是输入键。不过微型计算机控制系统毕竟资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按
3、下无效的原则(若系统设有复合键,当然应该另当别论)。 有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,即重键的情形。为排除重键的影响,编制程序时,可以将键的释放作为按键的结束。等键释放电平后 再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。,当我们按下某按键时对应的功能便会通过键盘分析程序得以执行如果在操作者释放按键之前,对应的功能得以多次执行,如同操作者在连续不断操作该键一样这种现象就称为连击。连击现象可用日(a)所示流程图的软件方法来解决,当某按键被按下时,首先进行软件去抖处理,确认按键被按下后,厦执行对应的功能,执行完后不是立即返回,而是等待按键释放之后再
4、返回从而使一次按键只彼响应一次,避免连击现象。,第3章 人机交互接口技术,例如在某些简易仪器中因设汁的按键很少,没有安排09数字按键这时R能设置一只调整按键,采用加回(或减1)的方法来调整有关参数,但当调整量比较大时就需要按多次按键,使操作很不方便如果这时允许凋整按键存在连击现象,我们只要按往调整键不放参数就会不停地加1(或减 1),这就给操作者带来根大方便具体实现软件流程图如图所示,程序中加入的延时环节是为了控制连击的速度。例如延时取250rns。则连击速度为4次s。,第3章 人机交互接口技术,3. 按键防抖动技术,多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完
5、成高、低电平的切换。由于机械触点的弹性作用,一个按键开关在闭合及断开的瞬间必然伴随有一连串的抖动。其波形如图3.1所示。抖动过程的长短由按键的机械特性决定,一般为1020 ms。,第3章 人机交互接口技术,(1)硬件防抖技术 通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。这种做法,工作可靠,且节省机时。下面介绍两种硬件防抖电路。 滤波防抖电路 利用RC积分电路对干扰脉冲的吸收作用,,由图可知,当键K未按下时,电容C两端电压均为0,非门输出为1。当K按下时, 由于C两端电压不可能产生突变。尽管在触点接触过程中可能出现抖动,只要适当选取R1,R2 和C值,即可保证电容C两端的充电电压波
6、动不超过非门的开启电压(TTL为0.8V),非门的输出将维持高电平。同理,当触点K断开时,由于电容C经过电阻R2 放电,C两端的放电电压波动不会超过门的关闭电压,因此,门的输出也不会改变。总之,只要R1,R2和C的时间常数选取得当,确保电容C由稳态电压充电到开启电压,或放电到关闭电压的延迟时间等于或大于10 ms,该电路就能消除抖动的影响。,第3章 人机交互接口技术, 双稳态防抖电路 用两个与非门构成一个RS触发器,即可构成双稳态防抖电路。其原理电路,如图3.3所示。,设按键K未按下时,键K与A端(ON)接通。此时,RS触发器的Q端为高电平1, 致使Q反端为低电平0。此信号引至1# 与非门的输
7、入端,将其锁住,使其固定输出为1。每当开关K被按动时,由于机械开关具有弹性,在A端将形成一连串的抖动波形。而Q端在K到达B端之前始终为0。这时,无论A处出现怎样的电压(0或1),Q端恒为1。只有当K到达B端,使B端为0,RS触发器产生翻转,Q反变为高电平,导致Q降低为0,并锁住门2,使其输出恒为1。此时,即使B处出现抖动波形,也不会影响Q端的输出,从而保证Q端恒为0。同理,在释放键的过程中,只要一接通A,Q端就升至为1。只要开关K不再与B端接触,双稳态电路的输出将维持不变。,第3章 人机交互接口技术,(2)软件防抖方法 如前所述,若采用硬件防抖电路,则N个键就必须配有N个防抖电路。因此,当键的
8、个数比较多时,硬件防抖将无法胜任。在这种情况下,可以采用软件的方法进行防抖。当第一次检测到有键按下时,先用软件延时(10ms20ms),而后再确认该键电平是否仍维持闭合状态电平。若保持闭合状态电平,则确认此键确已按下,从而消除了抖动的影响。,第3章 人机交互接口技术,在上工作方式下,CPU经常处于空扫猫状态为进一步提高CPU效率,可采用中断工作方式,即只有当键盘中有键被接下时,才执行扫描工作,3.1.2 少量功能键的接口技术1. 独立式按键接口,第3章 人机交互接口技术,3.1.2 少量功能键的接口技术,1. 独立式按键接口,主程序: ORG 0000H AJMP MAIN ;上电后自动转向主
9、程序 ORG 0003H ;外部中断0入口地址 AJMP KEYJMP ;指向键处理中断服务程序 ORG 0100H MAIN: SETB IT0;选择边沿触发方式 SETB EX0 ;允许外部中断0 SETB EA ;允许CPU中断 MOV DPTR,#0EF00H ;指向8155命令口 MOV A,#02H;控制字写入命令寄存器 MOVX DPTR,A; HERE:AJMP HERE;模拟主程序 中断服务程序: ORG 0200 ;设循环次数 KEYJMP:MOV R3,#08H; MOV DPTR,#0EF01H ;指向8155A口 MOV R4,#00H ;计数寄存器清零 MOVX A
10、,DPTR;读入状态字,KYAD1: RRC A; JNC KYAD2; PA0=0,转向KYAD2 INC R4;计数器加1 DJNZ R3,KYAD1 RETI KYAD2: MOVDPTR,#JMPTABL;转到响应功能键入口地址表指针 MOV A,R4; RL A; JMP A+ DPTR; JMPTABL: AJMP SB0 AJMP SB1 AJMP SB2 AJMP SB3 AJMP SB4 AJMP SB5 AJMP SB6 AJMP SB7,二、矩阵式键盘接口电路及程序,当采用矩阵式键盘时,为了编程方便,应将矩阵键盘中的每一个键按一定的顺序编号,这种按顺序排列的编号叫顺序码,
11、也称键值为了求得短阵式键盘中被按下健的键值,常用的方法有行扫描法和线路反转祛。 线路反转法识别键值的道度较快,但必须借助于可编程的通用接口芯片。 本节介绍几种键盘接口电路及控制软件,一种是采用编程扫描工作方式的行扫描来识别键值,另一种是采用中断工作方式的线路反转法来识别键值。,1程控扫描法,图3.6所示为48矩阵组成的32键盘与单片机的接口电路。,在图3.6中,8255A端口C为行扫描口,工作于输出方式。端口A工作于输入方式,用来读入列值。图中I/O口地址必须满足CS=0,才能选中相应的寄存器。由此可知,8255控制寄存器、端口A、端口B、端口C的地址分别为8300H,8000H,8100H和
12、8200H。,(1)首先判断是否有键按下。其方法是使所有的行输出均为低电平,然后从端口A读入列值。如果没有键按下,则读入值为FFH,如果有键按下,则不为FFH。,(2)去除键抖动。若有键按下,则延时1020ms,再一次判断有无键按下。如果此时仍有键按下,则认为键盘上有一个键处于稳定闭合期。,(3)若有键闭合,则求出闭合键的键值。求键值的方法是对键盘逐行扫描。,PC0=0,然后读入列值,看其是否等于FFH。若等于FFH,说明该行无键按下。 再对下一行进行扫描(即令PC1=0),如果列值不等于FFH,则说明该行有键按下,求出其键值。 求键值时,要采用行值、列值两个寄存器(或存储器)。每扫描一行后,
13、如无键按下,则行值寄存器加08H;若有键按下,行值寄存器保持原值,并转至求相应的列值。 此时,首先将列值读数右移,每移位一次列值寄存器加1,直到有键按下(低电平)为止。最后将行值和列值相加,即得到键值(十六进制数)。例如,X2 行Y3 列键被按下,求其键值。第一次扫描X0 行(PC0=0),无键按下,行值寄存器=00H+08H;再扫描Xl 行,仍无键按下,再加08H,即行值寄存器=08H+08H=10H;第三次扫描X2 行,此时发现有键按下(列值不等FFH), 则行值寄存器=10H不变,转向求列值。具体做法是,将列值读数逐位右移,则行值寄存器=10H不变,转向求列值。具体做法是,将列值读数逐位
14、右移,第一次移位,无键按下,列值寄存器=00H+01H=01H;第二次移位,无键按下;第三次移位仍无键按下,列值寄存器=01H+01H+01H=03H;当第四次移位时,发现有键按下(低电平),列值寄存器=03H,不变。将行值与列值相加,即行值寄存器的值加上列值寄存器=10H+03H=13H,故该键值为13H。,2. 定时扫描法 定时扫描法方式是CPU每隔一定的时间(如10ms)对键盘扫描一遍。当发现有键被按下时,便进行读入键盘操作,以求出键值,并分别进行处理。定时时间间隔由单片机内部定时/计数器产生。这样可以减少计算机扫描键盘的时间,以减少CPU开销。具体做法是,当定时时间到期时,定时器自动输
15、出一脉冲信号,使CPU转去执行扫描程序。这种方法扫描和求键值,以及区别功能键与数字键的方法与程序扫描法类似。但有一点需指出,即采用定时扫描法时,必须在其初始化程序中,对定时器写入相应的命令,使之能定时产生中断,从而定时完成扫描任务。为简化设计,在比较大的系统中,也可以每隔一定长度的程序设置一次键盘查询程序。,3. 中断扫描法 无论是程控扫描法还是定时扫描法,都占用CPU的大量时间。不管有没有键入操作,CPU总要在一定的时间内进行扫描,这对于单片机控制系统和智能仪表都是很不利的。为进一步节省机时,还可以采用中断扫描法。这种办法的实质是,当没有键入操作时,CPU不对键盘进行扫描,以节省出大量时间对
16、系统进行监控和数据处理。一旦键盘输入,即刻向CPU申请中断。CPU响应中断后,立刻转到响应的中断服务程序,对键盘进行扫描,判别键盘上闭合键的键号,并做相应的处理。,如图3.9中所示,没有键按下时,所有列线均为1,经8输入与非门及反相器,输出一高电平到8031的 INT引脚,此时不申请中断。一旦有键按下,则高电平通过键加到该行的二极管正端,使二极管导通。同时,该列线输出低电平,从而使 INT0有效,向8031申请中断。8031响应后,即刻转至中断服务程序,查出键号,进一步做相应处理。扫描方法与程控扫描法相同。不同之处仅在于,此法仅在有键入操作时才对键盘扫描。若无键按下,CPU执行主程序或处理其他
17、事务。这样可节省大量的空扫描时间,进而提高了计算机的工作效率。,4. 串行接口非编码键盘 除了并行接口扫描键盘外,还可以设计成串行接口扫描键盘。其原理如图3.10所示。 它由移位寄存器74LS164和24键(38)矩阵组成,0F为16个数字键,10H17H为8个功能键,各键的功能由用户定义。74LS164是一个14脚的移位寄存器集成电路芯片。由8031串行接口的RxD端输出列扫描信号到74LS164的1,2引脚,由QAQH 输出至键盘。键闭合信号从端口P3.3,P3.4,P3.5输入到8031芯片。由8031的TXD引脚输出移位时钟脉冲到74LS164的时钟输入端(CLK)。,因8031复位后
18、,内部串行口寄存器SCON为全0,亦即已设置为方式0,因此不必再 进行工作方式设置。串行扫描子程序的基本思路与前边介绍的并行扫描子程序的设计思想相似,只是扫描时的列信号由串行移位寄存器74LS164输出,然后逐个进行检查。键值的计算方法也是相同的。,2线路反转法,这种方法需要采用可编程的输人输出按口 8255,8155等,若采用单片机,也可直按与单片机的IO口相接。下面以4X4健盘电路为例来说明线路反转法的原理。,整个识别过程分两步进行。 第一步先从P1的高四位输出0电平,从P1的低四位读取键盘的状态。若图中某键(设E键)被按下,此时从P1的低四位输人的代码为1101,显然其中的0”对应着被按
19、键所代表的列。但只找到列的位置还不能识别键位,还必须找到它的所在行。 第二步进行线路反转,即从P1的低四位输出“0”电平,从P1高四位读取键盘的状态,此时从P1高四位输人的结果应为0111,显然,其中的“0”对应着枝按下键所代表的行位置。再将两次读入的数据合成一个代码01111101,此代码完全确定被按键的位置。通常我们把这种代码称为特征码。特汪码离傲性很大不便干前转处理,这可通过查键码转换表找到对应的键值(顺序码)。,2线路反转法,2线路反转法,2线路反转法,89C52:单片机。 OSC:晶振,在本例中选择12MHz的 立式晶振。 C1、c2:晶振电路的起振电容,22pF。 KEY:4乘4行
20、列键盘。 COM:上拉电阻排。,电路原理和器件选择,P10P13作键盘的行扫描输出线,P14一P1.7作列检测输入线,8155A的命令状态寄存器、端口A,BC的地址分别为0300H,0301H,0302H和0303H.,3.1.4 键盘特殊功能的处理 1. 键盘锁定技术,在计算机控制系统或智能化仪器中,有时为了防止无意按键给系统带来破坏性的影响, 常常在键盘上加锁。 键盘锁定的方法有很多种,最常用的有两种方法。 一种是设置一个标志状态位,使键盘在进行扫描之前,先对标志状态位进行分析。如果是“锁定”状态(0),不进行键处理;若为“打开”状态(1),便继续进行键扫描及分析。 另一种方法是,将“锁”
21、加在键值锁存器的控制信号上,通过改变控制信号的状态来控制键盘的“锁定”及“打开”。这两种方法的原理图,如图3.12所示。,当“锁”处于水平位置时,8031的 P1.0位被置于“0”状态,而当“锁”为竖直位置时,P1.0位为“1”状态。需要进行键译码时,首先检查P1.0位的状态,若其为“0”,则不进行译码。系统调试时,如果需要用键盘,首先将“锁”打开(即放在竖直位置),用起来非常方便。,2. 双功能键和多功能键的设计,使少量键具有更多控制功能的另一条途径是采用复合键,3.2 LED显示接口技术,常用的显示器件有: 显示和记录仪表, CRT显示终端, LED或LCD显示器, 大屏幕显示器。,3.2
22、.1 LED数码管的结构及显示原理,1LED显示器的结构及原理,(1)动态显示 动态显示,就是微型计算机定时地对显示器件扫描。在这种方法中,显示器件分时工作,每次只能有一个器件显示。但由于人的视觉有暂留现象,所以,仍感觉所有的器件都在显示,如许多单片机的开发系统及仿真器上的6位显示器即采用这类显示方法。此种显示的优点是使用硬件少,因而价格低,线路简单。但它占用机时长,只要微型计算机不执行显示程序,就立刻停止显示。由此可见,这种显示将使计算机的开销增大,所以,在以工业控制为主的 控制系统中应用较少。,(2)静态显示 静态显示,是由微型计算机一次输出显示模型后,就能保持该显示结果,直到下次发送新的显示模型为止
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T-CAMDI 006-2025 输液输血器具用橡胶注射件
- 《鲜花送英烈》教案-2025-2026学年赣美版小学美术五年级下册
- 九年级上册期中检测卷(第13-16章)(原卷版+解析)
- 九年级下册化学教案5篇
- 二年级上家长会语文发言稿(12篇)
- 放样工作方案
- 2026年金融业风险评估体系降本增效项目分析方案
- 传统风俗挖掘工作方案
- 浙江杭州市萧山部分学校2025-2026学年第二学期八年级期中学情调研数学试卷(含简单答案)
- 书香校园建设方案创新
- DBJT15-82-2021 蒸压加气混凝土砌块自承重墙体技术规程
- (2025年标准)厂房协议委托租赁协议书
- 2024年长沙市口腔医院招聘真题
- 2025年云南省住院医师规范化培训结业理论考核(中医骨伤科)历年参考题库含答案详解(5卷)
- 地铁行车调度管理办法
- T/CECS 10210-2022给水用胶圈电熔双密封聚乙烯复合管材及管件
- 院前急救指南
- 骨干教师考试试题及答案
- 艺术品销售佣金协议范文
- 抖音工会合同协议
- 2024年二级注册结构工程师专业考试试题及答案(下午卷)
评论
0/150
提交评论