微处理器实验报告-实验五

《微处理器》实验报告

学院:                  

班级:                  

姓名:                  

学号:                  

实验五 外部中断实验(8259)

  • 实验要求

   利用8086控制8259可编程中断控制器,实现对外部中断的响应和处理。要求程序中每次中断进行计数,并将计数结果用8255的PA口输出到发光二极管显示。

  • 实验目的

1、学习8086与8259的连接方法。

2、学习8086对8259的编程控制方法。

3、了解8259的多片级联。

  • 实验电路及连线

1、Proteus实验电路

2、硬件验证实验

硬件连接表

接线孔1

接线孔2

8255 CS

8000H-8FFFH

8259 CS

C000H-CFFFH

PA0—PA7

D1—D8

IR0

单脉冲电路(下降沿)

  • 实验说明

8086的外部中断必须通过外接中断控制器才可以进行外部中断的处理。在编程时应注意:

1、正确地设置可编程中断控制器的工作方式。

2、必须正确地设置中断向量表和中断服务程序的入口地址。

8259可外接8个中断源,本实验响应IR0中断,在中断处理函数中,分别对计数器进行自减1运算,然后通过8255 PA口输出,由LED对计数结果进行显示。

将单脉冲信号接到8259的IR0脚。每次中断时,可以看到LED显示减1。

  • 实验程序流程图

  • 实验步骤

1、Proteus仿真

a、Proteus中打开设计文档8259_STM.pdsprj ;

b、建立实验程序并编译,加载hex文件,仿真;

c、如不能正常工作,打开调试窗口进行调试。

汇编语言参考程序:

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的段地址矢量

CLI                         ;中断屏蔽clear interrupt

POP DS

;初始化主片8259

MOV AL, 11H ;0001 0001 级联,边沿触发,要ICW4

OUT 20H, AL ;ICW1

MOV AL, 08H ;0000 1000 中断类型号从8开始

OUT 21H, AL ;ICW2

MOV AL, 04H ;0000 0100

OUT 21H, AL ;ICW3

MOV AL, 01H ;0000 0001 非缓冲方式,8086/8088配置

OUT 21H, AL ;ICW4

MOV AL, 6FH ;OCW1 0110 1111 IR7,IR4引脚的中断开放

OUT 21H, AL

STI                         ;恢复中断 set interrupt

AA1: NOP                         ;空指令

JMP AA1 ;无限循环

MIR7: STI                         

CALL DELAY                  ;延时

MOV AX, 0037H               ;37H

INT 10H ;显示字符7

MOV AX, 0020H                

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

2、实验板验证

a.通过USB线连接实验箱

b.按连接表连接电路

c.运行PROTEUS仿真,检查验证结果

原理图设计

源代码:

仿真内容:

  • 实验结果

中断请求信号的发出必须满足以下两个条件,即一是要设置中断请求触发器,二是要设置中断屏蔽触发器,在满足这两个的条件下,可以利用8086控制8259可编程中断控制器,实现对外部中断的响应和处理。

程序中每次中断进行计数,并将计数结果用8255的PA口输出到发光二极管显示。运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”,说明响应了中断。

  • 心得体会

这次实验是我们微处理器最后一节实验课,实验课给我们提供了一个将理论知识运用在实践当中的平台,通过结合实践,自己动手操作,加深了我对8259中断控制的理解,使我掌握了8086与8259的连接方法,以及如何利用编程实现对8259的控制。

相比于前几次实验,我认为这次实验难度并不低,尤其是实验过程中对实验箱的连线比较复杂,实验程序也是比较复杂。实验过程中我在控制字的确定这一环节费了不少功夫,确定控制字时一定要仔细对照控制子表,稍不注意就会出错。在编程时应注意:正确地设置可编程中断控制和工作方式;必须正确地设置中断服务程序地址。

这次实验不仅加深了我对理论知识的理解,而且还锻炼了我的思考能力和解决实际问题的能力,在实验中,汇编语言也让我积累了更加丰富的专业知识,同时对中断操作和功能实现的理解加深了印象,可谓是受益颇多。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青竹小轩_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值