欢迎来到天天文库
浏览记录
ID:48728986
大小:668.00 KB
页数:29页
时间:2020-01-20
《微机原理接口技术第5章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章人机交互接口键盘接口LED显示器接口CRT显示器接口其他人机交互接口(鼠标器、光笔、触摸屏、操纵杆、图形板等)5.1键盘接口⑴编码键盘。这种键盘内部能自动检测被按下的键,并提供与被按键对应的键码,如ASCII码、EBCDIC码等,以并行或串行方式送给CPU。它使用方便,接口简单。⑵非编码键盘。这种键盘只简单地提供键盘的行列矩阵,而按键的识别和键值的确定、输入等工作通过软件完成。这是目前可得到的最便宜的微机输入设备。1.去抖动去抖动的方法通常有两种:(1)软件延时法:当发现有键按下或释放时,软件延时一段时间再检测
2、。(2)硬件消抖动:在键开关与计算机接口之间加一个消抖动电路,如双稳电路、单稳电路(输出脉宽要大于抖动时间)、RC滤波电路等。由于硬件去抖动增加了电路的复杂性,每个按键都要一个去抖动电路,所以这种方法只适用于键数目较少的场合。在键数目较多时,大多采用软件延时法去抖动。2.防串键串键是指两个或两个以上按键同时按下,或一个键按下后没释放又按下另一个键时产生的问题。⑴双键锁定。⑵N键连锁。3.按键识别和键码产生⑴行扫描法。⑵行列交换法。5.1.1键盘接口基本功能常用的非编码键盘有线性键盘和矩阵键盘两种。线性键盘是指其中每一
3、个按键均有一条输入线送到计算机的接口。若有N个键盘,则需要N条输入线。矩阵键盘是指按键按行(i)和列(j)排列,这种方式可排列i×j个按键,但送往计算机的输入线仅为n=i+j条。5.1.2非编码键盘接口(1)扫描法扫描法通过依次查询键盘矩阵的枚一行线,然后读取列数据确定按键是否在本行,具体方法如下:首先使PA0=0然后读取PB端口,若PB=0FFH则表示行0没有按键按下,再使PA1=0再读取PB判断行2有无按键按下,依次扫描全部的行线。当PB读取的数据不为0FFH,则表示该扫描行有按键按下,则再确定相应的按键序号。(
4、2)行列交换法行列交换法也称行列行反转法,在识别闭合按键时,要将行线接一个并口,工作于输出方式,将列线也接一个并口,工作于输入方式,程序使CPU通过输出端口向各行线上全部送低电平,然后读入列线的值。如果某按键按下,则必定会使某一列线值为0。然后,程序再对两个并行端口进行方式设置,使行线工作在输入方式,列线工作在输出方式,并将刚才读到的列线值从列线所接的并口输出,再读取行线上的输入值,在闭合键所在的行线上的值必定为0。这样,当一个按键被按下时,必定可以读取一对唯一的行值和列值。5.1.3PC机键盘接口1.键盘的工作原理
5、①组合键:当按下Ctrl、Shift、Alt等控制键时,INT09H中断将其扫描码送入DOS参数区40:17H单元,在用户按下其他键时与40:17H单元内容组合为一个组合键。如处理Ctrl+C键时,INT09H中断首先将Ctrl键(扫描码为1DH)存入40:17H单元,随后再读取后续按键,若按键为C,则解释为Ctrl+C组合键。②乒乓键:PC机设置有乒乓键(如NumLock、CapsLock等)计数位,通过计数位的0、1来区分按键状态。若开机加电后未按过NumLock键或按偶数次,作为小键盘的光标控制/编辑方式。在这
6、种方式下若按下“7/Home”键时将解释为“Home”编辑键,送入键盘缓冲区的键代码为00,47H两字节;若开机加电后按过奇数次NumLock键,则小键盘为数字方式,在这种方式下若按下“7/Home”键时将解释为“7”数字,送入键盘缓冲区的键代码为37H,47H两字节。③换档键:若DOS参数区40:17H单元的数据为02(ShiftL按下)或01(ShiftR按下),BIOS程序将输入键解释为对应换档键。2.扫描码和ASCII码当在键盘上“按下”或“放开”一个键时,如键盘中断允许,就会在计算机上产生类型为09H的硬件
7、中断,CPU将控制转入BIOS键盘中断处理程序,以处理用户键盘操作情况。键盘处理程序从8255并行接口芯片的PA(I/O端口地址60H)读取一个字节的数据,如所读取数据D7=1,表示按键已放开(称为断码),如D7=0,表示键按下(通码),而数据的D6~D0则为按键的扫描码。3.键盘接口电路PC键盘接口电路如图5.2所示,它由串并转换芯片74LS322和一些触发器、门电路构成,数据通过8255的PA读入计算机。在ROMBIOS中,对键盘初始化和键盘中断的程序为:MOVAL,99HOUT63H,AL……MOVAL,0C8
8、HOUT61H,ALMOVAL,48HOUT61H,AL在IRQ1键盘中断服务程序中对扫描码进行读取和对键盘接口进行控制的程序为:KEY_IN:INAL,60H;读入键盘数据端口TEST,AL,80H;按键是否松开JNZKEY_IN;没松开,等待PUSHAXINAL,61H;读键盘状态端口(8255PB口)MOVAH,ALORAL,80H;置P
此文档下载收益归作者所有