文档介绍:杭电微机原理定时器计数器实验 报告
微型计算机原理与接
口
技术实验报告
班―
学上
姓 名:
指导老师: 朱亚萍
实验名称:定时器/计数器
8259 单级中断控制器实验
2015 年 12 月 23 日
实验的 INT 连 8088 的 INTR ;
⑵ 8259 的 INTA 连 8088 的 INTA ;
⑶“”插孔和8259的3号中断IR3插孔相连,“”端初
始为低电平;
⑷ 8259的 CS端接 FF80H孔。
.在PC机和实验系统联机状态下,新建实验程序,编辑完成后进 行保存(保存后缀为
.asm文件);
.编译下载;
.全速运行,运行程序。
七、实验程序
(b) IR3中断服务程
序
;BUFH码管蠹显示数
DATA SEGMENT
BUF DB 6 DUP⑺
CONT DB ?
DATA1: DB 0c0h,0f9h,0a4h,0b0h,99h, DB 92h,82h,0f8h,80h,90h, DB 88h,83h,0c6h,0a1h,86h, DB 8eh,0ffh,0ch,89h,0deh, DB 0c7h,8ch,0f3h,0bfh,8fh
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE,DS:
DATA
INT_1 EQU 0FF80H
INT_2 EQU 0FF81H
INT_IR3 EQU ADD1_IR3
INT_IR7 EQU ERR_IR7 MAIN PROC FAR
START: MOV AX, DATA MOV DS, AX MOV ES, AX CLD CALL BUF1 CALL INIT_8259 CALL WRI_INTE MOV CONT, 1 STI
WATING: CALL DISP JMP WATING
MAIN ENDP
;设置数据段与附加段段 基址
;初始化8259
;写入中断向量
;开中
;循环扫描显示并等待中
INIT_8259
MOV MOV OUT MOV MOV OUT MOV OUT MOV OUT RET
PROC NEAR
DX, INT_1
AL, 13H
DX, AL
DX, INT_2
AL, 08H
DX, AL
AL, 09H
DX, AL
AL, F7H
DX, AL
;设置
ICW 1,边沿触发,单级使用
;设置ICW 2,表示中断类型码是
08H ;设置ICW 4,缓冲方式,8086/88
配置;设置OCW 1,开IR3中断
INIT 8259 ENDP
WRIINTE PROC NEAR
MOV AX, 0 MOV ES, AX MOV DI, 002cH LEA AX, INT_IR STOSW MOV AX, 0 STOSW
MOV DI, 003CH LEA AX, INT_IR STOSW MOV AX, 0 STOSW
RET
;ES指向中断向量表段地址
0000H ;DI=IR3的偏移地址;取中 断服务子程序偏移地址;放入 中断向量表;写中断服务子程 序段地址;放入中断向量表 ;DI=IR7的偏移地址;取中断服 务子程序偏移地址;放入中断 向量表;写中断服务子程序段 地址;放入中断向量表
;IR3中断服务子程序 关中断,不允许中断嵌
套 CTI
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV
AND
MOV
MOV MOV MOV
R_DIS: MOV INC LOOP MOV MOV OUT ADD CMP JNZ
MOV
AL, CONT
AL, 0FH
BX, OFFSET BUF
[BUF+5], AL
AL, 10H
CX, 5
[BX], AL
BX
R_DIS
AL, 20H
DX, INT_1
DX, AL
CONT, 1
CONT, 7
R_CON
CONT, 1
;保护现场
;取中断次数
;截取低四位
;取BUF偏移地址
;将AL的值放入
BUF[5]
CALL BUF2
INT_R: POP DX
POP CX
POP BX WRIINTE ENDP
;六位数码管只显示 CONT 一 位
;OCW 2的EOI命令
;发EOI命令,结束中断;记 录本次中断
;判断中断次数是否达到 5
次;达到)CONT置1
;显示 “ 555555”
ADD1_IR3 PROC NEAR
POP AX
STI