文档详情

第9章中断与中断管理详解.ppt

发布:2017-05-27约1.75万字共129页下载文档
文本预览下载声明
MOV DX,IO3 ;8259A初始化 MOV AL OUT DX,AL MOV AL,60H MOV DX,IO3+2 OUT DX,AL MOV AL, 1 OUT DX,AL MOV AL OUT DX,AL ;完成初始化 MOV AL ;8255A初始化 MOV DX,IO2+6 OUT DX,AL MOV AL,00H MOV DX,IO2 OUT DX,AL MOV AL,37H ;8253初始化 MOV DX,IO1+6 OUT DX,AL MOV DX,IO1 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL MOV AL,71H MOV DX,IO1+6 OUT DX,AL MOV DX,IO1+2 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL MOV BL,1 ;开始时D1亮 STI INTPROC PROC FAR ;中断服务子程序 PUSH AX ;保护现场 PUSHF MOV AL,BL ;对8255A的A口送数 MOV DX,IO2 OUT DX,AL ROL AL,1 MOV BL,AL MOV AL,37H ;重新设置8253 MOV DX,IO1+6 OUT DX,AL MOV DX,IO1 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX, AL MOV AL,71H MOV DX,IO1+6 OUT DX,AL MOV DX,IO1+2 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL MOV AL,20H ;发EOC命令 MOV DX,IO1 OUT DX,AL OUT 20H,AL POPF ;恢复现场 POP AX IRET ;中断返回 INTPROC ENDP 从编程角度看,8259A内部有2组寄存器: 初始化命令字寄存器 操作命令字寄存器 8259A对寄存器的访问通过端口 每一个8259A芯片都有两个端口地址: 在下面命令字格式图示中,左边都有一个上方标“A0”的方框: 框内为“0”,表示该命令字应写入8259A的A0为“0”的端口; 框内为“1”,表示该命令字应写入8259A的A0为“1”的端口。 9.3.5 8259A的编程与应用 1、8259A的初始化命令字ICW 说明: ICW按固定的顺序写入; ICW1、 ICW2必须设置; ICW3在级联时设置; ICW4在需要设置某些工作方式时使用; 级联时,每一片8259A都要分别初始化。 1、8259A的初始化命令字ICW (1)初始化命令字ICW1 D3(LTIM)表示IRi的中断请求起作用的触发方式。 D2(ADI)设置调用时间间隔,80x86CPU模式下不用。 D1(SNGL)表示系统是使用单片8259A还是多片8259A。 D0(ICW4)表示是否需要ICW4。 D5~D7 80x86 CPU系统中未用,通常设置为0。 (2) 初始化命令字ICW2 设定8259A的中断类型号 D7~D3为中断类型号的高5位; D2~D0任意值,一般为000; 中断类型号 (8位) 高5位(ICW2 的D7~D3位) 低3位(由8259A按IR0~IR7三位编码值自动填入) (3)初始化命令字ICW3 8259A作为主片的格式: (3)初始化命令字ICW3 8259A作为从片的格式: D7~
显示全部
相似文档