- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第08章 人机交互设备接口1
中断服务程序:响应键盘 kbint proc sti ;开中断 push ax ;保护寄存器 push bx in al,60h ;读取键盘扫描码 push ax in al,61h ;使PB7=1,响应键盘 or al,80h out 61h,al and al,7fh ;使PB7=0,允许键盘 out 61h,al 中断服务程序:数据处理 pop ax test al,80h ;是断开扫描码? jnz kbint2 ;是,则退出 mov bx,offset scantb ;是接通扫描码,取表首地址 xlat ;将扫描码转换成ASCII码 cmp al,0 ;是否为合法的ASCII码? jz kbint2 ;不是,则退出 中断服务程序:指针增量 mov bx,bufptr2 mov buffer[bx],al ;将ASCII码存入缓冲区队列尾 inc bx ;队列尾指针增量 cmp bx,10 ;是否指向队列末端? jc kbint1 ;没有,转移 mov bx,0 ;指针指向队列末端,则循环,指向始端 中断服务程序:判断缓冲区满否 kbint1: cmp bx,bufptr1 jz kbint2 ;若队列满,则退出 mov bufptr2,bx ;队列不满,设置新的队列尾指针 bufptr1 bufptr2 buffer 41H 0 31H 1 32H 2 39H 9 队列始端 队列末端 中断服务程序:中断返回 kbint2: mov al,20h ;向8259A发送普通中断结束命令 out 20h,al pop bx ;恢复寄存器 pop ax iret ;中断返回 kbint endp 矩阵结构键盘 行 列 1 1 1 1 机械按键的抖动现象 前沿抖动 后沿抖动 键稳定 键按下 硬件消抖电路 +5V 3.6K +5V 3.6K 输出信号 +5V 输出信号 双稳态电路 斯密特电路 键位置和扫描码 Esc 01 81 1 02 82 2 3 4 = 0 - Q A Z S W P L M , 03 04 05 10 11 1E 1F 2C 83 84 85 90 91 9E 1 2 3 4 5 11 12 13 16 17 25 30 31 39 44 50 51 9F AC 键位置 接通扫描码 断开扫描码 键名称 队列空 bufptr1 bufptr2 buffer 0 1 2 9 队列中无字符,队列头指针等于队列尾指针 队列始端 队列末端 进队列 bufptr1 buffer 30H 0 1 2 9 数据进入由队列尾指针指示的单元 同时尾指针增量,指向下一个单元 队列始端 队列末端 bufptr2 出队列 bufptr1 buffer 0 31H 1 2 9 数据从队列头指针指示的单元取出 同时头指针增量,指向下一个单元 队列始端 队列末端 bufptr2 队列满 bufptr1 bufptr2 buffer 41H 0 31H 1 32H 2 39H 9 尾指针与头指针再次相等 表明队列已满 队列始端 队列末端 尾指针指向队列末端时,需循环重新绕回队列始端 * 第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 ;
文档评论(0)