54
单单单单单单单单 主主主 主5主 AT89C51 主主主主主主单单单单 5 .1 单单单单 5 .2 AT89C51 单单单5 .3 单单单 单单单 单单单单 单单单单单单

第 5 章 AT89C51 单片机中断系统

Embed Size (px)

DESCRIPTION

第 5 章 AT89C51 单片机中断系统. 教学目标 5.1 中断概述 5.2 AT89C51 中断系统 5.3 中断系统的应用 本章小结 思考题与习题. 教学目标. 通过本章教学,要求达到以下目标: 1 .熟记 AT89C51 5 个中断源及其中断入口地址。 2 .熟悉 TCON 、 SCON 、 IE 、 IP 的结构、控制 作用和设置方法。 3 .理解 AT89C51 中断响应过程。 4 .了解中断响应等待时间。 5 .理解中断请求撤除情况和应对措施。 6 .熟悉中断优先控制的方法。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

第 5 章 AT89C51 单片机中断系统 教学目标

5.1 中断概述

5.2 AT89C51中断系统

5.3 中断系统的应用

本章小结

思考题与习题

Page 2: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

教学目标 通过本章教学,要求达到以下目标:1 .熟记 AT89C51 5 个中断源及其中断入口地址。2 .熟悉 TCON 、 SCON 、 IE 、 IP 的结构、控制

作用和设置方法。3 .理解 AT89C51 中断响应过程。4 .了解中断响应等待时间。5 .理解中断请求撤除情况和应对措施。6 .熟悉中断优先控制的方法。7 .掌握中断应用程序的编制方法。

Page 3: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.1 中断概述

1. 中断概念

CPU 暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。

Page 4: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

中断概念类比

看电视

中断处理

中断请求

实际生活

中断返回

电话铃响

接听电话

看电视

主程序

计算机

事件发生

事件处理

主程序

图 5.1 中断概念示意图

Page 5: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

A主程序

响应返回

断点

RETI

……

B中断服务程序

图 5.2 中断过程示意图

Page 6: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

2 .为什么要设中断 中断解决了快速主机与慢速 I/O 设备的数据传送,还具有如下优点:

( 1 )分时操作。 CPU 可以分时为多个 I/O 设 备服务,提高了计算机的利用率; ( 2 )实时响应。 CPU 能够及时处理应用系 统的随机事件,系统的实时性大大增强; ( 3 )可靠性高。 CPU 具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。

Page 7: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

3 .中断源及其优先级

中断源是指能发出中断请求,引起中断的装置或事件。一个单片机系统通常有多个中断源,而单片机 CPU 在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向CPU 发出中断请求时,则必须按照“优先级别”进行排队, CPU 首先选定其中中断级别最高的中断源为其服务,然后按由高到低的排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是“中断优先级”的概念。

Page 8: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

4. 中断源的管理

单片机系统中有一个专门用来管

理中断源的机构,它就是中断控制寄存器,我们可以通过对其编程来设置中断源的优先级别以及是否允许某个中断源的中断请求等。

Page 9: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.2 AT89C51 中断系统的结构 5.2.1 中断源及中断系统构成 1. 中断源: (1) INT0 :外部中断 0 ; (2) INT1 :外部中断 1 ; (3) T0 :定时 / 计数器 0 溢出中断; (4) T1 :定时 / 计数器 1 溢出中断; (5) 串行中断(包括串行接收中断 RI 和 串行发送中断 TI )。

Page 10: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.2.1 中断源及中断系统构成

IE0

EX0

TF0

IE1

TF1

TI

ES

ET1

EX1

ET0

RI

IP硬件查询

高级中断请求

低级中断请求

中断入口地址

中断源

INT0

INT1

中断入口地址

中断源

1

0

IE

PX0

PS

PT1

PX1

PT0

1

1

1

1

1

1

1

1

1

10

0

0

0

0

EA 1

≥1

SCON

1

1

T0

T1

RXTX

IT0

IT1

0

0

TCON

图 5.3 AT89C51 中断系统结构示意图

Page 11: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.2.2 中断标志与中断控制

1 .中断标志 (1) 定时器控制寄存器 TCON

TCON 为 8 位特殊功能寄存器,其结构、

位名称、位地址及其功能如表 5.1 所示。

Page 12: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

表 5.1 TCON 的结构、位名称、位地址和功能

位编码位名称 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

功 能

T1 中断标志位T1 启停控制位T0 中断标志位

TCON.0

/INT1 中断标志位

/INT0 中断标志位

/INT1 触发方式位

/INT0 触发方式位

T0 启停控制位

TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7

Page 13: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

表 5.1 TCON 的结构、位名称、位地址和功能

位编码位名称 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

状 态

TCON.0TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7

外部中断 0采用电平触发

0

外部中断 0采用边沿触发

1

1 1

外部中断1 采用边沿触发

0

外部中断1 采用电平触发

0 0 0 0

单片机复位时或无中断请求发生时,这些位均为 0

外部中断 1 发出中断请求时外部中断 0 发出中断请求时

111

T0 发出中断请求时T1 发出中断请求时单片机复位或 T0 停止计数 启动 T0开始计数单片机复位或 T1 停止计数启动 T1开始计数

0 011

Page 14: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

( 2 ) SCON 的中断标志

串行控制寄存器 SCON 的结构、位名称、位地址及其功能如表 5.2 所示。其中只有 TI 和 RI

两位用来表示串行口中断标志位。

Page 15: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

表 5.2 SCON 的结构、位名称、位地址和功能

位编码位名称 SM0 SM1 SM2 REN TB8 RB8 TI RI

位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H

功 能

SCON.0

串行发送中断标志位

串行接收中断标志位

SCON.1SCON.2SCON.3SCON.4SCON.5SCON.6SCON.7

Page 16: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

1) TI :为串行口发送中断标志位,位地址为 99H 。在串行口发送完一组数据时, TI 由硬件自动置位 (TI=1) ,请求中断,当 CPU 响应中断进入中断服务程序后, TI 状态不能被硬件自动清除,而必须在中断程序中由软件来清除。

2) RI :为串行口接收中断标志位,位地址为 98H 。在串行口接收完一组串行数据时, RI

由硬件自动置位 (RI=1) ,请求中断,当 CPU 响应中断进入中断服务程序后,也必须由软件来清除 RI 标志。

Page 17: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

1) 中断允许控制寄存器 IE

2. 中断控制

AT89C51 设有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器 IE各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位,每位状态靠软件来设定。中断允许控制寄存器 IE各位的定义及其功能等如表 5.3 所示。

Page 18: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

表 5.3 IE 的结构、位名称、位地址和功能 位编码 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0

位名称 EA — ET2 ES ET1 EX1 ET0 EX0

位地址 AFH — ADH ACH ABH AAH A9H A8H

功 能

中断总允许控制位 定时器 T1 的溢出

中断允许控制位

外部中断 1 的中断允许控制位

定时器 T0 的溢出中断允许控制位

外部中断 0 的中断允许控制位

串行口中断允许控制位定时器 T2 的溢出

中断允许控制位

Page 19: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

表 5.3 IE 的结构、位名称、位地址和功能 位编码 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0

位名称 EA — ET2 ES ET1 EX1 ET0 EX0

位地址 AFH — ADH ACH ABH AAH A9H A8H

功 能

禁止所有中断

开通外部中断 /INT0禁止其他中断

0 0 0 0 0 0 0

开通总中断

1

所有中断仍被禁止

0 0 0 0 0 10 1 0 0 1 0

开通 T0 和串行口中断禁止其他中断

1 1 1 1 1 1

开通所有中断

Page 20: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

(1) EA(IE.7) :总允许控制位,位地址为 AFH 。EA 状态可由软件设定,若 EA=0 ,禁止 AT89C5

1 所有中断源的中断请求;若 EA=1 ,则总控制被开放,但每个中断源是允许还是被禁止 CPU

响应,还受控于中断源的各自中断允许控制位的状态。

(2) ET2(IE.5) :定时器 T2 溢出中断允许控制位,位地址是 ADH 。

(3) ES(IE.4) :串行口中断允许控制位,位地址是 ACH 。

Page 21: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

(4) ET1(IE.3) :定时器 T1 的溢出中断允许控制位,位地址为 ABH 。

(5) EX1(IE.2) :外部中断 的中断请求允许控制位,位地址是 AAH 。

(6) ET0(IE.1) :定时器 T0 的溢出中断允许控制位,位地址是 A9H 。

(7)  EX0(IE.0) :外部中断 的中断请求允许控制位,位地址是 A8H 。

1INT

0INT

Page 22: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

2 )中断优先级控制寄存器 IP

AT89C51 的中断源优先级是由中断优先寄存器 IP 来进行控制的。其 5 个中断源划分为两个中断优先级:高优先级和低优先级。每一个中断源都可以通过 IP 寄存器中的相应位设置成高 ( 优先 ) 级中断或低 ( 优先 ) 级中断。相应位置“ 1” ,定义为高级中断,相应位清“ 0” ,定义为低级中断,因此, CPU 对所有中断请求只能实现两级中断嵌套。 IP 寄存器的结构、位名称和位地址如表 5.4 所示。

Page 23: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

表 5.4 IP 的结构、位名称、位地址和功能 位编码 IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0

位名称 — — PT2 PS PT1 PX1 PT0 PX0

位地址 — — BDH BCH BBH BAH B9H B8H

功 能

保留位 保留位

定时器 T2 中断优先级控制位

串行口中断优先级控制位定时器 T1 中断

优先级控制位 定时器 T0 中断优先级控制位

/INT0 中断优先级控制位

/INT1 中断优先级控制位

1 1 1 1 1 1

高级中断(同为 1时亦称其为同级中

断)

低级中断(同为 0时亦称其为同级中

断)

0 0 0 0 0 0

Page 24: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表 5.5

列出了同 ( 一优先 ) 级中断源的内部查询顺序。

中断源 中断标志 优先查询顺序 外部中断 0

定时器 T0 中断 外部中断 1

定时器 T1 中断 串行口中断

IE0

TF0

IE1

TF1

RI+TI

高↓

表 5.5 中断源的内部查询顺序

Page 25: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

中断优先级三条原则: (1)同时收到几个中断时,响应优先级 别最高的; (2)中断过程不能被同级、低优先级所 中断; (3)低优先级中断服务,能被高优先级 中断。

Page 26: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.2.3 中断处理过程 中断处理过程大致可分为 4步: 。 1. 中断请求 当中断源要求 CPU 为它服务时,必须发出一个中断请求信号。 CPU将相应的中断请求标志位置“ 1” 。为确保该中断得以实现,中断请求信号应保持到 CPU 响应该中断后才能取消。 CPU会不断及时地查询这些中断请求标志位,一旦查询到某个中断请求标志置位, CPU 就响应这个中断源的中断请求。

中断请求、中断响应、中断服务 和中断返回

Page 27: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

2. 中断响应 同时满足以下 4 个条件时,才可能响应中断。 ( 1 )有中断请求; ( 2 ) 对应中断允许位为 1 ; ( 3 ) 开中断(即 EA=1 )。 ( 4 )正在执行的指令不是 RETI或者是访问IE、 IP的指令,否则必须再执行另外一条指令后才 能响应。 AT89C51 响应某一中断请求后要进行如下操作: ( 1 ) 完成当前指令的操作。 ( 2 ) 保护断点地址,将 PC内容压入堆栈。

Page 28: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

( 3 )屏蔽同级的中断请求。 ( 4 )将中断源入口地址 (固定的 )送入 PC 寄存器,自动转入相应中断程序入口地址。中断源口地址如表 5.6 所示。

表 5.6 AT89C51 中断入口地址表中断源 中断程序入口地址INT0 0003H

定时器 T0 000BH

INT1 0013H

定时器 T1 001BH

串行口中断 0023H

Page 29: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

3. 中断响应时间

S1

保护断点,长调用至入口 中断服务

S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6

标志查询标志锁存

ε中断有效

M1 M2 M3 M4 M5

中断响应(从标志置 1 到进入相应的中断服务),至少要 3 个完整的机器周期。如图 5.4 所示。

图 5.4 中断响应时间示意图

Page 30: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

4. 中断请求的撤除 中断源发出中断请求后,相应的中断请求标志位置“ 1” ,而 CPU 响应中断后,必须及时清除中断请求“ 1” 标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。有关中断请求标志撤除有如下 4 种情况:

(1) 定时 / 计数器 T0 、 T1 中断, CPU 响应中断时就用硬件自动清除了相应的中断请求标志 TF

0 、 TF1 。

Page 31: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

(2) 对采用边沿触发方式的外部中断, CPU 响应中断时,硬件也会自动清除相应的中断请求标志 IE0 或 IE1 。 (3) 对采用电平触发方式的外部中断, CPU 响应中断时,虽也用硬件自动清除相应的中断请求标志 IE0 或 IE1 ,但相应引脚 (P3.2 或 P3.3) 的低电平信号若继续保持下去中断请求标志 IE0 或 IE1 就无法清零,也会发生上述重复响应中断的情况。 (4) 对串行口中断 ( 包括串发 TI 、串收 RI) , CPU 响应中断后并不能自动清除相应的中断请求标志 TI 或 RI ,因此在响应串行口中断请求后,必须由用户在中断服务程序的相应位置通过指令将其清除 (复位 ) 。

Page 32: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.2.4 中断返回

注意:( 1 )不能用 RET 指令代替 RETI 指令。( 2 )中断服务程序中 PUSH 与 POP 须成对使用。

AT89C51 响应中断后,自动执行中断服务程序。在中断服务程序中,只要遇到 RETI 指令 (不论在什么位置 ) ,单片机就结束本次中断服务,返回原程序。因此,在中断服务程序的最后必须有一条 RETI 指令,用于中断返回。

Page 33: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.3 中断系统的应用 5.3.1 中断初始化设置 1. 设置堆栈指针 SP

设置适宜的堆栈深度。 (1) 深度要求不高且工作寄存器组 1~ 3不用时, 可维持复位时状态: SP=07H ,深度为 24B(20H~ 2FH 为位寻址区 ) 。 (2) 要求有一定深度时,可设 SP=60H 或 50H , 这时深度分别为 32B 和 48B 。

Page 34: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

2. 定义中断优先级 根据中断源的轻重缓急,划分高优先级和低优先级。

3. 定义外部中断触发方式 一般情况下 , 应定义边沿触发方式为宜。若外部中断必须采用电平触发方式时,应在硬件电路上和中断服务程序中采取撤除中

断请求信号的措施。

Page 35: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

4. 开放中断 由于 AT89C51 采用了二级中断控制方式,因此开放中断必须同时开放二级中断控制,即同时置位 EA 和需要开放中断的中断允许控制位。

Page 36: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.3.2 中断服务主程序

(1) 在中断服务入口地址设置一条跳转指令, 以便转移到中断服务程序的实际入口处。

(2) 数据需要保护现场。通常是保护 Acc 、 PSW 和 DPTR 等等特殊功能寄存器中的内容。 (3) 中断源请求中断服务要求的操作,这是 中断服务程序的主体。

Page 37: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

(4) 若是外部中断电平触发方式,应有中断 标志撤除操作。若是串行收发中断,应 有对 RI 、 TI清 0 指令。

(5) 恢复现场。与保护现场相对应,注意按

“先进后出、后进先出”的原则操作。

(6) 中断返回,最后一条指令必须是 RETI 。

Page 38: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

P1

P3.0

Q

D

CLK

CLR

选通信号

+5V

INT0

数据

89C51

Vcc

例 5.1 单外部中断源应用示例 5.3.3 中断系统应用举例

图 5.5 外部中断源应用

Page 39: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

ORG 0000HSTART : LJMP MAIN ;跳转到主程序 ORG 0003H LJMP INTO ;转中断服务程序 ORG 0030H ;主程序 MAIN : CLR IT0 ;设为电平触发方式 SETB EA ; CPU开放中断 SETB EX0 ;允许中断 MOV DPTR , #1000H ;设置数据区指针 … …

主程序:

Page 40: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

ORG 0200H INT0 : PUSH PSW ;保护现场 PUSH ACC CLR P3.0 ;由 P3.0输出 0 NOP NOP SETB P3.0 ;由 P3.0输出 1 ,撤除 MOV A , P1 ;输入数据 MOVX @DPTR , A ;存入数据存储器 INC DPTR ;修改指针,指向下一单元 … … POP ACC ;恢复现场 POP PSW RETI ;中断返回

中断服务程序:

Page 41: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

例 5.2 利用定时器作外部中断源。 AT89C51内部有两个定时器 / 计数器,当它们选择为计数器工作方式时, T0(P3.4) 或 T1

(P3.5) 引脚上发生的负跳变将使 T0 或 T1 计数器加 1 计数。因此,可将 P3.4 、 P3.5 作为外部中断请求输入线,将 T0 或 T1 计数初值设定为满量程 (#0FFH) 。当 T0 、 T1 引脚上的电平发生负跳变时,计数器加 1 计数溢出,引起中断,因而可当作外中断使用,以计数器 T0

为例,初始化程序如下:

Page 42: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

MOV TMOD , #06H ;置 T0 为工作方式 2

MOV TL0 , #0FFH ;置 T0 计数初值MOV TH0 , #0FFH

SETB EA ;开 CPU 中断SETB ET0 ;允许 T0 中断SETB TR0 ;启动 T0 计数 …

END

Page 43: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

例 5.3 扩展外部中断源:在变频调速器中都设有过流 (OC) 、过压 (OV) 、欠压(UV) 、过热 (OH) 这四种故障保护,当任一故障发生时,都要立刻停机处理,避免故障范围扩大。这种情况必须采用中断方式,使单片机立刻响应中断处理。试设计其硬件电路和软件程序。

Page 44: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

根据要求,四个故障相当四个中断源,可利用中断查询方法,将四个中断源归结为一个中断请求,同时四个故障信号引到 P1 口的四个输入端,然后在中断程序中查询 P1 口,确定是哪一个故障申请的中断。电路如图 5.6 所示。一旦发生故障,单片机必须响应中断,因此,该中断必须设置成最高级中断。在中断程序中可以显示故障信息。

Page 45: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

1

1

1

1

1

INT0

INT1 OH

UV

OV

OC

+5V

图 5.6 扩展 4 个外中断源电路

P1.3P1.2P1.1P1.0

AT89C51

Page 46: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

主程序和中断服务程序如下: ORG 0000

AJMP ZCX1 ;转主程序 NOP ORG 0013H AJMP INT1 ;转中断服务程序 NOP ORG 0100HZCX1 : MOV SP , #30H ;置堆栈指针 MOV IP , #04H ;设 INT1 为最高级 CLR IT1 ;设 INT1 为电平触发 SETB EA ;开中断 SETB EX1ZCX2 :其他处理程序 AJMP ZCX2 ORG 0200H

Page 47: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

INT1 : PUSH PSW ;保护现场 PUSH ACC MOV A , P1 ;读入 P1 口低 4 位状态 ANL A , #0FH JNB ACC0 , X1 ;是 OC 中断吗?不是则转移 ACALL XY1 ;调OC 处理子程序X1 : JNB ACC1 , X2 ;是 OV 中断吗?不是则转移

ACALL XY2 ;调OV 处理子程序X2 : JNB ACC2 , X3 ;是 UV 中断吗?不是则转移 ACALL XY3 ;调 UV 处理子程序 X3: JNB ACC3 , X4 ;是 OH 中断吗?不是则转移 ACALL XY4 ;调OH 处理子程序X4: POP ACC ;恢复现场 POP PSW RETIXY1 : OC 处理子程序 (略 ) RET

Page 48: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

本章小结 (1) 中断与中断系统: CPU 暂时中止其正在执行的程序,转去执行请求中断的那个外设 或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。中断是一种资源共享技术,单片机使用中断技术主要是为了进行实时控制,以便对随机发生的事件作出快速反应和及时处理;为完成中断任务的相关硬件电路和软件程序合称为中断系统。

Page 49: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

(2) 中断源及其入口地址: AT89C51 单片机有 5个中断源:分别为: INT0 、 T0 、 INT1 、 T1 及串行

口中断 ( 包括串行接收中断 RI 和串行发送中断 TI) 。5 个中断源的中断入口地址分别为 0003H 、 000BH 、

0013H 、 001BH 、 0023H 。 (3) 中断控制及寄存器:控制 89C51 中断的有 3个方面、 4 个特殊功能寄存器: ① 中断请求:定时和外部中断控制寄存器TCON 、串行控制寄存器 SCON ; ② 中断允许控制寄存器 IE ; ③ 中断优先级控制寄存器 IP 。

Page 50: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

(4) 中断处理过程:大致可分为中断请求、中断响应、中断服务和中断返回 4 个步骤。 (5) 中断响应等待时间:一般是 3~ 4 个机器周期,最长为 8 个机器周期。 (6) 中断触发方式:通常有边沿触发和电平触发两种。 (7) AT89C51 的 5 个中断源可设置为两个中断

优先级:高优先级和低优先级。 (8) 编制中断应用程序主要包括中断初始化和中断服务程序。

Page 51: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

① 中断初始化内容包括:设置堆栈指针 SP 、定义中断优先级、定义外部中断触发方式、开放中断和中断发生前主程序应完成的操作内容。 ② 中断服务程序中的操作内容和功能是中断源

请求中断的目的,是 CPU 完成中断处理操作的核心和主体。由于 89C51相邻两个中断入口地址间只有 8字节的空间,因此真正的中断服务程序必须跳转到其他合适的地址空间。 (9) 中断服务程序中,若涉及到一些功能寄存器中断前的数据需要保存,则需要采取保护现场和恢复现场的措施。 (10) 中断服务程序最后一条指令必须是 RETI 。

Page 52: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

思考题与习题

5.1 什么叫中断?单片机采用中断有什么好处?

5.2 什么叫中断源? AT89C51 有哪几个中断源?写出其固定入口地址。

5.3 什么叫中断嵌套?中断嵌套遵循的原则是什么? AT89C51 单片机本身能实现几级嵌套?

5.4 AT89C51 中与中断有关的特殊功能寄存器有几个?它们各自的功能是什么?

Page 53: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.5 AT89C51 单片机外中断的触发方式有几种?它们有什么区别?电平触发时,如何防止 CPU重复响应同一外中断?

5.6 什么是中断优先级? AT89C51 能设置几个优先级?同一级别的中断源同时发出中断请求, CPU 先响应哪一个?怎样确定?

5.7 一个中断请求被响应必须满足什么条件?

5.8 AT89C51 响应某一中断请求后要进行哪些操作?

Page 54: 第 5 章    AT89C51 单片机中断系统

单片机原理及应用

主目录 上一页 下一页 结 束

5.9 若系统只有一个中断源,则中断响应须等待的最短时间和最长时间各是多少?等待时间长的原因都有哪些?

5.10 概述一个中断响应的全部过程。 5.11 现想用两个外中断源 和 实现中断嵌套控制, 为高级中断,边沿触发方式; 为低级中断,电平触发方式,试编写其初始化程序。

5.12 现有四台外围设备 X1~ X4需向 AT89C51申请中断,而 AT89C51 只有 INT0

和 P1 口可供使用,试设计相应的电路并编写程序。

0INT 1INT

1INT0INT