




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第11章章 键盘和鼠标键盘和鼠标普通键盘人体键盘第第11章章 键盘和鼠标键盘和鼠标教学建议,本章重点为教学建议,本章重点为:行扫描法的原理;行反转法的原理;连锁法和巡回法解决重键问题的原理;键盘扫描码和系统扫描码的含义;扩展键盘的工作原理;主机键盘接口的功能和构成;09H和16H键盘中断处理程序的功能;鼠标驱动程序的调用方法。课后作业参考1.利用行扫描法来识别闭合键的工作原理是什么?为什么在识别一个利用行扫描法来识别闭合键的工作原理是什么?为什么在识别一个键前,先快速检查键盘中是否有键按下?快速识别有无闭合键的方键前,先快速检查键盘中是否有键按下?快速识别有无闭合键的方法是什么?法是什么?2
2、.设计一个用行扫描法识别闭合键的扫描程序,设键盘上有设计一个用行扫描法识别闭合键的扫描程序,设键盘上有45个个键,并行口键,并行口A接四根行线,并行口接四根行线,并行口B接五根列线,两个端口的地址接五根列线,两个端口的地址分别为分别为PORTA、PORTB。3.叙述行反转法的基本工作原理,画出行反转法的程序流程。叙述行反转法的基本工作原理,画出行反转法的程序流程。4.连锁法和巡回发识别重建的基本思想是什么连锁法和巡回发识别重建的基本思想是什么?5.用连锁法识别重键时,对用连锁法识别重键时,对微型计算机技术及应用微型计算机技术及应用一书的图一书的图9.8中的三种重键情况分别如何处理?看懂图中的三
3、种重键情况分别如何处理?看懂图8.9的流程,并说明按标的流程,并说明按标准的连锁法,此流程应如何修改?准的连锁法,此流程应如何修改?6.巡回法是如何识别三种重键情况的?分析图巡回法是如何识别三种重键情况的?分析图9.10的流程图,并编写的流程图,并编写一个一个8行行8列的巡回法识别重键程序,端口地址用标号表示。列的巡回法识别重键程序,端口地址用标号表示。一、一、 键盘的基本原理结构键盘的基本原理结构图图11.2 键盘的矩阵式结构键盘的矩阵式结构mn个键个键需要需要m+n根引线根引线 识别按键:识别按键:行扫描法行扫描法行反转法行反转法二、二、 键的识别键的识别行扫描法行扫描法 1.行扫描识别按
4、键的原理: 指定某行接低电平,看是否有列线为低电平,如有则移位确定列。指定某行接低电平,看是否有列线为低电平,如有则移位确定列。 2. 实际上,先快速检查是否有键按下;再具体判断哪一个键被按下 3. 硬件上行线与列线的接法键的识别键的识别行扫描法行扫描法 4.判断是否有键按下程序如下:WAIT:MOVAL,00HMOV DX,OUTPORT;往所有行线上输出低电平,;往所有行线上输出低电平, OUTPORT为行线所连的输出端口为行线所连的输出端口OUTDX,ALMOVDX,INPORTINAL,DX; 读取列值读取列值ANDAL,0FFH CMPAL,0FFH;看是否有列线处于低电平;看是否有
5、列线处于低电平JZWAIT;否则没有闭合键,循环等待;否则没有闭合键,循环等待DONE:CALL DELAY ;是,则延迟;是,则延迟20ms去抖动去抖动键的识别键的识别行扫描法行扫描法 扫描法判断闭合键的流程键的识别键的识别行扫描法行扫描法 扫描法判断闭合键的程序:PROG:MOVBL,0;键号初值为;键号初值为0MOVCL,0FEH;送扫描初值;送扫描初值MOVDL,8;计数值为行数;计数值为行数FROW:MOVAL,CLOUTROWPORT,AL;扫描一行;扫描一行ROLAL,1MOVCL,AL;修改扫描值;修改扫描值INAL,COLPORTCMPAL,0FFH;读进列值,并判别是否有哪
6、条列线接地;读进列值,并判别是否有哪条列线接地JNZFCOL;有列线接地,则转;有列线接地,则转FCOLMOVAL,BLADDAL,8;如没有列线接地,则使键号;如没有列线接地,则使键号=键号键号+列数列数/行行MOVBL,ALDECDL ;是否各行都扫完;是否各行都扫完JNZFROW;未扫完,则扫下一行;未扫完,则扫下一行JMPDONE;已扫完,则转;已扫完,则转DONEFCOL:RCR AL,1JNCPROCE;如此列接地,则转;如此列接地,则转PROCEINCBLJMPFCOL;如未找到接地的列线,则转;如未找到接地的列线,则转FCOL继续寻找继续寻找PROCE:;键命令处理程序;键命令
7、处理程序DONE:;后续处理程序;后续处理程序键的识别键的识别行扫描法行扫描法三、三、 键的识别键的识别行反转法行反转法图图11.5 行反转法的工作示意图行反转法的工作示意图(a)行线输出,列线输入;行线输出,列线输入; (b) 列线输出,行线输入列线输出,行线输入 1、行反转法的键盘连接、行反转法的键盘连接键的识别键的识别行反转法行反转法 2、行反转法判别闭合键的程序流程、行反转法判别闭合键的程序流程键的识别键的识别行反转法行反转法ST:MOV AL,82HOUTPORT1,AL ; PORT1是是8255A的控制口地的控制口地址,设控制字,址,设控制字,A口为输出,口为输出,B为输入为输入
8、WAIT1: MOV AL,0OUTPORTA,AL;往端口;往端口A输出全输出全0IN AL, PORTB;输入列值;输入列值ANDAL, 0FFHCMP AL, 0FFH ;看是否有键闭合;看是否有键闭合JZ WAIT1;如无闭合键,则等待;如无闭合键,则等待PUSHAXPUSHAX;保留列值;保留列值CALLDELAY;延迟;延迟20msMOVAL, 90HOUT PORT1,AL;将;将8255A的的A口设置为输入,口设置为输入,B口设置为输出口设置为输出POPAXOUT PORTB,AL;将读得的列值输出到端口;将读得的列值输出到端口B 键的识别键的识别行反转法行反转法识识别别闭闭合
9、合键键程程序序清清单单1)OUT PORTB,AL;将读得的列值输出到端口;将读得的列值输出到端口BINAL,PORTA ;读进行值;读进行值POPBXMOV AH,BL;使;使AH中为列值,而中为列值,而AL中为行值中为行值MOVSI,TABLE+3FH;取键码表末地址;取键码表末地址MOVCX,40H;CX作为键计数器作为键计数器LOOP1:CMPAX,SI+0;行值列值与键码表比较;行值列值与键码表比较JZKEYPRO;如相等,则转键命令处理;如相等,则转键命令处理DEC SIDECSI;修改表指针和键计数器;修改表指针和键计数器DECCXJNZLOOP1;未比较完,则再比;未比较完,则
10、再比JMPST;如已比较完,但没有在键码表中找到相同码,则重;如已比较完,但没有在键码表中找到相同码,则重新开始找新开始找KEYPRO: ;键命令处理;键命令处理TABLE:DW0FEFEH;键码表开始,;键码表开始,K0键键DW0FEFDH;K1键键DW0FEFBH;K2键键DW0FEF7H ;K3键键键的识别键的识别行反转法行反转法识识别别闭闭合合键键程程序序清清单单2)下课四、四、 抖动和重键问题的解决抖动和重键问题的解决 A键先按后放,B键后按先放,图(a) A键先按先放,B键后按后放,图(b) A、B键同时按下,但A键先放,图(c) 重键问题的处理一般采用两种方法:重键问题的处理一般
11、采用两种方法:连锁法:连锁法:原则是在所有键释放后,只原则是在所有键释放后,只承认此后闭合的第一个键,对此键闭承认此后闭合的第一个键,对此键闭合时按下的其它键均不作识别,直到合时按下的其它键均不作识别,直到所有键释放后,才读入下一个键。所有键释放后,才读入下一个键。巡回法:巡回法:等前面所识别的键被释放后,等前面所识别的键被释放后,就可对其他闭合键作识别。就可对其他闭合键作识别。11.4 抖动和重键问题的解决抖动和重键问题的解决图图11.9 连锁法程序流程图连锁法程序流程图11.4 抖动和重键问题的解决抖动和重键问题的解决 1、连锁法连锁法程序清单连锁法程序清单KEYNOW:CALL KEY;
12、进行键盘扫描,;进行键盘扫描,AL中为键值,中为键值, 如键值为如键值为FFH,表示无闭合键,表示无闭合键 INC AL JZNOKEY;如键值为;如键值为FFH,则转,则转NOKEYL1:CALLDELAY ;进行延迟;进行延迟 CALLKEY;进行键盘扫描;进行键盘扫描 MOVBL,AL;保存键行列值;保存键行列值INCALJZNOKEY;判是否有键闭合,如无,则转;判是否有键闭合,如无,则转NOKEYMOV AL,FLAGAND AL,0FFH;测键闭合标志是否为;测键闭合标志是否为0JNZL1;如不为;如不为0,则循环等待释放,则循环等待释放DEC ALJMP QUIT;如为;如为0,
13、则标志改为,则标志改为FF,并转,并转QUITNOKEY:MOVBL,0FFH;键值为;键值为FF,表示无闭合键,表示无闭合键QUIT: MOVFLAG,A;设键标志;设键标志CMP AL,00H;测试键标志;测试键标志JZKEYNOW;如键标志为;如键标志为0,则等待输入,则等待输入MOV AL,BL;AL中为键值中为键值RET;退出程序;退出程序11.4 抖动和重键问题的解决抖动和重键问题的解决图图11.10 巡回法的流程图巡回法的流程图11.4 抖动和重键问题的解决抖动和重键问题的解决 2、巡回法 巡回法程序清单(巡回法程序清单(1)START:MOVAL,3FHMOV DX,RPORT
14、;使所有行为低电平,因反相接键盘,故;使所有行为低电平,因反相接键盘,故CPU输出高电平输出高电平OUT DX,ALMOV DX,LPORTINAL,DX;读取列值;读取列值AND AL,1FHCMP AL,1FH;判别是否有键闭合;判别是否有键闭合JZQUIT;无闭合键,则退出;无闭合键,则退出CALLDELAY;有闭合键,则延迟一段时间;有闭合键,则延迟一段时间MOV AL,01H;使第一行为低电平;使第一行为低电平KEY:MOVDX,RPORTOUT DX,AL;使所选的一行为低电平;使所选的一行为低电平PUSHAX;保存行值;保存行值MOV DX,LPORTINAL,DX;读取列值;读
15、取列值AND AL,1FHCMP AL,1FH;所选行上有键闭合吗;所选行上有键闭合吗?JNZ YE;有闭合键,则转译码程序;有闭合键,则转译码程序11.4 抖动和重键问题的解决抖动和重键问题的解决巡回法程序清单(巡回法程序清单(2) POP AX;恢复行值SHL AL,1;选择下一行MOV BL,40HCMP AL,BL;是最后一行吗?JNZ KEY;不是最后一行,则继续JMP QUIT;是最后一行,则退出YE:;键译码程序,如键值不符合表中代码,则转出错处理PUSH AX;AX中为键值KEY1:MOV DX,LPORTINAL,DX;读进列值AND AL,1FHCMP AL,1FH;测试是
16、否键已释放JNZ KEY1;如未释放,则等待CALL DELAY;如测得键已释放,则再去抖动POPAX;AX中为键值;键命令处理QUIT:RET;返回11.4 抖动和重键问题的解决抖动和重键问题的解决11.5 微型机的键盘子系统微型机的键盘子系统图图11.11 键盘子系统的示意图键盘子系统的示意图11.5.1 扩展键盘和键盘控制器扩展键盘和键盘控制器 扩展键盘 键盘扫描码 系统扫描码11.5.1 扩展键盘和键盘控制器扩展键盘和键盘控制器 扩展键盘的工作原理和连接信号 图图11.12 16行行8列的键盘扫描电路列的键盘扫描电路11.5.2 主机的键盘接口电路主机的键盘接口电路 主机键盘接口的功能
17、 接收键盘送来的串行扫描码。接收键盘送来的串行扫描码。 将串行扫描码转换为并行扫描码,再转换为系将串行扫描码转换为并行扫描码,再转换为系统扫描码。统扫描码。 向向CPU发中断请求,以便主机读取系统扫描码发中断请求,以便主机读取系统扫描码并作相应处理。并作相应处理。 将将CPU发出的键盘自检命令或复位命令传输到发出的键盘自检命令或复位命令传输到键盘,以判断键盘工作的正确性或使键盘复位键盘,以判断键盘工作的正确性或使键盘复位。11.5.2主机的键盘接口电路主机的键盘接口电路 主机键盘接口的构成图图11.13 主机的键盘接口主机的键盘接口(点划线框内为点划线框内为Intel 8042)11.6 键盘
18、中断处理程序键盘中断处理程序 两个中断处理程序 09H中断:硬件中断,键盘发出中断:硬件中断,键盘发出 16H中断:软件中断,应用程序中中断:软件中断,应用程序中软件指令软件指令11.6.1 09H键盘中断处理程序键盘中断处理程序 对特殊键设置标志位 对第一类ASCII码键,先将系统扫描码转换为ASCII码,在存入键盘缓冲区时,低位字节为ASCII码,高位字节为系统扫描码 对第二类ASCII码键,直接将数字作为ASCII码,在存入键盘缓冲区时,低位字节为ASCII码,高位字节为0 对于不能用ASCII码表示的组合键和功能键,用0作为低位字节,扩展码作为高位字节存入键盘缓冲区 对于特殊命令键不形
19、成代码,而直接完成相应操作11.6.2 16H键盘中断处理程序键盘中断处理程序11.7 键盘缓冲区键盘缓冲区图图11.14 32字节的键盘缓冲区及指针字节的键盘缓冲区及指针11.8.1 鼠标的工作原理鼠标的工作原理按鼠标键分类双键式双键式三键式三键式按照工作原理机械式机械式光电式光电式光机式光机式11.8.1 鼠标的工作原理鼠标的工作原理鼠标与主机的连接方式有三种:用用RS232C串行接口串行接口用用USB接口接口用用PS/2接口接口11.8.1 鼠标的工作原理鼠标的工作原理 鼠标的性能指标和数据格式 图图11.15 鼠标鼠标3字节数据组的格式字节数据组的格式11.8.2 鼠标的驱动程序及其功
20、能调用鼠标的驱动程序及其功能调用 例1 AX00,鼠标检测和初始化如下指令MOVAX,00INT33H11.8.2 鼠标的驱动程序及其功能调用鼠标的驱动程序及其功能调用 例2 AX04,设置鼠标光标位置入口参数:CX水平位置,DX垂直位置MOV AX,04 ;设置光标位置;设置光标位置MOV CX,208;水平位置,由文本方式的字符换算;水平位置,由文本方式的字符换算为图形方式的像素为图形方式的像素MOV DX,108;垂直位置,由字符换算为像素;垂直位置,由字符换算为像素INT 33H11.8.2 鼠标的驱动程序及其功能调用鼠标的驱动程序及其功能调用 例2 AX0FH 设置鼠标的位移像素比MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安徽安科生物工程(集团)股份有限公司招聘模拟试卷及答案详解(名师系列)
- 2025湖南省农村信用社联合社校园招聘15人考前自测高频考点模拟试题及参考答案详解1套
- 2025河北邯郸市体育运动学校选聘体育教练员3人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年三环集团社会招聘模拟试卷完整参考答案详解
- 2025年国家统计局平顶山调查队面向社会公开招聘劳务派遣人员4名模拟试卷及答案详解(名校卷)
- 2025年德州平原县县属国有企业公开招聘工作人员模拟试卷及答案详解参考
- 2025贵州医科大学第二附属医院第十三届贵州人才博览会引才47人模拟试卷及答案详解(新)
- 2025贵州省民族研究院第十三届贵州人才博览会引进人才模拟试卷及答案详解(新)
- 2025年陕西中试电力科技有限公司招聘(3人)考前自测高频考点模拟试题及1套参考答案详解
- 2025春季内蒙古包头市中心医院引进高层次和紧缺急需人才招聘29人考前自测高频考点模拟试题及答案详解(名校卷)
- 金融科技驱动的支付行业数字化转型路径-洞察阐释
- 个人借款分期还款协议范本8篇
- 劳动争议再审申请书
- 朝花夕拾中父亲的病
- 2024年微信小程序建设协议样本
- 江苏省南京市联合体2024~2025学年上学期八年级物理期中试卷(含答案)
- 2024年全国巾帼家政服务职业技能大赛(收纳师)理论考试题库(含答案)
- 部编版四年级语文上册第六单元教学分析及全部备课教案(共6份教案)
- 全国学科专业目录及名称代码表
- 项目安全管理考核表
- 食品生产企业安全检查表含日管控、周排查及月调度检查记录表
评论
0/150
提交评论