- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机接口技术 并行接口 本章重点 【学习目标】:了解并行通讯的基本概念,掌握利用8255A实现并行系统的软硬件技术。 【知识点】: (1)并行的概念; (2)键盘输入; (3)显示输出; (4)I/O编址的方式; (5)键盘去抖; (6)8255A的机制; (7)接口查询机制 【重点】:利用8255A实现并行系统的软硬件技术。 6.1 键盘和CPU的接口技术 6.1.1 简单的键盘接口 与之对应的键值 解决方案--I 采用和存储器一样的读指令,和存储器一起编址。 例如:MOV AL,[8000H]。 我们称之为存储器映像编址(存储器统一编址)。 换句话讲,存储器和I/O设备统一编址,不区分存储器和I/O设备,采用相同的汇编语言指令。 优点是不需要增加存储器指令即可实现; 缺点是要占用存储器的空间。 也就是说,这种方法要分割出一部分存储空间用作I/O地址,存储器的空间被压缩。 解决方案--II 独立编址。 给存储器的1M空间完全保留,另外再拿出1M空间给I/O设备,两者之间各自独立,相互之间没有影响。 很显然这种思路是可取的,但问题是如何实现两个1M的空间呢? 从硬件技术讲,只要在CPU增加一个管脚,当读/写存储器时,该管脚为“1”;当读/写I/O设备时,该管脚为“0”。 但这就要求读写存储器的指令和读写I/O设备的指令不一样,因为要产生不同的读写时序。 8086的选择 8086的选择 显然欲使M/IO的输出信号不同,需要用不同的指令。 MOV [8000H], AX 该指令原为访问存储器,则M/IO应该输出“1”。 而此时显然不能再用于访问I/O口; 为了M/IO输出“0”,必须用另外的指令; 8086/8088设计了另外的访问I/O的指令: IN AL, DX OUT DX, AL 8086/8088添加的指令 CPU访问I/O口 假设键盘接口的地址为8000H,我们习惯称之为I/O端口(虽然是I/O地址,但为了存储器地址区分开,所以称为端口),则要求A15为“1”,其余地址都为“0”; 则译码电路采用数字逻辑的方式如图6.4所示。 问题? 发现存在一个问题: IN AL,DX为一条指令,执行时间为一个指令周期,而一个指令周期的时间非常短,也就是说,如何保证在执行IN指令的时候,键盘恰好被按下? IN指令在程序的什么地方,什么时候执行,用户无法知道,但如果程序像上述程序的编法, 用户必须知道CPU何时读8000H端口,然后实现操作者和CPU指令的配合,这样的配合难度可想而知。 解决方案 有两个办法: (1)用户先按下键盘,然后运行程序,使人等计算机;此方法如果程序只操作一个键,似乎可行,但如果程序需要操作多个键,此方法失效。 (2)当程序需要接受键盘信息时,设计一个循环程序,使CPU“等人”的输入,如果有键盘按下,程序继续执行,如果没有键盘按下,计算机反复读I/O端口,直到有键盘按下为止。 方法2的程序 6.1.2 矩阵键盘的接口技术 键盘电路分析 我们只讲了两种键盘的接口技术,就发现外围接口电路原理的不同,意味着与CPU的硬件连接技术不一致,同时也意味着软件的不同。 在矩阵键盘接口中,实际上存在一个扫描的过程,即一个时间扫描一组按键,将该组按键的一端设为低电平,看是否有按键被按下,然后再扫描第二组按键,……,当全部组别被扫描完成一遍后,再重复上述扫描过程,一直到检测到某一个按键被按下为止。 而CPU如何知道是否有按键被按下呢? 在设计键盘接口电路时,我们就要考虑当没有按键被按下时,CPU从端口读到一个不变的数(如FFH),但任意一个键被按下时,从端口读入的值发生了变化(如FEH,和FFH不相同),意味着有按键被按下。 那么FEH代表的是哪一个键呢?我们前面的分析已知:K0~KF分别对应着16个不同的键值,而键值是CPU从I/O端口读到的数据,很显然K0~KF和键值之间存在一个对应表,而K0~KF分别代表什么键,同样可以通过键值对应起来。 对应的键值 矩阵键盘实例 6.1.3 *键盘消抖技术 去抖方法--I 硬件消抖 去抖方法--II 软件消抖 如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序(5ms~10ms的延时),让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给几ms~几十ms的延时,待后沿抖动消失后才能转入该键的处理程序。 一般来说,软件消抖的方法是不断检测按键值,直到按键值稳定。实现方法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,延时5ms~10ms,再次检测,如果按键还为0,那么就认为有按键输入。延时的5ms~10ms恰好避开了抖动期。 6.2 LED与CPU的接口技术 6.2.1
您可能关注的文档
最近下载
- 2024版房屋抵押贷款合同范本.docx VIP
- 基于反作用飞轮和磁力矩器的卫星姿态控制系统分析-analysis of satellite attitude control system based on reaction flywheel and magnetic torque device.docx VIP
- 地贫筛查中的血红蛋白电泳.pptx VIP
- 光电开关HPX-AG系列使用说明书.PDF VIP
- 精神科患者风险的管理.pptx VIP
- 保护女职工权益知识竞赛题库50题(答案).docx VIP
- 盖板涵施工监理细则.pdf VIP
- 迅达3300调试汇总.doc VIP
- (高清版)B-T 19843-2022 工业通风机 射流风机性能试验.pdf VIP
- 冰美人淘宝直播数据复盘.xlsx VIP
文档评论(0)