北京理工大学自动化专业微机原理硬件软件实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理与接口技术

硬件实验报告

班级:

姓名:

学号:

实验一: 8259中断控制器实验

一、实验目的

1. 掌握8259的工作原理。

2. 掌握编写中断服务程序的方法。

3. 掌握初始化中断向量的方法。

二、实验内容

用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。

三、实验设备

微机实验教学系统实验箱、8086CPU模块

四、连线

①单脉冲发生器输出P+与8259的IR0相连

②8259的片选CS8259与CS0相连

③8259的INT与8086的INT相连

④8259的INTA与8086的INTA相连

⑤CS273与CS1相连

⑥00与LED1相连

其它线均已连好如下图:

五、实验步骤

(1)连线。

(2)编辑程序,编译链接后,调试程序。

(3)调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。

(4)撰写实验报告。

六、实验源程序

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START: MOV DX,4A0H ;写ICW1

MOV AX,13H

OUT DX,AX

MOV DX,4A2H ;写ICW2

MOV AX,80H ;IR0的中断向量码为80H

OUT DX,AX

MOV AX,01

OUT DX,AX ;一般嵌套,非缓冲,非自动EOI

MOV AX,0 ;写OCW1

OUT DX,AX ;允许中断

;中断向量存放在(0000H:0200H)开始的四个单元里

MOV AX,0

MOV DS,AX

MOV SI,200H ;中断类型号为80H

MOV AX,OFFSET HINT ;中断服务程序的入口地址

MOV DS:[SI],AX

ADD SI,2

MOV AX,CS

MOV DS:[SI],AX

STI ;开中断,设置IF=1

JMP $ ;原地跳转

HINT: ;中断服务程序

XOR CX,0FFH ;CX取反

MOV DX,4B0H ;CS273接口的地址,与8个LED灯相连

MOV AX,CX ;输出高低电平控制LED灯的亮灭

OUT DX,AX

MOV DX,4A0H ;OCW2的地址

MOV AX,20H ;一般EOI命令,全嵌套方式

OUT DX,AX

IRET ;中断返回

CODE ENDS

END START

七、实验思考题

1.将P+连线连接到IR1—IR7任意一个;重新编写程序。

将P+接到IR1,在原程序的基础上,把写ICW2的控制字改为81H,再把中断向量的入口地址改为0204H即可。程序如下:

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START: MOV DX,4A0H ;写ICW1

MOV AX,13H

OUT DX,AX

MOV DX,4A2H ;写ICW2

MOV AX,81H ;IR0的中断向量码为81H

OUT DX,AX

MOV AX,01

OUT DX,AX ;一般嵌套,非缓冲,非自动EOI

MOV AX,0 ;写OCW1

OUT DX,AX ;允许中断

;中断向量存放在(0000H:0200H)开始的四个单元里

MOV AX,0

MOV DS,AX

MOV SI,204H ;中断类型号为81H

MOV AX,OFFSET HINT ;中断服务程序的入口地址

MOV DS:[SI],AX

ADD SI,2

MOV AX,CS

MOV DS:[SI],AX

STI ;开中断,设置IF=1

JMP $ ;原地跳转

HINT: ;中断服务程序

XOR CX,0FFH ;CX取反

MOV DX,4B0H ;CS273接口的地址,与8个LED灯相连

MOV AX,CX ;输出高低电平控制LED灯的亮灭

OUT DX,AX

MOV DX,4A0H ;OCW2的地址

MOV AX,20H ;一般EOI命令,全嵌套方式

OUT DX,AX

IRET ;中断返回

CODE ENDS

END START

实验现象:

运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。

2.设置OCW1,屏蔽某个中断请求,运行程序观察现象。

将IR0重新接入LED0,设置OWC1为01H,屏蔽中断IR0,则IR0的中断无法得到响应。程序如下:

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START: MOV DX,4A0H ;ICW1的地址,写初始化命令字ICW1 MOV AX,13H ;上升沿触发单片8259,要写ICW4

OUT DX,AX

MOV DX,4A2H ;ICW2的地址,写中断向量码ICW2

MOV AX,80H ;IR0的中断向量码为80H

OUT DX,AX

MOV AX,01 ;写中断结束控制字ICW4

OUT DX,AX ;一般嵌套,非缓冲,非自动EOI

MOV AX,01H ;写中断屏蔽字OCW1

OUT DX,AX ;屏蔽IR0中断

;中断向量存放在(0000H:0200H)开始的四个单元里

MOV AX,0

MOV DS,AX

MOV SI,200H ;中断类型号为80H

MOV AX,OFFSET HINT ;中断服务程序的入口地址

MOV DS:[SI],AX

ADD SI,2

MOV AX,CS

MOV DS:[SI],AX

STI ;开中断,设置IF=1

JMP $ ;原地跳转

HINT: ;中断服务程序

XOR CX,0FFH ;CX取反

MOV DX,4B0H ;CS273接口的地址,与8个LED灯相连

MOV AX,CX ;输出高低电平控制LED灯的亮灭

OUT DX,AX

MOV DX,4A0H ;OCW2的地址

MOV AX,20H ;一般EOI命令,全嵌套方式

OUT DX,AX

IRET ;中断返回

CODE ENDS

END START

实验现象:

每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。

3. 设置OCW2,了解中断结束方式与设置优先权。

将IR0和IR1都连接到P+上,分别连接LED0和LED1到00和01。一般EOI命令,将IR0设置为最低中断优先级。程序如下:

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START: MOV DX,4A0H ;ICW1的地址

MOV AX,13H ;上升沿触发,单片8259,要写ICW4

OUT DX,AX

MOV DX,4A2H ;ICW2的地址

MOV AX,80H ;IRO的中断向量码为80H,第三位自动写入

OUT DX,AX

MOV AX,01 ;写ICW4

相关文档
最新文档