江西农业大学微机原理第11章

上传人:kms****20 文档编号:50962610 上传时间:2018-08-11 格式:PPT 页数:32 大小:656.50KB
返回 下载 相关 举报
江西农业大学微机原理第11章_第1页
第1页 / 共32页
江西农业大学微机原理第11章_第2页
第2页 / 共32页
江西农业大学微机原理第11章_第3页
第3页 / 共32页
江西农业大学微机原理第11章_第4页
第4页 / 共32页
江西农业大学微机原理第11章_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《江西农业大学微机原理第11章》由会员分享,可在线阅读,更多相关《江西农业大学微机原理第11章(32页珍藏版)》请在金锄头文库上搜索。

1、第11章 键盘和鼠标教学建议,本章重点为: 行扫描法的原理; 行反转法的原理; 连锁法和巡回法解决重键问题的 原理; 键盘扫描码和系统扫描码的含义 ; 扩展键盘的工作原理; 主机键盘接口的功能和构成; 09H和16H键盘中断处理程序的功 能; 鼠标驱动程序的调用方法。11.1 键盘的基本原理结构图11.2 键盘的矩阵式结构11.2 键的识别行扫描法 第一步应该判断是否有键按下 第二步是判断哪一个键被按下11.2 键的识别行扫描法 判断是否有键按下程序如下:WAIT:MOVAL,00H MOVDX,OUTPORT;往所有行线上输出低电平, OUTPORT为行线所连的输出端口 OUTDX,AL M

2、OVDX,INPORT INAL,DX; 读取列值 ANDAL,0FFH CMPAL,0FFH;看是否有列线处于低电平 JZWAIT;否则没有闭合键,循 环等待 DONE: CALL DELAY ;是,则延迟20ms去抖动 11.2 键的识别行扫描法 行线与列线分别接到两个并行端口的示意 图 11.2 键的识别行扫描法 扫描法判断闭合键的流程11.2 键的识别行扫描法 扫描法判断闭合键的程序: PROG:MOVBL,0;键号初值为0 MOVCL,0FEH;送扫描初值 MOVDL,8;计数值为行数 FROW:MOVAL,CL OUTROWPORT, AL;扫描一行 ROLAL,1 MOVCL,A

3、L;修改扫描值 INAL,COLPORT CMPAL,0FFH;读进列值,并判别是否有哪条列线 接地 JNZFCOL;有列线接地,则转FCOL MOVAL,BL ADDAL,8;如没有列线接地,则使键号=键号+ 列数/行 MOVBL,AL DECDL ;是否各行都扫完 JNZFROW;未扫完,则扫下一行 JMPDONE;已扫完,则转DONE FCOL:RCR AL,1 JNCPROCE;如此列接地,则转PROCE INC BL JMPFCOL;如未找到接地的列线,则转FCOL 继续寻找 PROCE: ;键命令处理程序 DONE: ;后续处理程序11.3 键的识别行反转法图11.5 行反转法的工

4、作示意图 (a)行线输出,列线输入; (b) 列线输出,行线输入11.3 键的识别行反转法 行反转法的键盘连接11.3 键的识别行反转法 行反转法判别闭合键的程序流程ST: MOVAL,82H OUTPORT1,AL; PORT1是8255A的控制口地址,设控制字,A口为输出,B为输入 WAIT1:MOVAL,0 OUTPORTA,AL;往端口A输出全0 INAL,PORTB;输入列值 ANDAL,0FFH CMP AL,0FFH;看是否有键闭合 JZWAIT1;如无闭合键,则等待 PUSH AX PUSH AX;保留列值 CALL DELAY;延迟20ms MOV AL,90H OUT PO

5、RT1,AL;将8255A的A口设置为输入,B口设置为输出 POPAX OUT PORTB,A L;将读得的列值输出到端口B INAL,PORTA;读进行值 POPBX MOV AH,BL;使AH中为列值,而AL中为行值 MOV SI,TABLE+3FH;取键码表末地址 MOV CX,40H;CX作为键计数器 LOOP1:CMPAX,SI+0;行值列值与键码表比较 JZKEYPRO;如相等,则转键命令处理 DEC SI DECSI;修改表指针和键计数器 DECCX JNZLOOP1;未比较完,则再比 JMPST;如已比较完,但没有在键码表中找到相同码,则重新开始找 KEYPRO: ;键命令处理

6、 TABLE:DW0FEFEH;键码表开始,K0键 DW0FEFDH;K1键 DW0FEFBH;K2键 DW0FEF7H;K3键11.4 抖动和重键问题的解决 A键先按后放,B键后按先放,图(a) A键先按先放,B键后按后放,图(b) A、B键同时按下,但A键先放,图(c)11.4 抖动和重键问题的解决 重键问题的采用两种方法 连锁法 巡回法11.4 抖动和重键问题的解决 连锁法图11.9 连锁法程序流程图连锁法程序清单KEYNOW:CALL KEY;进行键盘扫描,AL中为键值,如键值为FFH,表示无闭合键 INCAL JZNOKEY;如键值为FFH,则转NOKEY L1:CALLDELAY;

7、进行延迟 CALLKEY;进行键盘扫描 MOVBL,AL;保存键行列值 INCAL JZNOKEY;判是否有键闭合,如无,则转NOKEY MOVAL,FLAG AND AL,0FFH;测键闭合标志是否为0 JNZL1;如不为0,则循环等待释放 DECAL JMPQUIT;如为0,则标志改为FF,并转QUIT NOKEY:MOVBL,0FFH ;键值为FF,表示无闭合键 QUIT: MOVFLAG,A;设键标志 CMP AL,00H;测试键标志 JZKEYNOW;如键标志为0,则等待输入 MOVAL,BL;AL中为键值 RET;退出程序11.4 抖动和重键问题的解决 巡回法 图11.10 巡回法

8、的流程图巡回法程序清单START: MOVAL,3FH MOVDX,RPORT;使所有行为低电平,因反相接键盘,故CPU输出高电平 OUTDX,AL MOVDX,LPORT INAL,DX;读取列值 ANDAL,1FH CMPAL,1FH;判别是否有键闭合 JZQUIT;无闭合键,则退出 CALLDELAY;有闭合键,则延迟一段时间 MOVAL,01H;使第一行为低电平 KEY:MOVDX,RPORT OUTDX,AL;使所选的一行为低电平 PUSHAX;保存行值 MOVDX,LPORT INAL,DX;读取列值 ANDAL,1FH CMPAL,1FH;所选行上有键闭合吗? JNZYE;有闭合

9、键,则转译码程序 POPAX;恢复行值 SHLAL,1;选择下一行 MOVBL,40H CMPAL,BL;是最后一行吗? JNZKEY;不是最后一行,则继续 JMPQUIT;是最后一行,则退出 YE:;键译码程序,如键值不符合表中代码,则转出错处理 PUSHAX;AX中为键值 KEY1:MOVDX,LPORT INAL,DX;读进列值 ANDAL,1FH CMPAL,1FH;测试是否键已释放 JNZKEY1;如未释放,则等待 CALLDELAY;如测得键已释放,则再去抖动 POPAX;AX中为键值 ;键命令处理 QUIT:RET;返回11.5 微型机的键盘子系统图11.11 键盘子系统的示意图

10、11.5.1 扩展键盘和键盘控制 器 扩展键盘 键盘扫描码 系统扫描码11.5.1 扩展键盘和键盘控制 器 扩展键盘的工作原理和连接信号 图11.12 16行8列的键盘扫描电路11.5.2 主机的键盘接口电路 主机键盘接口的功能 接收键盘送来的串行扫描码。 将串行扫描码转换为并行扫描码,再转换为 系统扫描码。 向CPU发中断请求,以便主机读取系统扫描 码并作相应处理。 将CPU发出的键盘自检命令或复位命令传输 到键盘,以判断键盘工作的正确性或使键盘 复位。11.5.2主机的键盘接口电路 主机键盘接口的构成图11.13 主机的键盘接口(点划线框内为Intel 8042)11.6 键盘中断处理程序

11、 两个中断处理程序 09H中断 16H中断11.6.1 09H键盘中断处理程序 对特殊键设置标志位 对第一类ASCII码键,先将系统扫描码转换为ASCII码 ,在存入键盘缓冲区时,低位字节为ASCII码,高位字 节为系统扫描码 对第二类ASCII码键,直接将数字作为ASCII码,在存 入键盘缓冲区时,低位字节为ASCII码,高位字节为0 对于不能用ASCII码表示的组合键和功能键,用0作为 低位字节,扩展码作为高位字节存入键盘缓冲区 对于特殊命令键不形成代码,而直接完成相应操作11.6.2 16H键盘中断处理程序11.7 键盘缓冲区图11.14 32字节的键盘缓冲区及指针11.8.1 鼠标的工

12、作原理 按鼠标键分类 双键式 三键式 按照工作原理 机械式 光电式 光机式11.8.1 鼠标的工作原理 鼠标与主机的连接方式有三种: 用RS232C串行接口 用USB接口 用PS/2接口11.8.1 鼠标的工作原理 鼠标的性能指标和数据格式图11.15 鼠标3字节数据组的格式11.8.2 鼠标的驱动程序及其功能调 用 例1 AX00,鼠标检测和初始化 如下指令 MOVAX,00 INT33H11.8.2 鼠标的驱动程序及其功能调 用 例2 AX04,设置鼠标光标位置 入口参数:CX水平位置,DX垂直位置MOV AX,04 ;设置光标位置 MOV CX,208;水平位置,由文本方式的字符换算 为图形方式的像素 MOV DX,108;垂直位置,由字符换算为像素 INT 33H11.8.2 鼠标的驱动程序及其功能调 用 例2 AX0FH 设置鼠标的位移像素比MOV AX,0FHMOV CX,4 ;水平为4米基/像素 MOV DX,8 ;垂直为8米基/像素 INT 33H

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号