《第五章键盘及其接口技术优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第五章键盘及其接口技术优秀PPT.ppt(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章 键盘及其接口技术第一页,本课件共有77页本章主要内容 引言引言5.1 5.1 键盘输入电路键盘输入电路5.2 5.2 非编码独立式键盘非编码独立式键盘5.3 5.3 非编码矩阵式键盘非编码矩阵式键盘5.4 5.4 编码键盘编码键盘 本章小结本章小结 思考题思考题第二页,本课件共有77页引言 在计算机控制系统中,除了与生产过程进行信息传递的过在计算机控制系统中,除了与生产过程进行信息传递的过程输入输出设备以外,还有与程输入输出设备以外,还有与操作人员进行信息交换的常规输入操作人员进行信息交换的常规输入设备和输出设备设备和输出设备。键盘是一种最常用的输入设备键盘是一种最常用的输入设备,它是
2、一组按键的集合,从它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是功能上可分为数字键和功能键两种,作用是输入数据与命令,输入数据与命令,查询和控制系统的工作状态查询和控制系统的工作状态,实现简单的人机对话。,实现简单的人机对话。键盘接口电路可分为编码键盘和非编码键盘键盘接口电路可分为编码键盘和非编码键盘两种类型。两种类型。编码键盘采用硬件编码电路来实现键的编码,每按下一个键,编码键盘采用硬件编码电路来实现键的编码,每按下一个键,键盘便能自动产生按键代码。编码键盘主要有键盘便能自动产生按键代码。编码键盘主要有BCDBCD码键盘、码键盘、ASCIIASCII码键盘等类型。非编码键盘仅提
3、供按键的通或断状态码键盘等类型。非编码键盘仅提供按键的通或断状态,按键按键代码的产生与识别由软件完成。代码的产生与识别由软件完成。第三页,本课件共有77页引言 编码键盘的特点编码键盘的特点是使用方便,键盘码产生速度是使用方便,键盘码产生速度快,占用快,占用CPUCPU时间少,但对按键的检测与消除抖动时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,因而硬件电路复杂、干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高。而成本高。而非编码键盘非编码键盘硬件电路简单,成本低,硬件电路简单,成本低,但占用但占用CPUCPU的时间较长。的时间较长。第四页,本课件共有77页5.1 键盘输入电路主要
4、知识点主要知识点:5.1.1 5.1.1 键盘的抖动干扰键盘的抖动干扰5.1.2 5.1.2 抖动干扰的消除抖动干扰的消除第五页,本课件共有77页 5.1.1 键盘的抖动干扰 由由于于机机械械触触点点的的弹弹性性振振动动,按按键键在在按按下下时时不不会会马马上上稳稳定定地地接接通通而而在在弹弹起起时时也也不不能能一一下下子子完完全全地地断断开开,因因而而在在按按键键闭闭合合和和断断开开的的瞬瞬间间均均会会出出现现一一连连串串的的抖抖动动,这这称称为为按按键键的的抖抖动动干干扰扰,其其产产生生的的波波形形如如图图5-15-1所所示示,当当按按键键按按下下时时会会产产生生前前沿沿抖抖动动,当当按按
5、键键弹弹起起时时会会产产生生后后沿沿抖抖动动。这这是是所所有有机机械械触触点点式式按按键键在在状状态态输输出出时时的的共共性性问问题题,抖抖动动的的时时间间长长短短取取决决于于按按键键的的机机械械特特性性与与操操作作状状态态,一一般般为为1010100ms100ms,此为键处理设计时要考虑的一个重要参数。,此为键处理设计时要考虑的一个重要参数。第六页,本课件共有77页链接动画链接动画第七页,本课件共有77页 5.1.2 抖动干扰的消除 按按键键的的抖抖动动会会造造成成按按一一次次键键产产生生的的开开关关状状态态被被CPUCPU误误读读几几次次。为为了了使使CPUCPU能能正正确确地地读读取取按
6、按键键状状态态,必必须须在在按按键键闭闭合合或或断断开开时时,消消除除产产生生的的前前沿沿或或后后沿沿抖抖动动,去去抖抖动动的方法有的方法有硬件方法硬件方法和和软件方法软件方法两种。两种。1 1硬件方法硬件方法 硬件方法是设计一个滤波延时电路或单稳态电路等硬件方法是设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。图硬件电路来避开按键的抖动时间。图5-25-2是由是由R R2 2和和C C组成组成的滤波延时消抖电路,设置在按键的滤波延时消抖电路,设置在按键S S与与CPUCPU数据线数据线D Di i之间。之间。按键按键S S未按下时,电容两端电压为未按下时,电容两端电压为0 0
7、,即与非门输入,即与非门输入V Vi i为为0 0,输出,输出V Vo o为为1 1。当。当S S按下时,由于按下时,由于C C两端电压不能突变,充两端电压不能突变,充电电压电电压V Vi i在充电时间内未达到与非门的开启电压,门的输出在充电时间内未达到与非门的开启电压,门的输出V Vo o将不会改变,直到充电电压将不会改变,直到充电电压V Vi i大于门的开启电压时,与大于门的开启电压时,与非门的输出非门的输出V Vo o才变为才变为0 0,第八页,本课件共有77页图图5-2 5-2 滤波延时消抖电路滤波延时消抖电路链接动画链接动画第九页,本课件共有77页 这这段段充充电电延延迟迟时时间间取
8、取决决于于R R1 1、R R2 2和和C C值值的的大大小小,电电路路设设计计时时只只要要使使之之大大于于或或等等于于100ms100ms即即可可避避开开按按键键抖抖动动的的影影响响。同同理理,按按键键S S断断开开时时,即使出现抖动,由于即使出现抖动,由于C C的放电延迟过程,也会消除按键抖动的影响的放电延迟过程,也会消除按键抖动的影响 图图中中,V V1 1是是未未施施加加滤滤波波电电路路含含有有前前沿沿抖抖动动、后后沿沿抖抖动动的的波波形形,V V2 2是是施加滤波电路后消除抖动的波形。施加滤波电路后消除抖动的波形。2 2软件方法软件方法 软软件件方方法法是是指指编编制制一一段段时时间
9、间大大于于100ms100ms的的延延时时程程序序,在在第第一一次次检检测测到到有有键键按按下下时时,执执行行这这段段延延时时子子程程序序使使键键的的前前沿沿抖抖动动消消失失后后再再检检测测该该键键状状态态,如如果果该该键键仍仍保保持持闭闭合合状状态态电电平平,则则确确认认为为该该键键已已稳稳定定按按下下,否否则则无无键键按按下下,从从而而消消除除了了抖抖动动的的影影响响。同同理理,在在检检测测到到按按键键释释放放后后,也也同同样样要要延延迟迟一一段段时时间间,以以消消除除后后沿沿抖抖动,然后转入对该按键的处理。动,然后转入对该按键的处理。第十页,本课件共有77页 5.2 非编码独立式键盘主要
10、知识点主要知识点:5.2.1 5.2.1 查询法接口电路查询法接口电路5.2.2 5.2.2 中断法接口电路中断法接口电路第十一页,本课件共有77页5.2.1 查询法接口电路 现现以以3 3个个按按键键为为例例,图图5-35-3即即为为独独立立式式键键盘盘查查询询法法接接口口电电路路。按按键键S S0 0、S S1 1、S S2 2分分别别通通过过上上拉拉电电阻阻与与CPUCPU的的数数据据线线D D0 0、D D1 1、D D2 2相相连连,当当按按键键S Si i闭闭合合时时,数数据据线线直直接接接接地地,因因而而CPUCPU读读入入D Di i=0=0;当当按按键键S Si i断断开开时
11、时,数数据据线线通通过过上上拉电阻接到正电源,因而拉电阻接到正电源,因而CPUCPU读入读入D Di i=1=1。该接口电路实现的功能为:查询检测是否有键按下,该接口电路实现的功能为:查询检测是否有键按下,如有键闭合,则消除抖动,再判断键号,然后转入相如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。其程序流程如图应的键处理。其程序流程如图5-45-4所示。所示。采用采用查询法查询法时,必须保证时,必须保证CPU每隔一定时间主动地去每隔一定时间主动地去扫描按键一次,扫描按键一次,该扫描时间间隔应小于两次按键的时间间该扫描时间间隔应小于两次按键的时间间隔,隔,否则会有按键不响应的情形。显
12、然这种方式占用否则会有按键不响应的情形。显然这种方式占用CPU时间比较多。时间比较多。第十二页,本课件共有77页图图5-3 5-3 独立式键盘结构原理独立式键盘结构原理第十三页,本课件共有77页图图5-45-4独立式键盘查询法程序流程图独立式键盘查询法程序流程图链接动画链接动画第十四页,本课件共有77页 5.2.2中断法接口电路n仍仍以以3 3个个按按键键为为例例,图图5-55-5是是一一个个炉炉温温控控制制系系统统的的功功能能键键分分配配图图,S S0 0、S S1 1、S S2 2分分别别代代表表自自动动/手手动动切切换换、炉炉温温参参数数显显示和炉温参数打印功能。示和炉温参数打印功能。n
13、在在上上述述查查询询法法接接口口电电路路的的基基础础上上,再再把把按按键键S S0 0、S S1 1、S S2 2的的数数据据输输出出线线经经过过与与非非门门和和反反相相器器后后与与8255A8255A的的选选通通输输入入信信号号PC4PC4相相连连,8255A8255A的的PC3PC3发发出出中中断断请请求求信信号号经经中中断断控控制制器器8259A8259A与与CPUCPU的的中中断断请请求求引引脚脚相相连连,这这是是一一种种典典型型的的中中断断法法键键盘接口电路盘接口电路。第十五页,本课件共有77页图图5-55-5独立式键盘中断法接口电路独立式键盘中断法接口电路链接动画链接动画第十六页,
14、本课件共有77页u当当CPUCPU对对8255A8255A初始化(初始化(8255A8255A的的A A口工作于方式口工作于方式1 1 输入)后,输入)后,CPUCPU即执行主程序。即执行主程序。u当按下当按下S S0 0键即表示要进入自动控制状态,此时与之相连键即表示要进入自动控制状态,此时与之相连的的I/OI/O口线呈现为低电平的同时,与非门输出为高电平,口线呈现为低电平的同时,与非门输出为高电平,经反相器变为低电平,使经反相器变为低电平,使8255A8255A端口端口A A的选通输入信号的选通输入信号PC4 PC4 有有效,则效,则PAPA0 0PAPA2 2引脚接收并存入引脚接收并存入
15、3 3个按键的个按键的“0 0”或或“1 1”状态,状态,当恢复成高电平后,经当恢复成高电平后,经T TSITSIT时间,时间,8255A8255A的的PC3PC3发出发出INTRaINTRa中断请中断请求信号,经中断控制器求信号,经中断控制器8259A8259A向向CPUCPU申请中断,申请中断,CPUCPU响应中断后,响应中断后,即转到中断服务程序中。即转到中断服务程序中。u中断服务程序依次查询按键的通断状态,当查询到是自动中断服务程序依次查询按键的通断状态,当查询到是自动/手动(即手动(即S S0 0=0=0)时,则转到自动)时,则转到自动/手动控制子程序的入口地址,手动控制子程序的入口
16、地址,从而使系统进入自动控制状态。从而使系统进入自动控制状态。u如果没有键按下,则相应的如果没有键按下,则相应的I/OI/O口线均为高电平,也不会产口线均为高电平,也不会产生中断信号,生中断信号,CPUCPU继续运行主程序。继续运行主程序。工作过程工作过程第十七页,本课件共有77页 键盘中断服务子程序,与查询方式相似,在保护现场键盘中断服务子程序,与查询方式相似,在保护现场后,首先调用后,首先调用100mS100mS延时子程序去除抖动,然后依次查键号,延时子程序去除抖动,然后依次查键号,并转入键功能处理程序,最后恢复现场、中断返回。显然,查询并转入键功能处理程序,最后恢复现场、中断返回。显然,
17、查询顺序代表了按键的排队优先级。顺序代表了按键的排队优先级。采采用用中中断断法法时时,CPUCPU对对按按键键而而言言是是被被动动方方式式,在在无无键键按按下下时时不占用不占用CPUCPU时间,因而时间,因而CPUCPU有更多的时间执行其他程序。有更多的时间执行其他程序。上上述述分分析析说说明明:独独立立式式键键盘盘接接口口电电路路简简单单灵灵活活,软软件件结结构构简简单单,但但每每个个按按键键必必须须占占用用一一根根I/OI/O口口线线,在在按按键键数数量量较较多多时时,需需要要占占用用较较多多的的I/OI/O口口线线。比比如如6464个个按按键键,需需要要有有6464根根线线,不不仅仅连连
18、线线复复杂杂,查查询询按按键键的的时时间间也也较较长长。故故这这种种键键盘盘电电路路只适合于按键数量比较少的小型控制系统或智能控制仪表中。只适合于按键数量比较少的小型控制系统或智能控制仪表中。第十八页,本课件共有77页 5.3 非编码矩阵式键盘主要知识点主要知识点:5.3.1 5.3.1 矩阵式键盘的结构组成矩阵式键盘的结构组成5.3.2 5.3.2 矩阵式键盘的程序设计矩阵式键盘的程序设计第十九页,本课件共有77页5.3.1 矩阵式键盘的结构组成v 矩矩阵阵式式键键盘盘又又叫叫行行列列式式键键盘盘,是是用用I/O口口线线组组成成的的行行、列列矩矩阵阵结结构构,在在每每根根行行线线与与列列线线
19、的的交交叉叉处处,二二线线不不直直接接相相通通而而是是通通过过一一个个按按键键跨跨接接接接通通。采采用用这这种种矩矩阵阵结结构构只只需需M根根行行输输出出线线和和N根根列列输输入入线线,就就可可连连接接MN个个按按键键。通通过过键键盘盘扫扫描描程程序序的的行行输输出出与与列列输输入入就就可可确认按键的状态,再通过键盘处理程序便可识别键值。确认按键的状态,再通过键盘处理程序便可识别键值。v 键键盘盘与与CPU的的接接口口可可采采用用并并行行端端口口8255A、锁锁存存器器或或缓缓冲冲器器一一类类。图图5-6给给出出了了一一种种88非非编编码码矩矩阵阵式式键键盘盘的的接接口口电电路路。行行输输出出
20、电电路路由由行行扫扫描描锁锁存存器器74LS273、反反相相器器与与行行线线X0X7连连接接组组成成,列列输输入入电电路路由由三三态态缓缓冲冲器器74LS244与与列列线线Y0Y7以以及及上上拉拉电电阻阻组组成成。X、Y线线的的每每一一个个交交叉叉处处跨跨接接一一个个键键,其其键键值值分分别别是是十十进进制制数数的的01,02,64。该该键键盘盘的的接接口口地地址址为为PORT1。第二十页,本课件共有77页n图图5-6 5-6 矩阵式键盘接口电路矩阵式键盘接口电路链接动画链接动画第二十一页,本课件共有77页v 当当键键盘盘中中无无任任何何键键按按下下时时,所所有有的的行行线线和和列列线线被被断
21、断开开且且相相互互独独立立,输输入入线线Y Y0 0Y Y7 7列列都都为为高高电电平平;当当有有任任意意一一键键按按下下时时,则则该该键键所所在在的的行行线线与与列列线线接接通通,因因此此,该该列列线线的的电电平平取取决决于于该该键键所所在在的的行行线线。基于此,产生了基于此,产生了“行扫描法行扫描法”与与“线反转法线反转法”两种识别方法。两种识别方法。v 行扫描法行扫描法又称逐行零扫描查询法,即逐行输出行扫描信号又称逐行零扫描查询法,即逐行输出行扫描信号“0 0”,使各行依次为低电平,然后分别读入列数据,检查此(低电平),使各行依次为低电平,然后分别读入列数据,检查此(低电平)行中是否有键
22、按下。如果读得某列线为低电平,则表示此(低电平)行中是否有键按下。如果读得某列线为低电平,则表示此(低电平)行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为低然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则说明此电平,则说明此(低电平低电平)行没有键按下。接着进行下一行的行没有键按下。接着进行下一行的“0 0”行扫描与列读入,直到行扫描与列读入,直到8 8行全部查完为止,若无键按下则返回行全部查完为止,若无键按下则返回。v 有时为了快速判断键盘中是否有键
23、按下,也可先将全部行有时为了快速判断键盘中是否有键按下,也可先将全部行线同时置为低电平,然后检测列线的电平状态,若所有列线均线同时置为低电平,然后检测列线的电平状态,若所有列线均为高电平,则说明键盘中无键按下,立即返回;若要有一列的为高电平,则说明键盘中无键按下,立即返回;若要有一列的电平为低,则表示键盘中有键被控下,然后再如上那样进行逐电平为低,则表示键盘中有键被控下,然后再如上那样进行逐行扫描。行扫描。第二十二页,本课件共有77页5.3.2 矩阵式键盘的程序设计n 在在计计算算机机控控制制系系统统中中,键键盘盘扫扫描描只只是是 CPUCPU工工作作的的一一部部分分。因因此此在在设设计计键键
24、盘盘扫扫描描程程序序时时,必必须须要要保保证证键键盘盘操操作作的的实实时时性性,又又不不能能占占有有CPUCPU太太多多的的时时间间,还还要要充充分分考考虑虑到到抖抖动动干干扰扰的的消消除除。一一般般可可根根据据情情况况选选用用编编程程扫扫描描、定定时时扫扫描描或或中断扫描中的一种方式。中断扫描中的一种方式。n 下下面面来来考考虑虑扫扫描描程程序序的的编编写写与与准准备备。逐逐行行输输出出行行扫扫描描信信号号“0 0”,即即是是CPUCPU依依次次使使行行线线X X0 0X X7 7为为低低电电平平,其其输输出出数数据据代代码码分分别别为为01H01H(X X0 0线线)、02H02H(X X
25、1 1线线)、04H04H(X X2 2线线)、08H08H(X X3 3线线)、10H10H(X X4 4线线)、20H20H(X X5 5线线)、40H40H(X X6 6线线)、80H80H(X X7 7线)线)。第二十三页,本课件共有77页u 为为消消除除按按键键的的抖抖动动干干扰扰,程程序序中中需需调调用用延延时时100ms100ms的的子子程程序序,以以便认定确有键按下再识别其便认定确有键按下再识别其键值键值。u 求求十十进进制制键键值值的的方方法法是是分分别别设设一一个个行行值值寄寄存存器器CLCL和和列列值值寄寄存存器器DLDL。v接接口口电电路路中中跨跨接接在在行行列列线线上
26、上的的6464个个键键,由由于于同同一一列列相相邻邻行行之之间间相相隔隔数数8 8,所所以以每每进进行行一一次次“0 0”行行扫扫描描后后,如如果果此此行行无无键键按按下下,则则行行寄寄存存器器CLCL应加应加0808再进行下一行的再进行下一行的“0 0”行扫描;行扫描;v若若有有键键按按下下则则不不加加0808而而转转求求列列值值,由由于于列列值值比比键键值值小小1 1,如如第第一一行行第第一一列列的的键键按按下下时时列列值值Y Y0 0(即即数数据据位位D D0 0)0 0比比0101键键值值小小1 1,所所以以列列值值寄寄存存器器DLDL应应先先加加1 1,然然后后将将读读入入的的列列值
27、值循循环环右右移移,判判断断进进位位位位CFCF是是否否等等零零即即有有否否键键按按下下,若若无无键键按按下下,再再继继续续加加1 1、右右移移、判判断断,重复上述过程直到有键按下。重复上述过程直到有键按下。v最最后后把把行行值值和和列列值值相相加加并并进进行行DAADAA修修正正,即即可可得得到到所所求求的的十十进进制制键键值。值。(计算过程中所有数为压缩型计算过程中所有数为压缩型BCDBCD码码)(0,8,16,24,32,40,48,56)(1,2,3,4,5,6,7,8)第二十四页,本课件共有77页v 例如跨接在例如跨接在X2X2行与行与Y1Y1列的列的1818键按下,其键值计算方法如
28、键按下,其键值计算方法如下:第一次下:第一次“0 0”行扫描行扫描X0X0行,无键按下,行,无键按下,CL=00+08=08CL=00+08=08,接下来扫接下来扫X1X1行,仍无键按下,加行,仍无键按下,加0808并进行并进行DAADAA修正,修正,CL=08+08=16CL=08+08=16,再扫,再扫X2X2行,此时读入的列值不等于行,此时读入的列值不等于FFHFFH即表即表明有键按下,则明有键按下,则CL=16CL=16不变。然后转求列值,列值寄存不变。然后转求列值,列值寄存器先加器先加1 1再把读入的列值循环移位,由于按下的键在再把读入的列值循环移位,由于按下的键在Y1Y1列,列,所
29、以需移位两次才能移出所以需移位两次才能移出0 0值,因此值,因此DL=02DL=02,然后将行值寄,然后将行值寄存器与列值寄存器之值相加,并进行存器与列值寄存器之值相加,并进行DAADAA修正,得到修正,得到AL=CL+DL=16+02=18AL=CL+DL=16+02=18,即键值为,即键值为1818。v 该键盘扫描及键处理程序流程图如图该键盘扫描及键处理程序流程图如图5-75-7所示,其程序如所示,其程序如下:下:第二十五页,本课件共有77页n图图 5-7 5-7 矩阵式键盘扫描及键处理程序流程图矩阵式键盘扫描及键处理程序流程图链接动画链接动画第二十六页,本课件共有77页程序设计MOV A
30、LMOV AL,0 0MOV CLMOV CL,AL AL ;行值寄存器;行值寄存器CLCL和列值寄存器和列值寄存器DLDL清零清零MOV DLMOV DL,ALALMOV ALMOV AL,0FFH0FFHOUT PORT1OUT PORT1,AL AL ;使所有行线为低电平;使所有行线为低电平IN ALIN AL,PORT1 PORT1 ;读列键值读列键值CMP ALCMP AL,0FFH 0FFH ;检查是否有键按下检查是否有键按下JZ DONE JZ DONE ;无键按下转返回无键按下转返回CALL DELAY CALL DELAY ;有键按下调延时有键按下调延时100mA100mA子
31、程序子程序MOV ALMOV AL,0FFH0FFHOUT PORT1OUT PORT1,AL AL IN ALIN AL,PORT1 PORT1 ;重复上述扫描重复上述扫描,再次确认是否有键按下再次确认是否有键按下KEY:第二十七页,本课件共有77页n CMP ALCMP AL,0FFH0FFHn JZ DONE JZ DONE ;无键按下转返回无键按下转返回n MOV AHMOV AH,08 08 ;行数行数0808送计数器送计数器AHAHn MOV BL MOV BL,01H 01H ;行扫描初值行扫描初值(即即X0X0线线)送送BLBLKEY1KEY1:MOV ALMOV AL,BLB
32、Ln OUT PORT1 OUT PORT1,AL AL ;输出使某行为低电平;输出使某行为低电平n IN ALIN AL,PORT1 PORT1 ;读入列值读入列值n CMP ALCMP AL,0FFH 0FFH ;判断此行是否有键按下判断此行是否有键按下n JNZ KEY2 JNZ KEY2 ;有键按下转有键按下转KEY2KEY2n MOV AL MOV AL,CLCLn ADD AL ADD AL,08 08 ;无键按下无键按下,行值寄存器加行值寄存器加0808n DAA DAA n MOV CL MOV CL,ALAL第二十八页,本课件共有77页nRCL BLRCL BL,1 1 ;求
33、下一行为低电平的输出代码求下一行为低电平的输出代码 nDEC AH DEC AH ;判判8 8行全扫描完了吗行全扫描完了吗nJNZ KEY1 JNZ KEY1 ;若未完转若未完转KEY1KEY1,继续扫描下一行,继续扫描下一行nDONEDONE:IRET IRET ;若全完则返回若全完则返回nKEY2KEY2:INC DL INC DL ;列值寄存器加列值寄存器加1(1(与键值对应与键值对应)nRCR ALRCR AL,1 1 ;列值循环右移列值循环右移1 1位位nJC KEY2 JC KEY2 ;判断该列是否为判断该列是否为1 1,为,为1 1则无键按下继查下一列则无键按下继查下一列nMOV
34、 ALMOV AL,CL CL ;为为0 0则有键按下则有键按下,获得列值获得列值nADD ALADD AL,DLDLnDAA DAA ;求键值;求键值nMOV BUFFMOV BUFF,AL AL ;键值送缓冲单元暂存;键值送缓冲单元暂存nJMP KEYADR JMP KEYADR ;转查找功能键的入口地址;转查找功能键的入口地址nEND KEY END KEY ;第二十九页,本课件共有77页n 对于键盘处理程序来说,求得键值并不是目的。如果该按对于键盘处理程序来说,求得键值并不是目的。如果该按键是键是数字键数字键,就应把该键值直接送到显示缓冲区进行键值的,就应把该键值直接送到显示缓冲区进行
35、键值的数字显示;如果该按键是数字显示;如果该按键是功能键功能键,则应找到该键子程序的入,则应找到该键子程序的入口地址,转而去执行该键的功能命令。口地址,转而去执行该键的功能命令。第三十页,本课件共有77页主要内容n编码键盘n电脑键盘原理n电脑鼠标原理第三十一页,本课件共有77页5.4 编码键盘主要知识点主要知识点:n5.4.15.4.1 二进制编码器二进制编码器n5.4.2 5.4.2 编码键盘接口电路编码键盘接口电路第三十二页,本课件共有77页n图图5-8 5-8 二进制编码键盘接口电路二进制编码键盘接口电路第三十三页,本课件共有77页5.4.1 二进制编码器具有优先级的二进制具有优先级的二
36、进制8位编码器位编码器CD4532B 的真值表见表的真值表见表5-1。n表示芯片优先级的输入允许端表示芯片优先级的输入允许端Ei为为“0”时,无论编码器的信号输入时,无论编码器的信号输入I7 I0为何状态,编码器输出全为为何状态,编码器输出全为“0”,芯片处于屏蔽状态,同时,芯片处于屏蔽状态,同时Eo为为“0”,也屏蔽下一级芯片,也屏蔽下一级芯片,工作状态端工作状态端GS均为均为“0”;n当输入允许端当输入允许端Ei为为“1”时,且编码器的信号输入时,且编码器的信号输入I7 I0全为全为“0”时,编码输出也为时,编码输出也为“0”,但输出允许端,但输出允许端Eo为为“1”,表明此编码器,表明此
37、编码器输入端无键按下,却允许优先级低的相邻编码器处于编码状态;工作输入端无键按下,却允许优先级低的相邻编码器处于编码状态;工作状态端状态端GS均为均为“0”。n 该芯片的该芯片的8个输入端当中,个输入端当中,I0的优先级最高,的优先级最高,I7的优先级最低。当有多个的优先级最低。当有多个键按下时,优先级高的被选中,同时自动屏蔽优先级低的各输入端和下一级键按下时,优先级高的被选中,同时自动屏蔽优先级低的各输入端和下一级芯片芯片(使使Eo端为端为“0”)。比如处于正常编码状态即比如处于正常编码状态即Ei为为“1”时,当时,当I0端为端为“1”,其余输入端无论为,其余输入端无论为“1”或或“0”,编
38、码输出均为二进制,编码输出均为二进制000,同,同时时GS端为端为“1”,Eo端为端为“0”;而当;而当I0端为端为“0”,当,当I1端为端为“1”时,时,编码输出则为二进制编码输出则为二进制001;以此类推,输入端的键值号与二进制以此类推,输入端的键值号与二进制编码输出一一对应。编码输出一一对应。第三十四页,本课件共有77页n表表5-1 二进制二进制8位编码器位编码器CD4532B真值表真值表状状 态态 输输 入入编编 码码 输输 出出EiI7I6I5I4I3I2I1I0GSO2O1 O0 Eo0000001000000000000111100001101001011001010011000
39、1011011000011000110000011010110000001110011000000011110第三十五页,本课件共有77页5.4.2 编码键盘接口电路n图图5-8是一种采用两片是一种采用两片CD4532B构成的构成的16个按键的二进个按键的二进制编码接口电路。制编码接口电路。n其中由于其中由于U1的的Eo作为作为U2的的Ei,所以按键,所以按键S0的优先级最高,的优先级最高,S15的优先级最低。的优先级最低。nU1和和U2的输出的输出O2 O0经或门经或门A3 A1输出,以形成低输出,以形成低3位编码位编码D2 D0。而最高位而最高位D3则由则由U2的的GS产生产生,当按键当按
40、键S8 S15中有一个闭合时,其输出为中有一个闭合时,其输出为“1”。n从而从而S0 S15中任意一个键被按下,由编码位中任意一个键被按下,由编码位D3 D0均可输出相应的均可输出相应的4位二进制码。位二进制码。第三十六页,本课件共有77页n图图5-8 5-8 二进制编码键盘接口电路二进制编码键盘接口电路第三十七页,本课件共有77页消除键盘按下时产生的抖动干扰消除键盘按下时产生的抖动干扰n为了消除键盘按下时产生的抖动干扰,该接口电路还设置了为了消除键盘按下时产生的抖动干扰,该接口电路还设置了由由与非门与非门B1、B2、电阻电阻R2、电容电容C2组成的组成的单稳电路单稳电路和由和由或门或门A4、
41、电阻电阻R1、电容电容C1组成的组成的延时电路延时电路n电路中电路中E、F、G、H和和I这五点的波形如图这五点的波形如图5-9所示。所示。n由于由于U1和和U2的的GS接或门接或门A4的输入端,所以当按下某键的输入端,所以当按下某键时,时,A4 为高电平,其输出经为高电平,其输出经R1和和C1 延时后使延时后使G点也为点也为高电位,作为与非门高电位,作为与非门B3 的输入之一。的输入之一。n同时,同时,U2的输出信号的输出信号Eo 触发单稳触发单稳(B1和和B2),在暂稳态持,在暂稳态持续时间续时间T内,其输出内,其输出F点为低电位,也作为与非门点为低电位,也作为与非门B3的输的输入之一。入之
42、一。第三十八页,本课件共有77页l由于暂稳态期间由于暂稳态期间(T)E点电位的变化(即按键的抖动)对点电位的变化(即按键的抖动)对其输出其输出F点电位无影响,所以此时不论点电位无影响,所以此时不论G点电位如何,与点电位如何,与非门非门B3 输出输出(H点点)均为高电位。均为高电位。l当暂稳延时结束,当暂稳延时结束,F点变为高电位,而点变为高电位,而G点仍为高电位点仍为高电位(即即按键仍闭合按键仍闭合),使得,使得H点变为低电位,并保持到点变为低电位,并保持到G点变为点变为低电位为止低电位为止(即按键断开即按键断开)。l也就是说,按下也就是说,按下S0 S15 中任意一个按键,就会在暂稳中任意一
43、个按键,就会在暂稳态期间态期间T之后之后(恰好避开抖动时间)产生选通脉冲(恰好避开抖动时间)产生选通脉冲(H点)点)或或STB(I点),作为向点),作为向CPU申请中断的信号,以便通知申请中断的信号,以便通知CPU读取稳定的按键编码读取稳定的按键编码D3D0。第三十九页,本课件共有77页图图 5-9 5-9 消抖电路波形图消抖电路波形图G=0按键断开第四十页,本课件共有77页电脑键盘工作原理 nIBM PC键盘分为键盘分为XT,AT,PS/2,USB键盘.n PC系列机使用的键盘有系列机使用的键盘有83键、键、84键、键、101键、键、102键和键和104键等多种键等多种。XT和AT机的标准键
44、盘分别为83键和84键,而286机以上微机的键盘则 普遍使用101键、102键或104键。n83键键盘键键盘是最早使用的一种PC机键盘,其键号与扫描码是一致的。这个扫描码被直接发送到主机箱并转换为 ASCII码;n84/101/102/104键键盘:键键盘:高档PC机的出现,键盘功能和按键数目得到了扩充,键盘排列也发生了变化,产生的扫描码与83键键盘的扫描码不同。为了保持PC系列微 机的向上兼容性,需将84/101/102/104键键盘的扫描码转换为83键键盘的扫描码,一般将前者叫作行列位置扫描码,而将后者称为系统扫描码。显 然,对于83键键盘,这两种扫描码是相同的。第四十一页,本课件共有77
45、页PC/XT PC/ATnIBMPC/XT是美国国际商用机器公司(IBM)与1983年3月8日发布了PC的改进型,因为它带有一个容量为10MB的硬盘,这是硬盘第一次成为PC的标准配置。XT预装了DOS2.0系统,支持“文件”的概念并以“目录树”存储文件nIBMPC/AT是美国国际商用机器公司(IBM)于1984年发布、1987年停产的个人电脑产品,正式名称是IBM5170PCAT。“AT”是英文“先进技术”(AdvancedTechnology)的缩写,这是由于它引入了标准的16位ISA总线以及采用了当时最新的英特尔80286处理器。第四十二页,本课件共有77页第四十三页,本课件共有77页第四
46、十四页,本课件共有77页编码形式n键盘是由一组排列成矩阵方式的按键开关组成,通常有编码键盘和非编码键盘两种类型nIBM系列个人微型计算机的键盘属于非编码类型。微机键盘主要由单片 机、译码器和键开关矩阵三大部分组成。其中单片机采用了INTEL8048单片微处理器控制,这是一个40引脚的芯片,内部集成了8位 CPU、10248位的ROM、648位的RAM、8位的定时器计数器等器件。n第四十五页,本课件共有77页与老式的编码式键盘相比,非编码键盘:n结构要简单许多,省略了复杂的编码电路和蜘蛛网似的走线n而且更重要的是,由于非编码式键盘将按键结构和输出键码分离,所以当需要制造不同键位排列的键盘时,不需
47、要重新设计键盘线路,而只要将控制电路中的键位排列表格重新刷新就可以了。n例如在德文键盘上,子母“Y”和“Z”的位置是互调的,那么如果要把一条英文键盘生产线改造成德文键盘生产线,什么都不用改变,只须在控制芯片中刷进一个新的排列表,将“上层导线1下 层导线4”的位置写作“Y”,“Z”字也作同样处理就行了,显然比重新布线要简单了很多。这也就是为什么非编码式键盘大行其道的原因。第四十六页,本课件共有77页n由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由 键盘内部的单片机通过译码器来实现的。单片机在周期性扫描行、列的同时,读回扫描信号线结果单片机在周期性扫描行、列的同时,读回扫描信号线
48、结果,判断是否有键按下,并计算按键的位置以获得扫描码。n当有键按 下时,键盘分两次将位置扫描码发送到键盘接口;按下一次,叫接通扫描码接通扫描码;释放时再发一次,叫断开扫断开扫描码描码。因此可以用硬件或软件的方法对键盘的行、列分别进 行扫视,去查找按下的键,输出扫描位置码,通过查表转换为ASCII码返回。第四十七页,本课件共有77页扫描识别按键n键盘键盘 在扫描过程中,在扫描过程中,7位计数器循环计数位计数器循环计数。当高5位(D6一D2)状态为全“0”时,经译码器在0列线上输出一个“0”,其余均为“1”;而计数器的低二位(D1D0)通过4选1多路选择器控制03行的扫描。计数器计一个数则扫描一行
49、,计4个数全部行线扫描一遍,同时由计数器内部向D2进位,使另一列线1 变低,行线再扫描一遍。只要没有键按下,多路选择器就一直输出高电平,则时钟一直使计数器循环计数,对键盘轮番扫描。当有一个键被按下时,若扫描到该键所 在的行和列时,多路选择器就会输出一个低电平,去封锁时钟门,使计数器停止计数。这时计数器输出的数据就是被按键的位置码(即扫描码)。n第四十八页,本课件共有77页n8048利用程序 读取这个键码后,在最高位添上一个“0”,组成一个字节的数据,然后从P22引脚以串行方式输出。在8048检测到键按下后,还要继续对键盘扫描检测,以 发现该键是否释放。n当检测到释放时,8048在刚才读出的7位
50、位置码的前面(最高位)加上一个“1”,作为“释放扫描码”,也从 P22引脚串行送出去,以便和“按下扫描码”相区别。送出“释放扫描码”的目的是为识别组合键和上、下档键提供条件。第四十九页,本课件共有77页n同时,主机还向键盘发送控制信号,主机CPU响应键盘中断请求时,通过外围接口芯片8255A一5的PA口读取键盘扫描码并进行相应转换处理和暂存;通过PB口的PB6和PB7来控制键盘接口工作。第五十页,本课件共有77页机械键盘、薄膜接触式键盘、电容键盘。n老机械键盘存在着开关容易损坏、易污染、易老化的缺点,现已基本淘汰。n现在基本上用薄膜接触式键盘n电容键盘在可靠性上比前者有质的飞跃,使用寿命较长,