微机原理与接口技术实验报告 接口部分
- 实验一 系统认识实验
1.实验内容 :编写实验程序,将00H~0FH 共16个数写入内存 3000H 开始的连续 16 个存储单元中。
2.实验源程序:
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS :CODE
START:PUSH DS
XOR AX,AX
MOV DS,AX
MOV SI,3000H
MOV CX,16
AA1:MOV [SI],AL
INC SI
INC AL
LOOP AA1
AA2:JMP AA2
CODE ENDS
END START
实验结果:

操作练习
1.实验内容 :编写程序,将内存 3500H 单元开始的 8 个字节数据相加,结果存放到3600H 字单元中,程序编辑、编译、连接、下载运行程序后,使用D命令查看3500H开始的数据区数据,和3600H字单元的结果。
2.实验源程序:
DATAS SEGMENT
ORG 3500H
NAME1 DB 1,2,3,4,5,6,7,8
ORG 3600H
SUM DW ?
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV SI,3500H
MOV DI,3600H
MOV CX,8
MOV AL,[SI]
NEXT: INC SI
ADD AL,[SI]
DEC CX
JNZ NEXT
MOV AH,0
MOV SUM,AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
实验结果:

实验二 .8259A实验
一、实验目的
1.掌握TD-PITE 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
2.学习在教学实验葙上构造连接实验电路的方法。
3.掌握8259中断控制器的工作原理。
4.掌握8259可编程中断控制器的应用编程。
5.学习掌握8259级连方式的使用方法。
二 实验设备
PC机一台,TD-PITE实验装置一套。 三、 实验内容及步骤
1 8259中断实验1
实验接线图如图2-3-11所示,单次脉冲输出与主片8259的MIR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。
1实验步骤
(1)按图2-3-11连接实验线路;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。
实验源程序:
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 MOV AX, CS MOV SI, 003EH
MOV [SI], AX CLI POP DS
;初始化主片8259 MOV AL, 11H
OUT 20H, AL MOV AL, 08H
OUT 21H, AL MOV AL, 04H
OUT 21H, AL MOV AL, 01H
OUT 21H, AL
;取中断入口地址 ;中断矢量地址
;填IRQ7的偏移矢量 ;段地址
;填IRQ7的段地址矢量
;ICW1 ;ICW2 ;ICW3 ;ICW4

MOV AL, 6FH OUT 21H, AL STI AA1: NOP
JMP AA1 MIR7: STI
CALL DELAY MOV AX, 0137H INT 10H 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
实验结果截图如下:

;OCW1
;显示字符7
;中断结束命令
2 8259级联实验
实验接线图如图2-3-12所示,KK1+连接到主片8259的MIR7上,KK2+连接到从片8259的SIR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。编写程序。
实验步骤
(1)按图2-3-12连接实验线路;
(2)输入程序,编译、链接无误后装入系统;

图2-3-12 8259级联实验
(3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性;
(4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。
实验程序清单
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
MOV AX, SEG MIR7
MOV SI, 003EH
MOV [SI], AX
MOV AX, OFFSET SIR1
MOV SI, 00C4H
MOV [SI], AX
MOV AX, SEG SIR1
MOV SI, 00C6H
MOV [SI], AX
CLI
POP DS
;初始化主片8259
MOV AL, 11H
OUT 20H, AL
MOV AL, 08H
OUT 21H, AL
MOV AL, 04H
OUT 21H, AL
MOV AL, 01H
OUT 21H, AL
;初始化从片8259
MOV AL, 11H
OUT 0A0H, AL
MOV AL, 30H
OUT 0A1H, AL
MOV AL, 02H
OUT 0A1H, AL
MOV AL, 01H
OUT 0A1H, AL
MOV AL, 0FDH ;取中断入口地址 ;中断矢量地址 ;填IRQ7的偏移矢量 ;段地址 ;填IRQ7的段地址矢量 ;ICW1 ;ICW2 ;ICW3 ;ICW4 ;ICW1 ;ICW2 ;ICW3 ;ICW4
OUT 0A1H,AL MOV AL, 6BH
OUT 21H, AL STI
AA1: NOP
JMP AA1
MIR7: CALL DELAY
MOV AX, 014DH
INT 10H MOV AX, 0137H
INT 10H MOV AX, 0120H INT 10H
MOV AL, 20H
OUT 20H, AL IRET
SIR1: CALL DELAY
MOV AX, 0153H
INT 10H MOV AX, 0131H
INT 10H 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
实验结果截图如下:
;OCW1 = 1111 1101 ;主8259 OCW1 ;M ;显示字符7 ;中断结束命令 ;S ;显示字符1

3、8259综合实验
①编写程序,在显示屏上循环显示0123456789的程序。通过编辑、编译、连接、下载、运行该程序,调试通过,显示结果正确,进行下一步操作;
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,0AH
MOV BL,30H
MOV AH,01H
A1: MOV AL,BL
INT 10H
INC BL
PUSH CX
MOV CX,0FFFFH
A2: LOOP A2
POP CX
DEC CX
JNZ A1
JMP START
CODE ENDS
END START
实验结果截图如下:

②编写程序,在显示屏上显示字符“OK”“。 通过编辑、编译、连接、下载、运行该程序,调试通过,显示结果正确,进行下一步操作;
CODE SEGMENT
ASSUME CS:CODE
MIR7:MOV DL,4FH ;显示字符’O’
MOV AH,01H ;显示一个字符
MOV AL,DL
INT 10H
MOV DL,4BH ;显示字符’K’
MOV AH,01H ;显示一个字符
MOV AL,DL
INT 10H
MOV DL,20H ;显示空格
MOV AH,01H ;显示一个字符
MOV AL,DL
INT 10H
PUSH CX
MOV CX,0FFFFH
AA:LOOP AA
POP CX
DONE:JMP DONE
CODE ENDS
END MIR7
实验结果截图如下:

③实验接线图如图2-3-11所示。将屏幕显示0123456789的程序作为主程序,在显示屏上显示字符“OK”的程序作为中断服务子程序。运行主程序后,当开关按下时,产生单次脉冲通过主片8259的IR7中断请求,每按动一次开关,产生一次外部中断,使CPU执行中断服务程序,在显示屏上输出字符“OK”。MIR7中断类型码从表1中看出,类型码为0FH.
SSTACK SEGMENT STACK
DW 100 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: CLI ;关中断
PUSH DS
MOV AX, 0000H
MOV DS, AX
MOV AX, OFFSET MIR7 ;取中断入口地址 MOV SI, 003CH ;中断矢量地址
MOV [SI], AX ;填MIR7的偏移矢量 MOV AX, SEG MIR7 ;段地址 MOV SI, 003EH
MOV [SI], AX ;填MIR7的段地址矢量 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
;初始化主片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
AA: MOV CX,0AH ;显示字符个数10送入CX MOV BL,30H ;显示字符
MOV AH,01H ;显示一个字符
A1: MOV AL,BL
INT 10H
INC BL ;显示下一个字符
PUSH CX
MOV CX,0FFFFH
A2: LOOP A2;延时
POP CX
DEC CX
JNZ A1
JMP AA;循环显示0~9
MIR7: CALL DELAY
MOV DL,4FH ;显示字符’O’
MOV AH,01H ;显示一个字符
MOV AL,DL
INT 10H
MOV DL,4BH ;显示字符’K’
MOV AH,01H ;显示一个字符
MOV AL,DL
INT 10H
MOV DL,20H ;显示空格
MOV AH,01H ;显示一个字符
MOV AL,DL
INT 10H
PUSH CX
MOV CX,0FFFFH
BB: LOOP BB;延时
POP CX
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
实验结果截图如下:

(5)如果使中断10次后自动退出中断,如何修改程序,并完成该实验。
SSTACK SEGMENT STACK
DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:SSTACK START: CLI
PUSH DS
MOV AX,0000H MOV DS,AX
MOV AX,OFFSET MIR7 MOV SI,003CH MOV [SI],AX MOV AX,CS
MOV SI,003EH MOV [SI],AX POP DS
MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,01H OUT 21H,AL MOV AL,6FH OUT 21H,AL MOV DX,11
STI
START1:MOV CX,10
MOV BL,30H MOV AH,01H A1: MOV AL,BL
INT 10H
INC BL
PUSH CX
MOV CX,0FFFFH A2: LOOP A2
POP CX
DEC CX
JNZ A1
JMP START1 MOV DX,10
MIR7: DEC DX
JZ A3
PROC MEAR
CALL DELAY
PUSH BX
MOV BL,4FH
MOV AH,01H
MOV AL,BL
INT 10H
MOV BL,4BH
MOV AH,01H
MOV AL,BL
INT 10H
MOV BL,20H
MOV AH,01H
MOV AL,BL
POP BX
INT 10H
PUSH CX
MOV CX,0FFFFH
AA: LOOP AA
POP CX
MOV AL,20H
OUT 20H,AL
A3: CLI
IRET
DELAY: PUSH CX
MOV CX,0F00H
AA0: PUSH AX
POP AX
LOOP AA0
POP CX
RET
CODE ENDS
END START
修改程序时只须再设计一个计数器即可。
实验三.8253/8254实验
一 实验目的
1. 掌握8254的工作方式及应用编程;
2. 掌握8254典型应用电路的接法。
二 实验设备
PC机一台,TD-PITE实验装置一套,示波器一台。
1. 计数应用实验
编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示一个字符“M”。
实验步骤:
(1)实验接线如图2-5-2所示;
(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 ;段地址
AA1:
IRQ7:
CODE
MOV SI, 003EH MOV [SI], AX CLI POP DS ;初始化主片8259 MOV AL, 11H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 04H OUT 21H, AL MOV AL, 01H OUT 21H, AL MOV AL, 6FH OUT 21H, AL ;8254 MOV DX, CON8254 MOV AL, 10H OUT DX, AL MOV DX, A8254 MOV AL, 04H OUT DX, AL STI JMP AA1 MOV DX, A8254 MOV AL, 04H OUT DX, AL MOV AX, 014DH INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET ENDS END START ;填IRQ7的段地址矢量 ;ICW1 ;ICW2 ;ICW3 ;ICW4 ;OCW1 ;计数器0,方式0 ;显示字符M ;中断结束命令 实验结果截图如下

2.修改内容1—计数应用实验程序,完成按动开关3次后产生中断,屏幕显示“M”。
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
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
;8254
MOV DX, CON8254
MOV AL, 10H ;计数器0,方式0
OUT DX, AL
MOV DX, A8254
MOV AL, 04H
OUT DX, AL
AA1:
IRQ7:
CODE
STI JMP AA1 MOV DX, A8254 MOV AL, 04H OUT DX, AL MOV AX, 014DH INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET ENDS END START ;显示字符M ;中断结束命令
3.修改内容1—计数应用实验程序,要求屏幕显示第几次中断中断? 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
MOV AL, 08H
OUT 21H, AL ;ICW2
MOV AL, 04H OUT 21H, AL MOV AL, 01H OUT 21H, AL MOV AL, 6FH OUT 21H, AL ;8254
MOV DX, CON8254 MOV AL, 10H OUT DX, AL MOV DX, A8254 MOV AL, 04H OUT DX, AL MOV CL,30H STI
AA1: JMP AA1
IRQ7: MOV DX, A8254 MOV AL, 04H OUT DX, AL INC CL MOV AH,01H MOV AL, CL INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET
CODE ENDS
END START
实验结果截图如下

;ICW3 ;ICW4 ;OCW1 ;计数器0,方式0 ;中断结束命令
4 定时应用实验
发光二极管点亮实验程序清单 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
START: MOV DX, CON8254 MOV AL, 36H OUT DX, AL
MOV DX, A8254
MOV AL, 0E8H
OUT DX, AL
MOV AL, 03H
OUT DX, AL
AA1: JMP AA1
CODE ENDS
END START
5循环显示OK
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
MOV AX,CS
MOV SI,003Eh
MOV [SI],AX 计数器0,方式3 ;8254 ;
CLI
POP DS
MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,01H OUT 21H,AL MOV AL,6FH OUT 21H,AL
MOV DX,CON8254 MOV AL,00110000B OUT DX,AL MOV DX,A8254 MOV AL,00001111B OUT DX,AL
MOV AL,00000000B OUT DX,AL AA1: STI JMP AA1
IRQ7:
MOV DX,A8254 MOV AL,11111111B OUT DX,AL
MOV AL,11111111B OUT DX,AL MOV AX,014FH INT 10H
MOV AX,014BH INT 10H
MOV AX,0120H INT 10H MOV AL,20H OUT 20H,AL IRET
CODE ENDS
END START
实验结果截图如下

实验四 8255并行接口实验
基本输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。接线图如下

实验源程序:
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT
ASSUME CS:CODE START: MOV DX, 0646H MOV AL, 90H OUT DX, AL AA1: MOV DX, 0640H IN AL, DX CALL DELAY MOV DX, 0642H OUT DX, AL JMP AA1 DELAY: PUSH CX
MOV CX, 0F00H AA2: PUSH AX POP AX
CODE LOOP AA2 POP CX RET ENDS
END START
实验现象:拨动相应的开关,相应的灯会亮或是灭。
2. 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。接线图如下:

实验源程序:
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT
ASSUME CS:CODE START: MOV DX, 0646H MOV AL, 80H OUT DX, AL MOV BX, 8001H AA1: MOV DX, 0640H MOV AL, BH OUT DX, AL ROR BH, 1 MOV DX, 0642H MOV AL, BL OUT DX, AL ROL BL, 1 CALL DELAY CALL DELAY JMP AA1 DELAY: PUSH CX
MOV CX, 0F000H AA2: PUSH AX POP AX LOOP AA2
CODE
POP CX RET ENDS END START
实验现象:数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
3. 修改流水灯显示程序,改变流水灯的显示方式,如4个灯亮,4个灯灭。
实验源程序:
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, 0646H
MOV AL, 80H
OUT DX, AL
MOV BX, 0F00FH
AA1: MOV DX, 0640H
MOV AL, BH
OUT DX, AL
ROR BH, 4
MOV DX, 0642H
MOV AL, BL
OUT DX, AL
ROL BL, 4
CALL DELAY
CALL DELAY
JMP AA1
DELAY: PUSH CX
MOV CX, 0F000H
AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START
实验现象:
数据灯D7~D0由左向右,每次点亮四个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次点亮四个灯,循环显示。
4. DATA SEGMENT
TABLES DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DATA ENDS
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE , DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,0646H
MOV AL,80H ;8255初始化,方式控制字 OUT DX,AL
MOV CX,10
NEXT0: LEA SI,TABLES
MOV BX,0
NEXT1: MOV AL,[SI]
MOV DX,0640H ;从8255A口输出
OUT DX,AL
CALL DALLY ;延时程序
CALL DALLY
CALL DALLY
INC SI
DEC CX
JNZ NEXT1
JMP START
DALLY: PUSH AX ;延时1s
MOV AX,0
T1: DEC AX
JNE T2
POP AX
RET
CODE ENDS
END START
实验现象:数码管循环显示0~9
实验五 综合实验
一、 实验目的
1. 学习并掌握8259,8254,8255的工作方式及其应用;
2. 掌握应用电路的设计方法和接线。
二、 实验设备
PC机一台,TD-PITE实验装置一套。
三、 实验内容
1实验描述:同学们分组到实验室做实验,实验室共能容纳5组,三人一组,用数码管显示已进入实验室的组数,进入5组后在屏幕上显示OK。
2接线图

3实验源程序
DATA SEGMENT
DTABLE DB 3FH,06H,5BH,4FH,66H
A8254 EQU 06C0H
B8254 EQU 06C2H
C8254 EQU 06C4H
CON8254 EQU 06C6H
A8255 EQU 0640H
B8255 EQU 0642H
C8255 EQU 0644H
CON8255 EQU 0646H
DATA ENDS
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:SSTACK,DS:DATA
START:PUSH DS
MOV AX,0000H
MOV DS,AX
MOV AX,OFFSET IRQ7 ;取中断入口地址 MOV SI,003CH ;中断矢量地址
MOV [SI],AX
MOV AX,CS ;段地址
MOV SI,003EH
MOV [SI],AX ;添IRQ7的段地址矢量 CLI
POP DS
;初始化主片8255
MOV DX,CON8255
MOV AL,80H
OUT DX,AL
MOV DX,A8255
MOV AL,0H
OUT DX,AL
;初始化主片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
;8254
MOV DX, CON8254
MOV AL, 10H ;计数器0,方式0 OUT DX, AL
MOV DX, A8254
MOV AL, 02H
OUT DX, AL
STI
MOV CX,5
LEA BX,DTABLE
AA1:JMP AA1
IRQ7: PUSH DX
PUSH AX
MOV DX, A8254
MOV AL, 02H
OUT DX, AL
DEC CX
JZ NEXT
MOV DX,0640H
MOV AL,[BX]
OUT DX,AL
INC BX
NOP
NOP
MOV AL,20H
OUT 20H,AL
POP AX
POP DX ;中断结束命令?
IRET
NEXT: MOV AX,014FH
INT 10H
MOV AX,014BH
INT 10H
POP AX
POP DX;显示字符OK
CODE ENDS
END START
5运行结果
数码管显示相应的次数,5次数计满后在屏幕上显示

OK