中断系统

###定义


中断”,是指CPU暂时停止正在执行的程序,转去执行请求CPU为之服务的内、外部事件的服务程序,待该服务程序执行完后,又返回到被暂停的程序继续运行的过程。


微机原理-07-中断系统_外部中断

中断的作用

  • (1)可以提高CPU的工作效率
    CPU有了中断功能就可以通过分时操作启动多个外设同时工作,并能对它们进行统一管理。CPU在与外设交换信息时通过中断就可以避免不必要的等待和查询,从而大大提高它的工作效率
  • (2)可以提高实时数据的处理时效
    在实时控制系统中,被控系统的实时参量、超限数据和故障信息等,必须为计算机及时采集、分析判断和处理,以便对系统实施正确的调节和控制。CPU有了中断功能,系统的失常和故障就都可以通过中断立刻通知CPU,使它可以迅速采集实时数据和故障信息,
    并对系统做出应急处理。

中断源

1.外部设备中断源

打印机和键盘等计算机外设都可以用做中断源。

2.控制对象中断源

被控对象常常是实时控制计算机的主要中断源。

3.故障中断源

4.定时脉冲中断源

定时器/计数器溢出时产生的信号可引起CPU的中断,使CPU可以进行定时或计数的处理,以便达到时间或计数控制的目的。

5.软件引起的中断源

中断分类

1.按中断产生的位置分类

(1)外部中断,或称外部硬件实时中断,它是由外部送到CPU的某一特定引脚上产生的。

(2)内部中断,或称软件指令中断,是为了处理程序运行过程中发生的一些意外情况或调试程序方便而提供的中断。

2.按接受中断的方式分类

(1)可屏蔽中断

(2)非屏蔽中断,只要中断源提出请求,CPU就必须响应,主要用于一些紧急情况的处理,如掉电等。

中断流程

微机原理-07-中断系统_外部中断_02

微机原理-07-中断系统_外部中断_03

微机原理-07-中断系统_数据_04

####中断响应的条件

① 总中​断允许打开​,IE寄存器中的中断总允许位EA(IE.7)被置位,即EA为1。

② 该中断源的中断允许位为“1”,即该​中断未被屏蔽。

③ 该中断源发出中断请求,即该中断源对应的​中断请求标志为“1”。

④ 无​同级或更高级中断正在被服务。

前两个条件需要在程序中通过编程来设置。

微机原理-07-中断系统_中断请求_05

微机原理-07-中断系统_外部中断_06

微机原理-07-中断系统_外部中断_07

练习

3.什么叫中断源?AT89S51有哪些中断源?各有什么特点?

****答:****引起中断的原因称为中断源。AT89S51中断系统共有5个中断请求源:

(1)外部中断请求0,中断请求标志为IE0。

(2)外部中断请求1,中断请求标志为IE1。

(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。

(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。

(5)串行口中断请求,中断请求标志为TI或RI。

特点:2个外部中断源,3个内部中断源。

5.AT89S51的6个中断标志位代号是什么?它们在什么情况下被置位和复位?

答:

(1)外部中断0中断请求标志为IE0。

(2)外部中断1中断请求标志位为IE1。

(3)定时器/计数器T0溢出中断请求标志位为TF0。

(4)定时器/计数器T1溢出中断请求标志位为TF1。

(5)串行口发送中断请求标志位为TI。

(6)串行口接收中断请求标志位为RI。

各标志位因有相应的中断请求而置位,前四个标志位因相应的中断请求被响应而复位,而后两个标志位则是在中断服务程序里通过软件复位。

微机原理-07-中断系统_中断请求_08

*答:*

程序为:

用位操作指令:

SETB PX0

SETB PX1

SETB  EA

SETB  EX0

SETB  EX1

用字节操作指令:

MOV IE,#85H

MOV IP,#05H

微机原理-07-中断系统_外部中断_09

10.试写出微机原理-07-中断系统_外部中断_10[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ET8yqRD4-1586394702574)(file:///C:\Users\JACKIN~1\AppData\Local\Temp\ksohtml17144\wps15.png)]为下降沿触发方式的中断初始化程序。

*答:*

ORG 0000H

AJMP MAIN

ORG 0013H

AJMP PINT1

ORG 0100H

MAIN: SETB IT1

SETB EX1

SETB EA

HERE: AJMP HERE

PINT1: RETI

END

17.AT89S51单片机响应中断后,产生硬件长调用指令LCALL,执行指令的过程包括:首先把( PC )的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送( PC ),使程序执行转向( 程序存储器 )中的中断地址区。