OFFSET MIR7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址 MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH
MOV [SI], AX ;填IRQ7的段地址矢量 CLI POP DS ;初始化主片8259 MOV AL, 11H
OUT 20H, AL ;ICW1 MOV AL, 08H
OUT 21H, AL ;ICW2 MOV AL, 04H
OUT 21H, AL ;ICW3 MOV AL, 01H
OUT 21H, AL ;ICW4 MOV AL, 6FH ;OCW1 OUT 21H, AL STI AA1: NOP JMP AA1
MIR7: STI CALL DELAY MOV AX, 0137H
INT 10H ;显示字符7 MOV AX, 0120H INT 10H
MOV AL, 20H
OUT 20H, AL ;中断结束命令 IRET DELAY: PUSH CX
MOV CX, 0F00H AA0: PUSH AX POP AX LOOP AA0 POP CX RET CODE ENDS
END START 实验步骤
1.按图连接实验线路。
2.编写实验程序,经编译、链接无误后装入系统。
3.运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”,说明响应了中断。
2. 8259级联实验
KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一
次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。编写程序。
实验程序清单: SSTACK SEGMENT
STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT
ASSUME CS:CODE START: PUSH DS
MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET MIR7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址
MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH
MOV [SI], AX ;填IRQ7的段地址矢量 MOV AX, OFFSET SIR1 MOV SI, 00C4H MOV [SI], AX MOV AX, CS MOV SI, 00C6H MOV [SI], AX CLI
POP DS ;初始化主片8259 MOV AL, 11H
OUT 20H, AL ;ICW1 MOV AL, 08H
OUT 21H, AL ;ICW2 MOV AL, 04H
OUT 21H, AL ;ICW3 MOV AL, 01H
OUT 21H, AL ;ICW4 ;初始化从片8259 MOV AL, 11H
OUT 0A0H, AL ;ICW1 MOV AL, 30H
OUT 0A1H, AL ;ICW2 MOV AL, 02H
OUT 0A1H, AL ;ICW3 MOV AL, 01H
OUT 0A1H, AL ;ICW4 MOV AL, 0FDH
OUT 0A1H,AL ;OCW1 = 1111 1101
MOV AL, 6BH
OUT 21H, AL ;主8259 OCW1 STI AA1: NOP JMP AA1
MIR7: CALL DELAY MOV AX, 014DH INT 10H ;M MOV AX, 0137H
INT 10H ;显示字符7 MOV AX, 0120H INT 10H
MOV AL, 20H
OUT 20H, AL ;中断结束命令 IRET
SIR1: CALL DELAY MOV AX, 0153H INT 10H ;S MOV AX, 0131H
INT 10H ;显示字符1 MOV AX, 0120H INT 10H
MOV AL, 20H OUT 0A0H, AL OUT 20H, AL IRET DELAY: PUSH CX
MOV CX, 0F00H AA0: PUSH AX POP AX LOOP AA0 POP CX RET CODE ENDS
END START
实验步骤
(1)按图4.16连接实验线路。
(2)输入程序,编译、链接无误后装入系统。
(3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性。 (4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。
实验五 8254定时/计数器应用实验
一、实验目的
1. 掌握8254的工作方式及应用编程。 2. 掌握8254典型应用电路的接法。
二、实验设备
PC机一台,TD-PITE实验装臵一套。
三、实验内容
1. 计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动“kk1+”5次后,产生一次计数中断,并在屏幕上显示一个字符“M”。 2. 定时应用实验。编写程序,应用8254的定时功能,产生一个1s的方波。
四、实验步骤
1.计数应用实验 编写程序,将8254 的计数器0 设臵为方式3,计数值为十进制数4,用单次脉冲KK1+ 作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动5 次后产生中断请求,在屏幕上显示字符“M”。 实验步骤:
(1)实验接线。
(2)编写实验程序,经编译、链接无误后装入系统。
(3)运行程序,按动KK1+产生单次脉冲,观察实验现象。 (4)改变计数值,验证8254 的计数功能。 程序清单
A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6H SSTACK SEGMENT
STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK START: PUSH DS
MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET IRQ7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址
MOV [SI], AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH
MOV [SI], AX ;填IRQ7的段地址矢量 CLI POP DS ;初始化主片8259 MOV AL, 11H
OUT 20H, AL ;ICW1
相关推荐: