其中:
8255A 的4个端的地址分别为:80H、81 H、82H和83 H,对应于8255A的A口、B口、C口和控制字寄存器。
8253的4个端的地址分别为:84H、85 H、86H和87 H,对应于8253的T0、T1、T2和控制字寄存器。
8259的2个端的地址分别为:88H、89 H。设8259的中断类型号为40~48 H,IRQ2的中断类型号为42H。
8253需要定时0.5s,通过T0,T1通道级联实现。0.5s/(1/ 2MHz)=1000000,设T0工作于方式2,初值为1000;T1工作于方式3,初值为1000(T1如果工作于方式0,则在中断服务子程序中需要重新写入初值,实现软件触发)。
程序如下: ;设置8259的中断向量
MOV AX,SEG IRQ2
MOV DS,AX
MOV DX, OFFSET IRQ2 MOV AL,42H MOV AH,25H INT 21H ;8259初始化
MOV AL,13H;ICW1边沿触发,单片8259,有ICW4
OUT 88H,AL
MOV AL,40H ;ICW2 中断类型号基值为40H OUT 89H,AL
MOV AL,01H ;ICW4 8088系统,普通EOI,;完全嵌套式 OUT 89H,AL MOV AL,0FDH
OUT 89H ,AL ;OCW1,设置IMR,中断屏蔽 ;8255初始化
MOV AL,90H;PA口输入,方式0;PB口输出,方式0
OUT 83H,AL
;8253初始化
;通道0初始化程序
MOV AL,00110101B ;通道0控制字,读写两字节,方式2,十进制计数 OUT 87H,AL
MOV AL, 00H
OUT 84H, AL ;写人低字节 MOV AL, 10H
OUT 84H, AL ;写人高字节
;通道1初始化程序
MOV AL,01110110B ;通道1控制字,读写两字节,方式3,十进制计数
OUT 87H,AL MOV AL, 00H
OUT 85H, AL ;写人低字节 MOV AL, 10H
OUT 85H, AL ;写人高字节 ;主程序
STI
ZX: HLT JMP ZX ;中断服务子程序 IRQ2: PUSH AX
STI
IN AL, 80H ;从A口读人开关状态 NOT AL ;A口开关状态取反
OUT 81H ,AL ;B口控制LED,指示开关状态 MOV AL,20H
OUT 88H,AL ;发中断结束普通EOI命令 POP AX IRET (2)
与(1)类似。但1s/(1/ 2MHz)=2000000,设T0工作于方式2,初值为2000;T1工作于方式3,初值为1000(T1如果工作于方式0,则在中断服务子程序中需要重新写入初值,实现软件触发)。
程序如下: ;设置8259的中断向量
XOR AX,SEG IRQ2
MOV DS,AX
MOV DX, OFFSET IRQ2 MOV AL,42H MOV AH,25H INT 21H ;8259初始化
MOV AL,13H;ICW1边沿触发,单片8259,有ICW4
OUT 88H,AL
MOV AL,40H ;ICW2 中断类型号基值为08H OUT 89H,AL
MOV AL,01H ;ICW4 8088系统,普通EOI,;完全嵌套式 OUT 89H,AL
MOV AL,0FDH
OUT 89H ,AL ;OCW1,设置IMR,中断屏蔽 ;8255初始化
MOV AL,90H;PA口输入,方式0;PB口输出,方式0
OUT 83H,AL ;8253初始化
;通道0初始化程序
MOV AL,00110101B ;通道0控制字,读写两字节,方式2,十进制计数 OUT 87H,AL
MOV AL, 00H
OUT 84H, AL ;写人低字节 MOV AL, 20H
OUT 84H, AL ;写人高字节
;通道1初始化程序
MOV AL,01010110B ;通道1控制字,读写两字节,方式3,十进制计数
OUT 87H,AL MOV AL, 00H
OUT 85H, AL ;写人低字节 MOV AL, 10H
OUT 85H, AL ;写人高字节 ;主程序
MOV AL, 0FEH ;熄灭一个灯,点亮一个灯为:01H OUT 81H, AL ;写人高字节 STI
ZX: HLT JMP ZX ;中断服务子程序 IRQ2: STI
ROL AL,1 ;熄灭灯左移,轮流熄灭
OUT 81H,AL
PUSH AX; MOV AL,20H
OUT 88H,AL ;发中断结束普通EOI命令 POP AX IRET