- 1、本文档共72页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机接口技术8259A中断控制器概要
第六章 中断控制接口 1 8086/8088的中断系统 1 中断的概念 2 8086/8088中断系统 1 中断的概念 1、为什么要引入中断?---Interrupt 一种非常重要的基本输入输出方式 广泛的用在故障处理和系统调用等方面 2 中断类型号、中断向量、中断向量表 根据中断类型码68H取得中断服务程序入口地址 2 可编程中断控制器8259A 1、8259A内部结构与引脚功能 2、8259A的工作原理 3、8259A工作方式 4、8259A的编程 功能: 在有多个中断源系统中,协助CPU实现对外部中断的管理,对它们进行优先级排队后向CPU发出中断请求信号 CAS2~ CAS0:级联线,传送3位标识码,用于区分特定的从控制器。双向:对于主片为输出,对于从片为输入。 :从片/允许缓冲器信号。双功能引脚: 作为输入时,8259A作为主片( =1) 8259A作为从片( =0) 作为输出时,用来启动(允许)数据总线收发器(如8286)。 究竟是作为输入还是输出,取决于8259A是否工作于“缓冲方式”,由初始化命令字决定 2 8259A的工作原理 8259A的级联 “中断查询”方式 特点:既有中断的特点,又有查询的特点。 外设仍然向8259A发中断请求信号,要求CPU服务。请求格式遵循ICW1的LITM CPU的IF=0,不响应外部的中断请求(对CPU的中断请求信号不起作用) 此时,CPU需要用软件查询方法来确认中断源,从而实现对设备的服务 多用在大于64级的场合,查询的最终完成还需要若干附加电路的配合。此方式可以看作是用8259代替了完全查询式系统中大部分电路的工作方式 8259A的级联 接线及初始化 一个包括中断服务程序的具体程序框架: 小结 作业 请叙述中断矢量号(中断类型)、中断矢量表和中断服务程序入口地址三者的关系 8086/8088共有多少矢量号?每一个矢量号占用矢量表的几个字节空间?它们的内容是什么?中断矢量表定位于内存储器的何处? INT 21H的键盘输入功能1和功能8有什么区别 编写程序,求3856H+9276H,并将结果显示在屏幕上 8259A芯片的主要功能是什么?8259A如何复位?复位后状态是什么? 8259级联工作示意图 OCW3 EQU 20H IRR EQU OCW3 ISR EQU OCW3 MOV AL,0BH ;读出命令,P=0,RR=1,RIS=1,选ISR OUT OCW3,AL IN AL,ISR 例:读ISR 8259A的寄存器组的读写逻辑: ICW2、 ICW3、 ICW4和OCW1写入奇地址端口。 初始化时ICW1后紧跟ICW2、 ICW3、 ICW4,按照顺序不会弄错。OCW1是在应用程序中写入的,不会紧跟在ICW1之后。ICW1、OCW2、OCW3写入偶地址,一方面ICW1在初始化程序中,另一方面由D4区分, D4=0时为ICW, D4=1时为OCW;再用D3区分, D3=0时为OCW2, D3=1时为OCW3。由此,通过初始化顺序、奇偶地址和标志位区分出对具体寄存器的访问。 BACK 中断服务程序的编程 中断服务程序的编程原则 1)中断是异步发生的,进入响应时并不考虑当前运行状态。因此中断服务程序必须保护现场 2)在进入具体中断处理之前要先初始化中断向量,使其指向相应的中断服务程序,但在此之前要先关中断,以防接管中断过程中发生中断 3)在中断服务程序入口处要立即开中断,以允许较高优先级的中断产生 4)中断服务程序的服务时间要尽量压缩,以免干扰同级或低级中断设备的工作 5)由于PC机中8259采用正常结束中断,因此在中断服务程序执行IRET返回前应向8259发结束中断命令EOI MOV AL, 20H ;使当前ISR中的对应位复位 OUT 20H, AL IRET 6)当编制替代系统原有中断服务程序时,应保存好原中断向量的内容。在应用程序终止前恢复原有的中断向量 中断服务程序的编程原则 7)若中断服务程序只为某个应用程序服务,则中断服务程序可以和主程序组装成一个程序一起装入内存,随主程序结束而一起退出内存 8)若中断服务程序为多个应用程序服务,则中断服务程序可以与一个初始化程序组装成一个程序一起装入内存,通过初始化程序的执行而将中断服务程序驻留内存 中断服务程序的编程原则 STACK SEGMEN STACK’STACK’ DW 128 DUP(0) STACK ENDS DATA SEGMENT INT_SEG DW ? INT_OFF DW? DATA END
文档评论(0)