资源描述:
《第09章 信用信息管理机构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1第8章人机交互设备接口主要内容:1、键盘接口2、CRT显示器接口重点内容:各种设备接口键盘是微机系统最常使用的输入设备小键盘:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的输入独立键盘:通过5芯电缆与PC微机主机连接第8章人机交互设备接口+5V+5V+5V最简单的线性结构键盘每一个引脚连接一个键输入0/1反映健是否高低第8章人机交互设备接口+5V+5V控制线检测线常用的矩阵结构键盘每行连接一个引脚每列连接一个引脚利用控制线为低、读取检测线来识别闭合键第8章人机交互设备接口1.扫描法
2、先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合(通过检查列线电位实现)此后,再将第1行接地,然后检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出通过组合行线和列线可识别此刻按下的是哪一键第8章人机交互设备接口第1段:是否有键按下key1:moval,00movdx,rowportoutdx,al;使所有行线为低电平movdx,colportinal,dx;读取列值cmpal,0ffh;判定是否有列线为低电平jzkey1;无
3、闭合键,循环等待calldelay;有,延迟20ms清除抖动键盘扫描程序第8章人机交互设备接口第2段:识别按键(扫描)movcx,8;行数送CXmovah,0feh;扫描初值送AHkey2:moval,ahmovdx,rowportoutdx,al;输出行值(扫描值)movdx,colportinal,dx;读进列值键盘扫描程序第8章人机交互设备接口第2段:识别按键(判断)cmpal,0ffh;判断有无低电平的列线jnzkey3;有,则转下一步处理rolah,1;无,则移位扫描值loopkey2;准备下一行
4、扫描jmpkey1;所有行都没有键按下,则返回继续检测key3:……;此时,al=列值,ah=行值键盘扫描程序第8章人机交互设备接口2.反转法首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口CPU通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入端口将刚才读得的列值从列线所接端口输出,再读取行线的输入值这样,当一个键被按下时,必定可以读得一对唯一的行值和列值条件:连接行线和列线的接
5、口电路必须支持动态改变输入、输出方式第1段:是否有键按下……;设置行线接输出端口,列线接输入端口key2:moval,00movdx,rowportoutdx,al;设置行线全为低movdx,colportinal,dx;读取列值cmpal,0ffhjzkey2;无闭合键,循环等待pushax;有闭合键,保存列值pushax键盘扫描程序第8章人机交互设备接口第2段:识别按键(反转法)……;设置行线接输入端口,列线接输出端movdx,colportpopaxoutdx,al;输出列值movdx,rowport
6、inal,dx;读取行值popbx;组合行列值movah,bl;此时,al=行值,ah=列值键盘扫描程序第8章人机交互设备接口行列值表和键代码表;键盘的行列值表tabledw0fefeh;键0的行列值(键值)dw0fdfeh;键1的行列值dw0fbfeh;键2的行列值……;其他键的行列值;键盘的键代码表chardb……;键0的代码值db……;键1的代码值……;其他键的代码值键盘扫描程序第8章人机交互设备接口第3段:查找键代码movsi,offsettablemovdi,offsetcharmovcx,64;
7、CX=键的个数key3:cmpax,[si];与键值比较jzkey4;相同,说明查到incsi;不相同,继续比较incsiincdiloopkey3jmpkey1;全部比较完,仍无相同,说明是重键键盘扫描程序第8章人机交互设备接口第4段:等待按键释放key4:moval,[di];获取键代码送AL……;判断按键是否释放,没有则等待calldelay;按键释放,延时消除抖动……;后续处理键盘扫描程序第8章人机交互设备接口3.抖动和重健问题机械按键存在抖动现象当按下或释放一个键时,往往会出现按键在闭合位置和断开
8、位置之间跳几下才稳定到闭合状态抖动的持续时间通常不大于10ms采用硬件消抖电路或软件延时方法解决重键指两个或多个键同时闭合出现重键时,读取的键值必然出现有一个以上的0是否给予识别和识别哪一个键第8章人机交互设备接口重健问题的处理简单情况:不予识别,认为是错误的按键通常情况:只承认先识别出来的键连锁法:直到所有键都释放后,读入下一个键巡回法:等被识别的键释放以后,就可以对其他闭合键作识别,而不必等待全部键释放正常的