- 0
- 0
- 约9.3千字
- 约 43页
- 2019-10-20 发布于湖北
- 举报
微机原理与接口技术 第十一章 人机交互接口 主要内容 键盘与键盘接口原理 显示器接口 LED显示器及显示原理 CRT显示器及显示原理 LCD显示器 打印机接口 鼠标器接口 11.1 .键盘与键盘接口原理 分类方式: (1)应用范围: 小键盘:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的输入 独立键盘:通过5芯电缆与PC微机主机连接 (2)按键开关的排列方式 线性键盘:接口简单,用于需要按键少的应用场合 矩阵键盘:接口相对复杂,一般微机常采用 11.1 .键盘与键盘接口原理 键盘接口必须具有4个基本功能: 去抖动; 防串键; 识别被按键(和释放健) 产生与之对应的键码 被按键的识别和键码的产生问题是键盘接口要解决的主要问题,可以通过软硬结合的办法来解决 通常识别被按键的两种方法 行扫描法 由程序对键盘进行逐行扫描,通过检测到的列状态来确定闭合键,需要输出端口、输入端口各一个,工作示意图如下图 11.1 .键盘与键盘接口原理 扫描法的步骤如下: (1) 快速检查是否有键按下:使PA0—PA3输出全为0,读取PB0—PB3上数据,只要有一位为0,则判断必定有某键被按下。 (2) 去抖动:延时20ms左右,等待按键通、断引起的抖动消失,然后再判断具体按下的到底是哪个键。 (3) 确定被按下的键:从0行开始,顺序逐行扫描,即该行输出0。每扫描一行,读入列线数据,从0列开始,逐列检查,判断是否有输入为0的列,若无,则顺序扫描下一行,并检查各列;若检查到某列线为0,则该行、列交点上的按键为被按下的键 11.1 .键盘与键盘接口原理 判断有无键按下的程序如下: MOV AL,82H ;设置8255控制字, ;方式0,A口输出,B口输入 OUT 43H,AL ; MOV AL,0 ;使各行线为0 MOV 40H,AL ; WAIT: IN AL,41H ;读列线数据 AND AL,0FH ;判断是否有列线处于低电平 CMP AL,0FH ; JZ WAIT ; MOV CX, 16EAH ; DELAY:LOOP DELAY ;延时20ms去抖动 11.1 .键盘与键盘接口原理 有键按下后,判断键号的程序如下 BEGIN: MOV BL,4 ;行数送BL, MOV BH,4 ;列数送BH MOV AL,0FEH ;送起始行扫描码,0行=0 MOV CL,0FH ;送键盘屏蔽码 MOV CH, -1 ;送起始键号,(CH)=-1 LOOP1: OUT 40H,AL ;扫描一行 ROL AL,1 ;准备下一行扫描码 MOV AH, AL ;保存到AH中 IN AL,41H ;从PB端口读列值 AND AL,CL ;屏蔽无关位 CMP AL,CL ;有无列线为0 JNZ LOOP2 ;有,转去查找本行键号 11.1 .键盘与键盘接口原理 (续) ADD CH,BH ;无,指向本行末列键 MOV AL,AH ;取回扫描码 DEC BL ;行数减1 JNZ LOOP1 ;未完,则扫描下一行 JMP BEGIN ;从新开始 LOOP2: INC CH ;指向本行首列键号 RCR AL,1 ;右移一位 JC LOOP2 ;列值非0,继续查找下一列 MOV
原创力文档

文档评论(0)