智能仪器

上传人:奇*** 文档编号:252901643 上传时间:2024-11-22 格式:PPT 页数:35 大小:299KB
返回 下载 相关 举报
智能仪器_第1页
第1页 / 共35页
智能仪器_第2页
第2页 / 共35页
智能仪器_第3页
第3页 / 共35页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 人机对话与数据通信,第一节 键盘,本节要点,1,按键的抖动干扰及其解决方法。,2,独立式键盘的结构原理及其接口电路。,3,矩阵式键盘的结构原理及其行扫描法。,4,编码器及其编码键盘接口电路。,引言,在计算机控制系统中,除了与生产过程进行信息传递的过程输入输出设备以外,还有与操作人员进行信息交换的常规输入设备和输出设备。,键盘,是一种最常用的输入设备,它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是输入数据与命令,查询和控制系统的工作状态,实现简单的人机对话。,键盘接口电路,可分为编码键盘和非编码键盘两种类型。,编码键盘,采用硬件编码电路来实现键的编码,每按下一个键,键盘便能自动产生按键代码。编码键盘主要有,BCD,码键盘、,ASCII,码键盘等类型。,非编码键盘,仅提供按键的通或断状态,按键代码的产生与识别由软件完成。,引言,编码键盘,的特点是使用方便,键盘码产生速度快,占用,CPU,时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高。而,非编码键盘,硬件电路简单,成本低,但占用,CPU,的时间较长。,1,键盘输入电路,主要知识点,:,1.1,键盘的抖动干扰,1.2,抖动干扰的消除,1.1,键盘的抖动干扰,由于机械触点的弹性振动,,按键,在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为,按键的抖动干扰,,其产生的波形如,图,1,所示,当按键按下时会产生,前沿抖动,,当按键弹起时会产生,后沿抖动,。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为,10,100ms,,,此为键处理设计时要考虑的一个重要参数。,图,1,按键的抖动干扰,(,弹跳波形),1.2,抖动干扰的消除,按键的抖动会造成按一次键产生的开关状态被,CPU,误读几次。为了使,CPU,能正确地读取按键状态,必须在按键闭合或断开时,消除产生的前沿或后沿抖动,去抖动的方法有软件方法,和硬件方法,两种。,1,软件方法,软件方法是指编制一段时间大于,100ms,的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。,2,硬件方法,硬件方法是设计一个,滤波延时电路,或,单,/,双稳态电路,等硬件电路来避开按键的抖动时间。,图,2,滤波延时消抖电路,图,2,是由,R,2,和,C,组成的滤波延时消抖电路,设置在按键,S,与,CPU,数据线,D,i,之间。按键,S,未按下时,电容两端电压为,0,,即与非门输入,V,i,为,0,,输出,V,o,为,1,。当,S,按下时,由于,C,两端电压不能突变,充电电压,V,i,在充电时间内未达到与非门的开启电压,门的输出,V,o,将不会改变,直到充电电压,V,i,大于门的开启电压时,与非门的输出,V,o,才变为,0,,这段充电延迟时间取决于,R,1,、,R,2,和,C,值的大小,电路设计时只要使之大于或等于,100ms,即可避开按键抖动的影响。同理,按键,S,断开时,即使出现抖动,由于,C,的放电延迟过程,也会消除按键抖动的影响。,图,3,双稳态消抖电路,1,2,图,3,工作过程如下:按键未按下时,,a=0,,,b=1,,,输出,Q=1,。,按键按下时,因按键的机械弹性作用的影响,使按键产生抖动。当开关没有稳定到达,b,端时,因与非门,2,输出为,0,反馈到与非门,1,的输入端,封锁了与非门,1,,双稳态电路的状态不会改变,输出保持为,1,,输出,Q,不会产生抖动的波形。当开关稳定到达,b,端时,因,a=1,,,b=0,,使,Q=0,,,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达,a,端时,因,Q=0,,,封锁了与非门,2,,双稳态电路的状态不变,输出,Q,保持不变,消除了后沿的抖动波形。当开关稳定到达,a,端时,因,a=0,,,b=0,,使,Q=1,,,双稳态电路状态发生翻转,输出,Q,重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。,2,非编码独立式键盘,主要知识点,:,2.1,查询法接口电路,2.2,中断法接口电路,2.1,查询法接口电路,现以,3,个按键为例,,图,4,即为,独立式键盘查询法接口电路,。按键,S,0,、,S,1,、,S,2,分别通过上拉电阻与,CPU,的数据线,D,0,、,D,1,、,D,2,相连,当按键,S,i,闭合时,数据线直接接地,因而,CPU,读入,D,i,=0,;,当按键,S,i,断开时,数据线通过上拉电阻接到正电源,因而,CPU,读入,D,i,=1,。,该接口电路实现的功能为:查询检测是否有键按下,如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。其程序流程如,图,5,所示。,采用,查询法,时,必须保证,CPU,每隔一定时间主动地去扫描按键一次,该扫描时间间隔应小于两次按键的时间间隔,否则会有按键不响应的情形。显然这种方式占用,CPU,时间比较多。,图,4,独立式键盘结构原理,图,5,独立式键盘查询法程序流程图,2.2,中断法接口电路,仍以,3,个按键为例,,图,6,是一个炉温控制系统的功能键分配图,,S,0,、,S,1,、,S,2,分别代表自动,/,手动切换、炉温参数显示和炉温参数打印功能。这是在上述查询法接口电路的基础上,再把按键,S,0,、,S,1,、,S,2,的数据输出线经过与非门和反相器后与,8255A,的选通输入信号,PC4,相连,,8255A,的,PC3,发出中断请求信号经中断控制器,8259A,与,CPU,的中断请求引脚相连,这是一种典型的,中断法键盘接口电路,。,图,6,独立式键盘中断法接口电路,工作过程如下:当,CPU,对,8255A,初始化(,8255A,的,A,口工作于方式,1,输入)后,,CPU,即执行主程序。当按下,S,0,键即表示要进入自动控制状态,此时与之相连的,I/O,口线呈现为低电平的同时,与非门输出为高电平,经反相器变为低电平,使,8255A,端口,A,的选通输入信号,PC4,有效,则,PA,0,PA,2,引脚接收并存入,3,个按键的“,0”,或“,1”,状态;,8255A,的,PC3,发出,INTRa,中断请求信号,经中断控制器,8259A,向,CPU,申请中断,,CPU,响应中断后,即转到中断服务程序中。中断服务程序依次查询按键的通断状态,当查询到是自动,/,手动(即,S,0,=0,),时,则转到自动,/,手动控制子程序的入口地址,从而使系统进入自动控制状态。如果没有键按下,则相应的,I/O,口线均为高电平,也不会产生中断信号,,CPU,继续运行主程序。,键盘中断服务子程序,与查询方式相似,在保护现场后,首先调用,100mS,延时子程序去除抖动,然后依次查键号,并转入键功能处理程序,最后恢复现场、中断返回。显然,查询顺序代表了按键的排队优先级。,采用中断法时,,CPU,对按键而言是被动方式,在无键按下时不占用,CPU,时间,因而,CPU,有更多的时间执行其他程序。,上述分析说明:独立式键盘接口电路简单灵活,软件结构简单,但每个按键必须占用一根,I/O,口线,在按键数量较多时,需要占用较多的,I/O,口线。比如,64,个按键,需要有,64,根线,不仅连线复杂,查询按键的时间也较长。故这种键盘电路只适合于按键数量比较少的小型控制系统或智能控制仪表中。,3,非编码矩阵式键盘,主要知识点,:,3.1,矩阵式键盘的结构组成,3.2,矩阵式键盘的程序设计,3.1,矩阵式键盘的结构组成,矩阵式键盘,又叫,行列式键盘,,是用,I/O,口线组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而是通过一个按键跨接接通。采用这种矩阵结构只需,M,根行输出线和,N,根列输入线,就可连接,MN,个按键。通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程序便可识别键值。,键盘与,CPU,的接口可采用并行端口,8255A,、,锁存器或缓冲器一类。,图,7,给出了一种,88,非编码矩阵式键盘的接口电路。行输出电路由行扫描锁存器,74LS273,、,反相器与行线,X,0,X,7,连接组成,列输入电路由三态缓冲器,74LS244,与列线,Y,0,Y,7,以及上拉电阻组成。,X,、,Y,线的每一个交叉处跨接一个键,其键值分别是十进制数的,01,,,02,,,,,64,。该键盘的接口地址为,PORT,1,。,图,7,矩阵式键盘接口电路,当键盘中无任何键按下时,所有的行线和列线被断开且相互独立,输入线,Y,0,Y,7,列都为高电平;当有任意一键按下时,则该键所在的行线与列线接通,因此,该列线的电平取决于该键所在的行线。基于此,产生了,“行扫描法”,与,“线反转法”,两种识别方法。,行扫描法,又称,逐行零扫描查询法,,即逐行输出行扫描信号“,0”,,使各行依次为低电平,然后分别读入列数据,检查此(低电平)行中是否有键按下。如果读得某列线为低电平,则表示此(低电平)行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则说明此,(,低电平,),行没有键按下。接着进行下一行的“,0”,行扫描与列读入,直到,8,行全部查完为止,若无键按下则返回。,有时为了快速判断键盘中是否有键按下,也可先将全部行线同时置为低电平,然后检测列线的电平状态,若所有列线均为高电平,则说明键盘中无键按下,立即返回;若要有一列的电平为低,则表示键盘中有键被控下,然后再如上那样进行逐行扫描。,线反转法,并 行 接 口,1,1,0,1,0,0,0,0,+5V,+5V,并 行 接 口,1,1,0,1,1,0,1,1,+5V,+5V,3.2,矩阵式键盘的程序设计,在计算机控制系统中,键盘扫描只是,CPU,工作的一部分。因此在设计键盘扫描程序时,必须要保证键盘操作的实时性,又不能占有,CPU,太多的时间,还要充分考虑到抖动干扰的消除。一般可根据情况选用,编程扫描,、,定时扫描,或,中断扫描,中的一种方式。,下面来考虑,行扫描程序,的编写与准备。逐行输出行扫描信号“,0”,,即是,CPU,依次使行线,X,0,X,7,为低电平,其输出数据代码分别为,01H,(,X,0,线)、,02H,(,X,1,线)、,04H,(,X,2,线)、,08H,(,X,3,线)、,10H,(,X,4,线)、,20H,(,X,5,线)、,40H,(,X,6,线)、,80H,(,X,7,线)。,为消除按键的抖动干扰,程序中需调用延时,100ms,的子程序,以便认定确有键按下再识别其键值。,求十进制键值的方法是分别设一个行值寄存器,CL,和列值寄存器,DL,。,接口电路中跨接在行列线上的,64,个键,由于同一列相邻行之间相隔数,8,,所以每进行一次“,0”,行扫描后,如果此行无键按下,则行寄存器,CL,应加,08,再进行下一行的“,0”,行扫描;若有键按下则不加,08,而转求列值,由于列值比键值,小,1,,如第一行第一列的键按下时列值,Y,0,(,即数据位,D,0,),0,比,01,键值,小,1,,所以列值寄存器,DL,应先加,1,,然后将读入的列值循环右移,判断进位位,CF,是否等零即有否键按下,若无键按下,再继续加,1,、右移、判断,重复上述过程直到有键按下。最后把行值和列值相加并进行,DAA,修正,即可得到所求的十进制键值。,例如跨接在,X2,行与,Y1,列的,18,键按下,其键值计算方法如下:第一次,“,0,”,行扫描,X0,行,无键按下,,CL=00+08=08,,,接下来扫,X1,行,仍无键按下,加,08,并进行,DAA,修正,,CL=08+08=16
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!