第5章中断技术详解.ppt

  1. 1、本文档共138页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章中断技术详解

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * (2) 中断应用实例 【例5-14】已知某输入设备接口内有一个8位的数据端口 (地址200H) 和一个8位的状态端口(地址201H)。当状态端口的最高位为1时,数据端口中的数据有效,并且此时在STB引脚上出现一个脉冲信号。请设计一个微机系统,读取该接口内的有效数据,并将之存入内存的BUFFER单元中。 * 方法一:查询法 硬件电路设计 软件流程图设计 * MOV DX,201H ; 读取状态端口 L1:IN AL,DX TEST AL ; 测试其最高位 JZ L1 ; 无有效数据 MOV DX,200H ; 有有效数据,读数据端口 IN AL,DX MOV BUFFER,AL ; 保存数据到 BUFFER * 方法二:中断法 当接口中的数据有效时,会产生STB脉冲信号,该信号可作为中断请求信号,通过8259A向CPU发送中断请求。 一旦有数据到来,触发中断,进入中断服务程序ISR。CPU在ISR中读取数据端口的内容。 当没有数据到来时 (STB信号不触发中断),CPU可运行其它程序。 * 假设条件: STB信号连接到8259A的 IR3 端。 8259A的端口地址为20H~21H,其IR0~IR7 中断类型号为08H~0FH。 中断服务子程序名为P1。 未发生中断时,CPU执行其它程序。其它程序假设用CX+1的来模拟。 * 硬件电路设计 * 软件程序设计 关中断 开中断 * DATA SEGMENT ;定义数据段 就是数据存放的地方 BUFFER DB ? DATA ENDS CODE SEGMENT ;定义代码段 当然就是要执行的程序代码了 ASSUME CS:CODE,DS:DATA; assume ds:data 这是指明了ds(数据段寄存器)和data段的对应关系 START: MOV AX,DATA ;数据段段地址 MOV DS,AX PUSH DS CLI ;关中断 MOV AL ;ICW1: 边沿触发, 单片, 要ICW4 OUT 20H,AL MOV AL,08H ;ICW2: 中断类型号前5位 OUT 21H,AL 主程序设计 * MOV AL ;ICW4: 普通全嵌套, 非缓冲 OUT 21H,AL ;非自动中断结束 MOV AX,0 ;设置中断向量表段基址为0 MOV DS,AX MOV AX,OFFSET P1 MOV [002CH],AX ;IR3中断类型号为0BH,2CH? MOV AX,SEG P1 MOV [002EH],AX POP DS STI ;开中断 L1:INC CX JMP L1 * P1 PROC ;中断服务子程序 PUSH CX ;保护现场 STI ;开中断 MOV DX,200H ;读数据端口 IN AL,DX MOV BUFFER,AL ;保存数据 CLI

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档