第七章 中断控制器8259A.ppt

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

共98页 中断响应过程(以可屏蔽中断为例) 1、外设通过INTR向CPU发出中断请求; 2、CPU在执行完现行指令后,响应该中断请求(IF=1); 3、外设向CPU提供中断类型号; 4、CPU将PSW、CS、IP压入堆栈; 5、清除IF、TF(默认情况下为不允许中断嵌套); 6、从中断向量表中取出中断向量,置入IP、CS; 7、执行中断例程; 8、在中断例程中,如果允许中断嵌套,则开中断(STI); 9、执行IRET,从堆栈中弹出IP、CS、PSW。 中断结束方式 中断服务完成时,必须给8259A一个命令,使这个中断级在ISR中对应位清“0”,表示该中断处理结束。 (1)自动中断结束方式(AEOI) ? 系统一旦进入中断响应,8259A就在第二个INTA信号的后沿,自动将ISR中对应位清“0”。最简单一种中断结束方式; 注意:它只能用在系统中只有一个8259A,且多个中断不会嵌套。 (2)非自动中断结束方式(EOI) 从中断服务程序返回前,必须在程序中向8259A输出一个中断结束命令(EOI),把对应于ISR中的位清“0”,具体由两种: 1、一般自动中断结束方式。指令中不指定清除ISR中哪一位,由8259A自动选择优先权最高的位; 2、特殊EOI结束方式。在指令中指明要清除ISR中某一位。 注意:非自动中断结束方式如果在程序中没有将ISR中对应位清“0”,那么 8259A在一般情况下将不再响应这个中断以及比他级别低的中断请求。 例:两片8259A进行级联,主片SP/EN连+5V,从片SP/EN接地,边沿触发,非缓冲方式,非自动中断结束,CAS0—CAS2互连,如前图所示。 主片: MOV AL ;ICW1:边沿触发,级联,设置 ;ICW4 OUT 20H,AL MOV AL ;ICW2:中断类型08H—0FH OUT 21H,AL MOV AL ;ICW3:IR3连有从片 OUT 21H ,AL MOV AL ;ICW4:特殊全嵌套,非缓冲, ;非自动中断结束,8086微处理器 OUT 21H ,AL 从片: MOV AL ;ICW1:边沿触发,级联 OUT 0A0H,AL MOV AL ;ICW2:中断类型70H—77H OUT 0A1H,AL MOV AL ;ICW3:INT接主片IR3 OUT 0A1H ,AL MOV AL ;ICW4:全嵌套,非缓冲, 非自动中断结束,8086微处理器 OUT 0A1H ,AL A0:A0=0,OCW2写入偶地址端口。 D4 、D3 : OCW2的标志位,等于00,区别ICW1和OCW3。 L2~L0:SL=1时,L2~L0有效。L2~L0有两个用途,一是当OCW2设置为特殊EOI结束命令时(011,111),L2~L0指出清除中断服务寄存器中的哪一位;二是当OCW2设置为特殊优先级循环方式时(110),L2~L0指出循环开始时设置的最低优先级。 R、SL、EOI:组合起来指明优先级设置方式和中断结束方式,每位有各自的意义。 R(Rotate):R=1,中断优先级是按循环方式设置的;R=0,设置为固定优先级。 SL(Specific Level):指明L2~L0是否有效。 EOI(End Of Interrupt):指定中断结束方式。EOI=1,使用中断结束命令使中断服务寄存器中对应位复0;EOI=0,不需要执行结束操作命令。(ICW4的AEOI=1,OCW2中的EOI位应为0)。 OCW2的功能包括两个方面,一方面是决定8259A是否采用优先级循环方式,另一个方面是中断结束采用普通的还是特殊的EOI结束方式。 操作控制字OCW1~OCW3的设置,安排在初始化命令字设置之后,用户根据需要可在程序的任何位置去设置。 尽管8259A只有两个端口地址,但不会混淆4个初始化命令字和3个操作命令字。ICW2、ICW3、ICW4和OCW1写入8259A奇地址端口,初始化时ICW1后面紧跟ICW2、ICW3、ICW4,而OCW1是单独写入的,不会紧跟在ICW1后面。ICW1、OCW2、OCW3写入8259A偶地址端口,但一方面ICW1是在初始化时写入,另一方面可用D4位区分,D4=1为ICW1,D4=0为OCW;再用D3位区分,D3

文档评论(0)

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

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

1亿VIP精品文档

相关文档