首页 单片机人机交互接口技术

单片机人机交互接口技术

举报
开通vip

单片机人机交互接口技术第3章人机交互接口技术本章要点:键盘接口技术LED显示接口技术LCD显示接口技术所谓人机交互接口,是指人与计算机之间建立联系、交换信息的输入/输出设备的接口。这些输入/输出设备主要有键盘、显示器和打印机等。3.1键盘接口技术3.1.1键盘设计需解决的几个问题编码键盘和非编码键盘编码键盘自动识别按下的键并产生相应代码,以并行或串行方式发送给CPU。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。第3章人机交互接口技术非编码键盘通过软件来确定按键并计算键值。这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支...

单片机人机交互接口技术
第3章人机交互接口技术本章要点:键盘接口技术LED显示接口技术LCD显示接口技术所谓人机交互接口,是指人与计算机之间建立联系、交换信息的输入/输出设备的接口。这些输入/输出设备主要有键盘、显示器和打印机等。3.1键盘接口技术3.1.1键盘设计需解决的几个问题编码键盘和非编码键盘编码键盘自动识别按下的键并产生相应代码,以并行或串行方式发送给CPU。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。第3章人机交互接口技术非编码键盘通过软件来确定按键并计算键值。这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用。1.按键的确认键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,若高电平 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示断开,则低电平表明键闭合。所以,通过电平状态(高或低)的检测,便可确定相应按键是否已被按下。第3章人机交互接口技术2.重键与连击的处理实际按键操作中,若无意中同时或先后按下两个以上的键,系统确认哪个键操作是有效的,完全由设计者的意志决定。如视按下时间最长者为有效键,或认为最先按下的键为当前按键,也可以将最后释放的键看成是输入键。不过微型计算机控制系统毕竟资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则(若系统设有复合键,当然应该另当别论)。有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,即重键的情形。为排除重键的影响,编制程序时,可以将键的释放作为按键的结束。等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。当我们按下某按键时.对应的功能便会通过键盘分析程序得以执行.如果在操作者释放按键之前,对应的功能得以多次执行,如同操作者在连续不断操作该键一样.这种现象就称为连击。连击现象可用日(a)所示流程图的软件方法来解决,当某按键被按下时,首先进行软件去抖处理,确认按键被按下后,厦执行对应的功能,执行完后不是立即返回,而是等待按键释放之后再返回.从而使一次按键只彼响应一次,避免连击现象。第3章人机交互接口技术例如在某些简易仪器中.因设汁的按键很少,没有安排0~9数字按键.这时R能设置一只调整按键,采用加回(或减1)的方法来调整有关参数,但当调整量比较大时就需要按多次按键,使操作很不方便.如果这时允许凋整按键存在连击现象,我们只要按往调整键不放.参数就会不停地加1(或减1),这就给操作者带来根大方便.具体实现软件流程图如图所示,程序中加入的延时环节是为了控制连击的速度。例如.延时取250rns。则连击速度为4次/s。第3章人机交互接口技术3.按键防抖动技术多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。由于机械触点的弹性作用,一个按键开关在闭合及断开的瞬间必然伴随有一连串的抖动。其波形如图3.1所示。抖动过程的长短由按键的机械特性决定,一般为10~20ms。第3章人机交互接口技术(1)硬件防抖技术通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。这种做法,工作可靠,且节省机时。下面介绍两种硬件防抖电路。①滤波防抖电路利用RC积分电路对干扰脉冲的吸收作用,由图可知,当键K未按下时,电容C两端电压均为0,非门输出为1。当K按下时,由于C两端电压不可能产生突变。尽管在触点接触过程中可能出现抖动,只要适当选取R1,R2和C值,即可保证电容C两端的充电电压波动不超过非门的开启电压(TTL为0.8V),非门的输出将维持高电平。同理,当触点K断开时,由于电容C经过电阻R2放电,C两端的放电电压波动不会超过门的关闭电压,因此,门的输出也不会改变。总之,只要R1,R2和C的时间常数选取得当,确保电容C由稳态电压充电到开启电压,或放电到关闭电压的延迟时间等于或大于10ms,该电路就能消除抖动的影响。第3章人机交互接口技术②双稳态防抖电路用两个与非门构成一个RS触发器,即可构成双稳态防抖电路。其原理电路,如图3.3所示。设按键K未按下时,键K与A端(ON)接通。此时,RS触发器的Q端为高电平1,致使Q反端为低电平0。此信号引至1#与非门的输入端,将其锁住,使其固定输出为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个防抖电路。因此,当键的个数比较多时,硬件防抖将无法胜任。在这种情况下,可以采用软件的方法进行防抖。当第一次检测到有键按下时,先用软件延时(10ms~20ms),而后再确认该键电平是否仍维持闭合状态电平。若保持闭合状态电平,则确认此键确已按下,从而消除了抖动的影响。第3章人机交互接口技术在上工作方式下,CPU经常处于空扫猫状态.为进一步提高CPU效率,可采用中断工作方式,即只有当键盘中有键被接下时,才执行扫描工作.3.1.2少量功能键的接口技术1.独立式按键接口第3章人机交互接口技术3.1.2少量功能键的接口技术1.独立式按键接口主程序:ORG0000HAJMPMAIN;上电后自动转向主程序ORG0003H;外部中断0入口地址AJMPKEYJMP;指向键处理中断服务程序ORG0100HMAIN:SETBIT0;选择边沿触发方式SETBEX0;允许外部中断0SETBEA;允许CPU中断MOVDPTR,#0EF00H;指向8155命令口MOVA,#02H;控制字写入命令寄存器MOVX@DPTR,A;HERE:AJMPHERE;模拟主程序中断服务程序:ORG0200;设循环次数KEYJMP:MOVR3,#08H;MOVDPTR,#0EF01H;指向8155A口MOVR4,#00H;计数寄存器清零MOVXA,@DPTR;读入状态字KYAD1:RRCA;JNCKYAD2;PA0=0,转向KYAD2INCR4;计数器加1DJNZR3,KYAD1RETIKYAD2:MOVDPTR,#JMPTABL;转到响应功能键入口地址表指针MOVA,R4;RLA;JMP@A+DPTR;JMPTABL:AJMPSB0AJMPSB1AJMPSB2AJMPSB3AJMPSB4AJMPSB5AJMPSB6AJMPSB7二、矩阵式键盘接口电路及程序当采用矩阵式键盘时,为了编程方便,应将矩阵键盘中的每一个键按一定的顺序编号,这种按顺序排列的编号叫顺序码,也称键值.为了求得短阵式键盘中被按下健的键值,常用的方法有行扫描法和线路反转祛。线路反转法识别键值的道度较快,但必须借助于可编程的通用接口芯片。本节介绍几种键盘接口电路及控制软件,一种是采用编程扫描工作方式的行扫描来识别键值,另一种是采用中断工作方式的线路反转法来识别键值。1.程控扫描法图3.6所示为4×8矩阵组成的32键盘与单片机的接口电路。在图3.6中,8255A端口C为行扫描口,工作于输出方式。端口A工作于输入方式,用来读入列值。图中I/O口地址必须满足CS=0,才能选中相应的寄存器。由此可知,8255控制寄存器、端口A、端口B、端口C的地址分别为8300H,8000H,8100H和8200H。(1)首先判断是否有键按下。其方法是使所有的行输出均为低电平,然后从端口A读入列值。如果没有键按下,则读入值为FFH,如果有键按下,则不为FFH。(2)去除键抖动。若有键按下,则延时10~20ms,再一次判断有无键按下。如果此时仍有键按下,则认为键盘上有一个键处于稳定闭合期。(3)若有键闭合,则求出闭合键的键值。求键值的方法是对键盘逐行扫描。PC0=0,然后读入列值,看其是否等于FFH。若等于FFH,说明该行无键按下。再对下一行进行扫描(即令PC1=0),如果列值不等于FFH,则说明该行有键按下,求出其键值。求键值时,要采用行值、列值两个寄存器(或存储器)。每扫描一行后,如无键按下,则行值寄存器加08H;若有键按下,行值寄存器保持原值,并转至求相应的列值。此时,首先将列值读数右移,每移位一次列值寄存器加1,直到有键按下(低电平)为止。最后将行值和列值相加,即得到键值(十六进制数)。例如,X2行Y3列键被按下,求其键值。第一次扫描X0行(PC0=0),无键按下,行值寄存器=00H+08H;再扫描Xl行,仍无键按下,再加08H,即行值寄存器=08H+08H=10H;第三次扫描X2行,此时发现有键按下(列值不等FFH),则行值寄存器=10H不变,转向求列值。具体做法是,将列值读数逐位右移,则行值寄存器=10H不变,转向求列值。具体做法是,将列值读数逐位右移,第一次移位,无键按下,列值寄存器=00H+01H=01H;第二次移位,无键按下;第三次移位仍无键按下,列值寄存器=01H+01H+01H=03H;当第四次移位时,发现有键按下(低电平),列值寄存器=03H,不变。将行值与列值相加,即行值寄存器的值加上列值寄存器=10H+03H=13H,故该键值为13H。2.定时扫描法定时扫描法方式是CPU每隔一定的时间(如10ms)对键盘扫描一遍。当发现有键被按下时,便进行读入键盘操作,以求出键值,并分别进行处理。定时时间间隔由单片机内部定时/计数器产生。这样可以减少计算机扫描键盘的时间,以减少CPU开销。具体做法是,当定时时间到期时,定时器自动输出一脉冲信号,使CPU转去执行扫描程序。这种方法扫描和求键值,以及区别功能键与数字键的方法与程序扫描法类似。但有一点需指出,即采用定时扫描法时,必须在其初始化程序中,对定时器写入相应的命令,使之能定时产生中断,从而定时完成扫描任务。为简化设计,在比较大的系统中,也可以每隔一定长度的程序设置一次键盘查询程序。3.中断扫描法无论是程控扫描法还是定时扫描法,都占用CPU的大量时间。不管有没有键入操作,CPU总要在一定的时间内进行扫描,这对于单片机控制系统和智能仪表都是很不利的。为进一步节省机时,还可以采用中断扫描法。这种办法的实质是,当没有键入操作时,CPU不对键盘进行扫描,以节省出大量时间对系统进行监控和数据处理。一旦键盘输入,即刻向CPU申请中断。CPU响应中断后,立刻转到响应的中断服务程序,对键盘进行扫描,判别键盘上闭合键的键号,并做相应的处理。如图3.9中所示,没有键按下时,所有列线均为1,经8输入与非门及反相器,输出一高电平到8031的INT引脚,此时不申请中断。一旦有键按下,则高电平通过键加到该行的二极管正端,使二极管导通。同时,该列线输出低电平,从而使INT0有效,向8031申请中断。8031响应后,即刻转至中断服务程序,查出键号,进一步做相应处理。扫描方法与程控扫描法相同。不同之处仅在于,此法仅在有键入操作时才对键盘扫描。若无键按下,CPU执行主程序或处理其他事务。这样可节省大量的空扫描时间,进而提高了计算机的工作效率。4.串行接口非编码键盘除了并行接口扫描键盘外,还可以设计成串行接口扫描键盘。其原理如图3.10所示。它由移位寄存器74LS164和24键(3×8)矩阵组成,0~F为16个数字键,10H~17H为8个功能键,各键的功能由用户定义。74LS164是一个14脚的移位寄存器集成电路芯片。由8031串行接口的RxD端输出列扫描信号到74LS164的1,2引脚,由QA~QH输出至键盘。键闭合信号从端口P3.3,P3.4,P3.5输入到8031芯片。由8031的TXD引脚输出移位时钟脉冲到74LS164的时钟输入端(CLK)。因8031复位后,内部串行口寄存器SCON为全0,亦即已设置为方式0,因此不必再进行工作方式设置。串行扫描子程序的基本思路与前边介绍的并行扫描子程序的设计思想相似,只是扫描时的列信号由串行移位寄存器74LS164输出,然后逐个进行检查。键值的计算方法也是相同的。2线路反转法这种方法需要采用可编程的输人/输出按口8255,8155等,若采用单片机,也可直按与单片机的I/O口相接。下面以4X4健盘电路为例来说明线路反转法的原理。整个识别过程分两步进行。第一步.先从P1的高四位输出0电平,从P1的低四位读取键盘的状态。若图中某键(设E键)被按下,此时从P1的低四位输人的代码为1101,显然其中的‘0”对应着被按键所代表的列。但只找到列的位置还不能识别键位,还必须找到它的所在行。第二步进行线路反转,即从P1的低四位输出“0”电平,从P1高四位读取键盘的状态,此时从P1高四位输人的结果应为0111,显然,其中的“0”对应着枝按下键所代表的行位置。再将两次读入的数据合成一个代码01111101,此代码完全确定被按键的位置。通常我们把这种代码称为特征码。特汪码离傲性很大.不便干前转处理,这可通过查键码转换表找到对应的键值(顺序码)。2线路反转法2线路反转法2线路反转法89C52:单片机。OSC:晶振,在本例中选择12MHz的立式晶振。C1、c2:晶振电路的起振电容,22pF。KEY:4乘4行列键盘。COM:上拉电阻排。电路原理和器件选择P1.0—P1.3作键盘的行扫描输出线,P1.4一P1.7作列检测输入线8155A的命令/状态寄存器、端口A,B.C的地址分别为0300H,0301H,0302H和0303H.3.1.4键盘特殊功能的处理1.键盘锁定技术在计算机控制系统或智能化仪器中,有时为了防止无意按键给系统带来破坏性的影响,常常在键盘上加锁。键盘锁定的方法有很多种,最常用的有两种方法。一种是设置一个标志状态位,使键盘在进行扫描之前,先对标志状态位进行分析。如果是“锁定”状态(0),不进行键处理;若为“打开”状态(1),便继续进行键扫描及分析。另一种方法是,将“锁”加在键值锁存器的控制信号上,通过改变控制信号的状态来控制键盘的“锁定”及“打开”。这两种方法的原理图,如图3.12所示。当“锁”处于水平位置时,8031的P1.0位被置于“0”状态,而当“锁”为竖直位置时,P1.0位为“1”状态。需要进行键译码时,首先检查P1.0位的状态,若其为“0”,则不进行译码。系统调试时,如果需要用键盘,首先将“锁”打开(即放在竖直位置),用起来非常方便。2.双功能键和多功能键的设计使少量键具有更多控制功能的另一条途径是采用复合键3.2LED显示接口技术常用的显示器件有:①显示和记录仪表,②CRT显示终端,③LED或LCD显示器,④大屏幕显示器。3.2.1LED数码管的结构及显示原理1.LED显示器的结构及原理(1)动态显示动态显示,就是微型计算机定时地对显示器件扫描。在这种方法中,显示器件分时工作,每次只能有一个器件显示。但由于人的视觉有暂留现象,所以,仍感觉所有的器件都在显示,如许多单片机的开发系统及仿真器上的6位显示器即采用这类显示方法。此种显示的优点是使用硬件少,因而价格低,线路简单。但它占用机时长,只要微型计算机不执行显示程序,就立刻停止显示。由此可见,这种显示将使计算机的开销增大,所以,在以工业控制为主的控制系统中应用较少。(2)静态显示静态显示,是由微型计算机一次输出显示模型后,就能保持该显示结果,直到下次发送新的显示模型为止。这种显示占用机时少,显示可靠,因而在工业过程控制中得到了广泛的应用。这种显示方法的缺点是使用元件多,且线路比较复杂。但是,随着大规模集成电路的发展,目前已经研制出具有多种功能的显示器件,例如锁存器、译码器、驱动器、显示器四位一体的显示器件,用起来比较方便。3.2.2LED动态显示接口技术1.并行接口动态显示电路及程序设计用8155的PA口输出显示码,PB口用来输出位选码设显示缓冲区的地址为30~35H,若将各位从左至右依次进行显示,每个数码管连续显1ms,显示完最后一位数后,再重复上述过程,这样,人们看到的是6位数“同时”显示。图3.16中的74LS07为6位驱动器,它为LED提供一定的驱动电流。由于一74LS07只有6个驱动器,故7段数码管需要两片进行驱动。8155的PB口经75452缓冲器/驱动器反相后,作为位控信号。75452内部包括两个缓冲器/驱动器,它们各有两个输入端。所以,实际上是两个双输入与非门电路,这就需要3片75452为6位数码管提供位选信号。2.串行接口的动态显示电路及程序设计3.2.3LED静态显示接口技术1.并行接口静态显示电路及程序设计在图3.17所示的显示系统中,从左到右各显示位的地址依次为4000H,4100H,4200H,4300H,4400H,4500H。3.2.4硬件译码显示电路如图3.21中所示,用P1口的低4位输出BCD码,经74LS49(共阴极)转换成7段显示码输出。用74LS138译码器来输出位选信号,改变C,B,A的输入状态,即可输出不同的位选信号(低电平有效),使被选中的位显示。然后经过一段延时,再重复上述过程,输出另一位数据,如此不断循环,即可显示8位数据。
本文档为【单片机人机交互接口技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
xxj7584
暂无简介~
格式:ppt
大小:4MB
软件:PowerPoint
页数:0
分类:建造师考试
上传时间:2020-03-19
浏览量:0