- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
接通扫描码反映该键在键盘上的位置断开扫描码(接通扫描码最高位置1)=接通扫描码+80H+5V+5V+5V最简单的线性结构键盘每一个引脚连接一个键输入0/1反映健是否高低第8章人机交互设备接口+5V+5V控制线检测线常用的矩阵结构键盘每行连接一个引脚每列连接一个引脚利用控制线为低、
读取检测线来识别闭合键第8章人机交互设备接口1.扫描法先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合(通过检查列线电位实现)此后,再将第1行接地,然后检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出通过组合行线和列线可识别此刻按下的是哪一键第8章人机交互设备接口2.反转法首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口CPU通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入端口将刚才读得的列值从列线所接端口输出,再读取行线的输入值这样,当一个键被按下时,必定可以读得一对唯一的行值和列值3.抖动和重健问题机械按键存在抖动现象当按下或释放一个键时,往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态抖动的持续时间通常不大于10ms采用硬件消抖电路或软件延时方法解决重键指两个或多个键同时闭合出现重键时,读取的键值必然出现有一个以上的0是否给予识别和识别哪一个键第8章人机交互设备接口重健问题的处理简单情况:不予识别,认为是错误的按键通常情况:只承认先识别出来的键连锁法:直到所有键都释放后,读入下一个键巡回法:等被识别的键释放以后,就可以对其他闭合键作识别,而不必等待全部键释放正常的组合键:都识别出来第8章人机交互设备接口DBPB6PB7PAIRQ1T1P10P21P11P22P204GND1CLOCK2DATA5+5V3RESETPC机键盘系统板80488255A8259ALS322串并转换器键盘阵列按键选通PC机键盘的工作原理1.PC机键盘的工作过程键盘电路正常工作时不断地扫描键盘矩阵有按键,则确定按键位置之后以串行数据形式发送给系统板键盘接口电路键按下时,发送该键的接通扫描码键松开时,发送该键的断开扫描码若一直按住某键,则以拍发速率(每秒2~30次)连续发送该键的接通扫描码第8章人机交互设备接口2.键盘接口电路的工作过程接收一个串行形式字符以后,进行串并转换然后产生键盘中断IRQ1请求,等待读取键盘数据CPU响应中断,则进入09H键盘中断服务程序: ①读取键盘扫描码:用INAL,60H即可 ②响应键盘:系统使PB7=1 ③允许键盘工作:系统使PB7=0 ④处理键盘数据 ⑤给8259A中断结束EOI命令,中断返回3.PC机键盘中断服务程序09H号中断服务程序(kbint过程)完成常规的操作处理键盘数据:将获取的扫描码通过查表转换为对应的ASCII码送缓冲区。对于不能显示的按键,则转换为0,且不再送至缓冲区键盘I/O功能程序(kbget子程序)从缓冲区中读取转换后的ASCII码功能调用(主程序)循环显示键入的字符键盘缓冲区中断服务程序与子程序之间传递参数先进先出循环队列队列空进队列出队列队列满buffer0129队列始端队列末端
文档评论(0)