计算机接口与io指令.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0 1 2 3 4 5 6 0 1 4 3 6 “2” 的显示代码可以考虑没有译码器时把十六进制数转换为对应显示代码的方法. 七段显示器无法区别“8”和“B”,必须添加更多的发光管 端口访问解释 向31H号端口写入8位数据: 低4位数值为低位LED显示器将显示的一位16进制数; 高4位数值对应高位LED显示器将显示的一位16进制数。 端口访问解释 从31H号端口读入8位数据: 低4位和高4位分别为当前两位LED显示器所显示的一位16进制数。 接口控制方式分析 (1)键盘控制:由于键盘的输入数据不是任何时候都存在,需要判断当前是否有键按下,适合使用程序查询方式进行控制。 (2)LED显示控制:LED显示器是简单的设备,它总是可以立即显示CPU送来的数据,总是处于“准备好”的状态,适合使用直接传送方式进行控制。 技术细节 如果读取30H号端口,检测到其中出现“0”数据位,对应键盘的状态可能有两种: 1)键盘抖动:电路上信号的干扰、键盘的物理抖动、按键的手指抖动,这些都是抖动现象,特征是信号不稳定,“0”数据位持续的时间较短,一般是几个MS或者几十个MS。 2)按键:用户确实按下了键盘中的某一个键,特征是信号稳定,“0”数据位持续的时间较长,一般是几百个MS。 技术细节 解决方法: 1)第一次检测到30H端口的“0”数据位以后,延时0.2S(200MS)左右; 2)再一次检测30H端口中的“0”数据位是否存在; 技术细节 3)如果仍然存在,解释为“按键”状态,可以从30H端口读取键盘的扫描代码; 4)如果不存在“0”数据位,那么解释为“抖动”现象,应该继续循环重新检测键盘的状态。 程序设计 程序段如下:   MOV AL,0FFH   OUT 30H,AL LOP1: IN AL,30H   CMP AL,0FFH   JZ LOP1   NOP ;这里只是象征性延时   NOP ;延时一般可用循环实现   NOP   IN AL,30H   CMP AL,0FFH   JZ LOP1 程序设计   XOR BL,BL   PUSH AX   AND AL,0FH   MOV CX,3   SHR AL,1 LOP2: JNC L1   INC BL   SHR AL,1   LOOP LOP2 程序设计 L1: POP AX   MOV CL,4   ROL AL,CL   AND AL,0FH   MOV CX,3   SHR AL,1 LOP3: JNC L2   ADD BL,4   SHR AL,1   LOOP LOP3 程序设计 L2: IN AL,31H   MOV CL,4   ROL AL,CL       AND AL,0F0H   AND BL,0FH   OR AL,BL   OUT 31H,AL   JMP LOP1 中断服务程序设计 在执行上面程序时,CPU没有空闲时间执行其他程序,始终在循环检测键盘是否有键按下. 如果键盘采用中断工作方式,有键按下时才去执行上述程序中的处理(接收键码,把数据送到七段显示器显示);没有键按下时CPU就可以执行其他程序. 4 bit 4 bit 4 bit 4 bit 1 1 1 1 (0) (1) (2) (3) (0) (1) (2) (3) (0) (1) (2) (3) 1 0 1 1 1 1 1 1 1 1 0 1 (0) (1) (2) (3) 高4 低4 30H,只写 低4 高4 30H,只读 8位 到数据 总线 生成 中断 请求 8输入1输 出与门 INTR 0有效 8位中断类型号 8位 去数据总线低8位 INTA 0有效 三态门 分配中断类型号 把键盘接口的中断类型号分配为61H,避免与已经有的系统中断冲突. 实际设计硬件时,必须注意端口地址、中断类型号的分配,尽量不与其他硬件接口相冲突。 最好设计为可以使用指令设置的端口地址和中断类型号,这样可以使硬件接口的适用性更强。 中断服务程序设计 中断服务程序相对于查询方式控制程序的特点: 不需要循环查询接口的状态端口,因为一旦有中断发生,一定有数据输入(这里是有键按下)。只需要直接从数据端口读取数据即可。 由于LED显示器的显示总是和键盘的输入联系在一起的,不需要单独编制控制程序,对它的控制直接合并到对控制键盘的中断服务程序中。 中断服务程序设计 中断服务程序主体如下:(抖动由硬件解决) STI ;一般允许处理其他中断   IN AL,30H   XOR BL,BL   PUSH AX  

文档评论(0)

676200 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档