1、实验六 中断系统实验-8259A中断控制一、实验目的1掌握中断控制器8259A与微机接口的原理和方法。2掌握中断控制器8259A的应用编程。3认识掌握DVCC_ZHC3实验装置中与实验有关硬件内容和使用方法。4认识掌握DVCC_ZHC3实验装置配套的软件系统使用方法。5进一步巩固8086/8088的指令。6进一步掌握程序中各种错误的检查排除方法。二、预备知识1、 8259A的内部结构8259A是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8 级中断。如图513所示,它由中断请求寄存器(IRR)、优先级分析器
2、、 中断服务寄存器(ISR)、中断屏蔽寄存器 (IMR)、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。数据总线缓冲器读写电路级联缓冲器 /比较器控 制 逻 辑服务寄存器I SR优先级分析器中断请求寄存器I RR中断屏蔽寄存器IMR-INTA INT-CSD0D7-RD-WRA0CAS0CAS1CAS2SP/-ENIR0内部总线IR1IR2IR3IR4IR5IR6IR7图513中断请求寄存器:寄存所有要求服务的请求IR0IR7。中断服务寄存器:寄存正在被服务的中断请求。 中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号, 该位为1,屏蔽该号中断,否则开放该号中断。数
3、据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线, 通过它可以由CPU对8259A写入状态字和控制字。读写控制电路:用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式。级联缓冲器/比较器:用于多片 8259A的连接,能构成多达64级的矢量中断系统。2、 8259A编程及初始化(1) 写初始化命令字* 写初始化命令字ICW1(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。A7 A6 A5 17 6 5 4 3 2 1 0 0=不需写ICW4;1= 需要写ICW40=多片8259级连;1
4、=只一片82590=中断向量地址间距8;1=地址间距4(8088模式下为0)0=上升沿触发;1=高电平触发为1,ICW1标志位中断向量A7,A6,A5位(8088模式下为000)* 写初始化命令字ICW2,以定义中断向量的高五位类型码。A15/T7 A14/T6 A13/T5 A12/T4 A11/T3 A10 A9 A87 6 5 4 3 2 1 0A15-A8: 8080/8085方式下的中断向量高8位,8088方式下A8-A0不用,设为000T7-T3: 8086/8088方式下的中断向量 * 写初始化命令字ICW3,以定义主片8259A 中断请求线上IR0IR7有无级联的8259A 从
5、片。 IR7 IR0主片7 6 5 4 3 2 1 0 第i位=0,表明 IRi引脚上无从片第i位=1,表明 IRi引脚上有从片从片7 6 5 4 3 2 1 0000:从片连在主片的IR0上001:从片连在主片的IR1上111:从片连在主片的IR7上* 写初始化命令ICW4,用来定义8259A 工作时用8085模式,还是8088模式,以及中7 6 5 4 3 2 1 01=工作于8086/8088 方式0=工作于8080/8085 方式0=中断服务寄存器不自动复位,用EOI 命令复位1=中断服务寄存器自动复位0=从片1=主片0=8259与数据总线无缓冲器连接1=8259与数据总线有缓冲器连接
6、0=单片8259,一般嵌套方式1=多片8259,特殊嵌套方式断服务寄存器复位方式等。(2) 写控制命令字* 写操作命令字0CW1,用来设置或清除对中断源的屏蔽。IR7 IR07 6 5 4 3 2 1 0 第i位=0,对应的中断请求IRi 开放第i位=1,对应的中断请求IRi 屏蔽注: OCW1如不写,则在初始化命令写入后, OCW1为全开放状态。* 操作命令字OCW2,设置优先级是否进行循环、循环方式及中断结束方式。R SL EOI 0 0 L2 L1 L07 6 5 4 3 2 1 0 识别码 000111, 用户规定IR0-IR7 的最低优先级编码1=中断服务结束命令(EOI命令)0=L
7、2 L1 L0 编码无效1=L2 L1 L0 编码有效0=固定优先权1=循环优先权注: 8259A复位时自动设置 IR0优先权最高,IR7优先权最低。* 操作命令字OCW3,设置查询方式、特殊屏蔽方式以及读取8259中断寄存器的当前状态。7 6 5 4 3 2 1 0 00,01=无用10=下一个RD读中断请求寄存器IRR11=下一个RD读中断服务寄存器ISR1=查询命令;0=不是查询命令00,01=无用10=特殊屏蔽方式清除11=特殊屏蔽方式设置0 0 1(3) 8259A查询字通过OCW3命令字的设置,可使 CPU处于查询方式,随时查询8259A有否中断请求, 有则转入相应的中断服务程序。
8、I W2 W1 W07 6 5 4 3 2 1 0 1=有中断发生 000=IR0有中断请求 0=无中断发生 001=IR1有中断请求111=IR7有中断请求三、实验内容本系统中已设计有一片8259A 中断控制芯片,工作于主片方式,8个中断请求输入端IR0IR7对应的中断型号为8F ,其和中断矢量表关系如下表 5 3所示。表538259中断源 中断类型号 中断矢量表地址IR0 8 20H23HIR1 9 24H27HIR2 A 28H2BHIR3 B 2CH2FHIR4 C 30H33HIR5 D 34H37HIR6 E 38H3BHIR7 F 3CH3FH根据实验原理图514,8259A 和
9、8088系统总线直接相连,8259A 上连有一系统地址线A0,故 8259A 有2 个端口地址, 本系统中为20H 、21H。 20H 用来写ICW1, 21H 用来写ICW2、ICW3、ICW4,初始化命令字写好后, 再写操作命令字。OCW2、OCW3 用口地址20H,OCW1用口地址21H。8259A初始化为:a) 设置ICW1边沿触发,单片8259,使用ICW4;b) 设置通过8259A 的IRQ3向8088送出的中断类型号是十进制的11,即要求ICW2为08H,再加上8259A的IRQ3的类型为 3,所以正好是11。因此 IRQ3的中断入口的地址在中断矢量表中2CH2FH 的 4个字节
10、。c) 完全嵌套,非缓冲方式,不自动复位,用EOI方式复位 ,8088工作方式d) 开放三号中断图514中,使用了3号中断源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。CPU响应中断后,在中断服务中, 对中断次数进行计数并显示,(通过8255A 送到发光二极管进行显示。 )CB01104EB0122U/16VVCCGNDD011 IR0 18D110 IR1 19D29 IR2 20D38 IR3 21D47 IR4 22D56 IR5 23D65 IR6 24D74 IR7 25INT17 INTA26 SP/EN16C
11、S 1RD3CAS012WR2CAS113A027CAS215VCCUB08259D0D1D2D3D4D5D6D71 2 3 4 5 6 7 89JB014.7KIR0IR1IR2IR3IR4IR5IR6IR7CS6RB024.7KADD0IOWIORINTRINTAGNDRB0110KIR3SP图514四、实验线路连接8259A的IRQ3插孔和脉冲发生器单元SP插孔相连(图中IR3=IRQ3)。SP 插孔初始电平置为低电平。五、实验软件框图开始调用显示“82591”子程序填8259中断向量表8259初始化(8255初始化)开中断等待中断关中断累计显示中断次数判中断次数满5次否?调用显示“8259good”结束次数加1中断返回NY中断服务程序:主程序:六、实验步骤1、 按图514连好实验线路2、 打开实验装置电源开关,查看数码管是否显示“DVCC-86”3、 运行DV88程序4、 编写编译完成上述要求的程序:5、 装入实验装置中,运行检查结果正确与否(按AN按键,每按一次产生一次中断,在LED发光二极管上显示中断次数)。累计显示进入中断的次数发中断结束命令并返回
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。