举例:设某系统只有一片8259A,端口地址为80H和 81H,边沿触发,需设ICW4,中断类型码为 18H~1FH,一般全嵌套方式,非自动中断结束, 缓冲方式。 程序: 单片方式 MO∨AL,13H 00010011→需ICW4 ouT 80H, AL 边沿触发 MO∨AL,18H 00011000 oUT 81H, AL →中断类型码高五位 MOV AL, ODH 缓冲方式 非自动中断结束 ou 81H, AL 00001101→8086/8088系统 主片 般全嵌套方式
举例:设某系统只有一片8259A,端口地址为80H和 81H,边沿触发,需设ICW4,中断类型码为 18H~1FH,一般全嵌套方式,非自动中断结束, 缓冲方式。 程序: MOV AL,13H OUT 80H,AL MOV AL,18H OUT 81H,AL MOV AL,0DH OUT 81H,AL 00010011 需ICW4 单片方式 边沿触发 00001101 8086/8088系统 非自动中断结束 主片 缓冲方式 一般全嵌套方式 00011000 中断类型码高五位
3、8259A操作命令字 ①OCW1:中断屏蔽命令字(A0=1) M7 M6 M5 M4 M3 M2 M1 MO 若M位为1,则对应IR的中断请求就被屏蔽,若为 0,则对应IR的中断请求就被允许 举例:设8259A端口地址为20H和21H,开放IR2和 IR7中断,其它均被屏蔽 MOV AL,7BH;01111011 ouT 21H, AL 要想读出中断屏蔽寄存器IMR的值:INAL,21H
3、8259A操作命令字 ① OCW1:中断屏蔽命令字 (A0=1) M7 M6 M5 M4 M3 M2 M1 M0 若Mi位为1,则对应IRi的中断请求就被屏蔽,若为 0,则对应IRi的中断请求就被允许。 举例:设8259A端口地址为20H和21H,开放IR2和 IR7中断,其它均被屏蔽 MOV AL,7BH ;01111011 OUT 21H,AL 要想读出中断屏蔽寄存器IMR的值:IN AL,21H
②OCW2:设置优先级循环方式和中断结束方式命令 字(A0=0) R SL EOI00 L2 L1 LO 特征位 中断等级代码 中断结束方式: 1发中断结束命令 说明L2LL是否有效: =0无效,=1有效 中断优先级循环方式: 0固定优先级,=1循环优先级
② OCW2:设置优先级循环方式和中断结束方式命令 字 (A0=0) R SL EOI 0 0 L2 L1 L0 中断等级代码 特征位 中断结束方式 : =1 发中断结束命令 说明L2L1L0是否有效: =0 无效,=1 有效 中断优先级循环方式: =0 固定优先级,=1 循环优先级
R,SL,EOI的各种组合的意义: R SL EOI 意义 000结束优先级自动循环方式 001般中断结束命令 010无意义 011特殊中断结束命令,1Sn1210指定 100设定优先级自动循环方式 101一般中断结束命令,且当前优先级次序左移 位 110设定优先级特殊循环方式,由L2L1L0指定最 低优先级 1|11特殊中断结束命令,并设定为最低优先级
R,SL,EOI的各种组合的意义: R SL EOI 意 义 0 0 0 结束优先级自动循环方式 0 0 1 一般中断结束命令 0 1 0 无意义 0 1 1 特殊中断结束命令,ISn由L2L1L0指定 1 0 0 设定优先级自动循环方式 1 0 1 一般中断结束命令,且当前优先级次序左移 一位 1 1 0 设定优先级特殊循环方式,由L2L1L0指定最 低优先级 1 1 1 特殊中断结束命令,并设定为最低优先级
3、OCW3:(A0=0) 设置和撤消特殊屏蔽命令 功能{设置中断查询命令 设置对8259A内部寄存器的读出命令 0 ESMM SMM0 1P RR RIS 不用 =0读IRR 特征位 =1读ISR =1读IRR和ISR内容 =1中断查询工作方式 1设置特殊屏蔽方式=0撤消特殊屏蔽方式 SMM允许位:=1SMM有效,=0SMM无效
3、OCW3:(A0=0) 功能 设置和撤消特殊屏蔽命令 设置中断查询命令 设置对8259A内部寄存器的读出命令 0 ESMM SMM 0 1 P RR RIS =0 读IRR =1 读ISR =1 读IRR和ISR内容 =1 中断查询工作方式 =1 设置特殊屏蔽方式 =0 撤消特殊屏蔽方式 SMM允许位:=1 SMM有效,=0 SMM无效 特征位 不用