2片8259A级联构成中断系统,主片中断类型号从 10H开始。从片的中断申请连主片的IR4引脚,中断类型号分别从20H开始。主片端口地址20H、21H,从片端口地址AOH,A1H,主、从片采用电平触发,嵌套方式,普通中断结束方式。请画出连接示意图,写出主从片的初始化程序段。
时间: 2024-10-23 10:10:06 浏览: 224
在2片8259A级联构建中断系统中,我们可以按照以下步骤设置连接和编写初始化程序:
**连接示意图:**
1. 主片(Master)的INTA(输入A)接至从片的IRR(中断请求寄存器)的IR4引脚。
2. 主片的ICW1(命令字1)写入8259A的低8位地址(即20H),用于配置中断源的优先级和选择功能寄存器。
3. 主片的ICW2写入低8位地址(20H)加上4(因为主片的中断类型号从10H开始),配置IRR和ISR(中断服务寄存器)的关系。
4. 主片的ICW3写入高8位地址(21H),配置IMR(中断屏蔽寄存器)和IRR的映射关系。
5. 从片的ICW1写入AOH(8259A的低8位地址,对应从片中断源),配置中断源和优先级。
6. 从片的ICW2同样写入AOH加上4,配置IRR和ISR的关系。
7. 从片的ICW3写入A1H,配置IMR和IRR的映射。
**初始化程序段(假设用汇编语言编写)**:
```assembly
; Master Chip (Master)
ICW1_MASTER: MOV AL, 0x01 ; Enable master chip, select active low trigger
OUT 20H, AL ; Port A = 0x01 for ICW1
ICW2_MASTER: MOV AL, 0x04 ; IR4 (from slave) to INTA
MOV BL, 0x10 ; Interrupt type number starts from 10H
ADD AL, BL ; Combined address
OUT 20H, AL ; Port A = combined address for ICW2
ICW3_MASTER: MOV AL, 0x00 ; No interrupts masked initially
OUT 21H, AL ; Port B = 0x00 for ICW3
; Slave Chip (Slave)
ICW1_SLAVE: MOV AL, 0x01 ; Enable slave chip, select active low trigger
OUT AOH, AL ; Port A = 0x01 for ICW1
ICW2_SLAVE: MOV AL, 0x04 ; IR4 mapped to IRR (master's INTA)
MOV BL, 0x20 ; Interrupt type number starts from 20H
ADD AL, BL ; Combined address
OUT AOH, AL ; Port A = combined address for ICW2
ICW3_SLAVE: MOV AL, 0x00 ; No interrupts masked initially
OUT A1H, AL ; Port B = 0x00 for ICW3
```
注意:实际操作时需要考虑具体硬件接口和总线协议,并确保所有信号线正确连接。同时,上述代码简化了部分细节,如等待中断结束后才继续初始化等。
阅读全文