1
第8章人机交互设备接口
主要内容:1、键盘接口
2、CRT显示器接口
重点内容: 各种设备接口
键盘是微机系统最常使用的输入设备
小键盘:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的输入
独立键盘:通过5芯电缆与PC微机主机连接
第8章人机交互设备接口
+5V
+5V
+5V
最简单的线性结构键盘
每一个引脚连接一个键
输入0/1反映健是否高低
第8章人机交互设备接口
+5V
+5V
控制线
检
测
线
常用的矩阵结构键盘
每行连接一个引脚
每列连接一个引脚
利用控制线为低、读取检测线来识别闭合键
第8章人机交互设备接口
1. 扫描法
先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合(通过检查列线电位实现)
此后,再将第1行接地,然后检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行
在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出
通过组合行线和列线可识别此刻按下的是哪一键
第8章人机交互设备接口
第1段:是否有键按下
key1: mov al,00
mov dx,rowport
out dx,al ;使所有行线为低电平
mov dx,colport
in al,dx ;读取列值
cmp al,0ffh
;判定是否有列线为低电平
jz key1 ;无闭合键,循环等待
call delay ;有,延迟20ms清除抖动
键盘扫描程序
第8章人机交互设备接口
第2段:识别按键(扫描)
mov cx,8 ;行数送CX
mov ah,0feh ;扫描初值送AH
key2: mov al,ah
mov dx,rowport
out dx,al ;输出行值(扫描值)
mov dx,colport
in al,dx ;读进列值
键盘扫描程序
第8章人机交互设备接口
第2段:识别按键(判断)
cmp al,0ffh
;判断有无低电平的列线
jnz key3 ;有,则转下一步处理
rol ah,1 ;无,则移位扫描值
loop key2 ;准备下一行扫描
jmp key1
;所有行都没有键按下,则返回继续检测
key3: ……
;此时,al=列值,ah=行值
键盘扫描程序
第8章人机交互设备接口
2. 反转法
首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口
CPU通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)
然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入端口
将刚才读得的列值从列线所接端口输出,再读取行线的输入值
这样,当一个键被按下时,必定可以读得一对唯一的行值和列值
条件:连接行线和列线的接口电路
必须支持动态改变输入、输出方式
第1段:是否有键按下
……
;设置行线接输出端口,列线接输入端口
key2: mov al,00
mov dx,rowport
out dx,al ;设置行线全为低
mov dx,colport
in al,dx ;读取列值
cmp al,0ffh
jz key2 ;无闭合键,循环等待
push ax ;有闭合键,保存列值
push ax
键盘扫描程序
第8章人机交互设备接口
第08章 人机交互设备接口1 来自淘豆网www.taodocs.com转载请标明出处.