第 7 章 mcs-51 的中断控制系统

20
第7第 MCS-51 第第第第第第7.1 第第第第第第第 7.2 MCS-51 第第第 第第 7.3 第第第第第第第 7.4 第第第第第第第 第第 7.5 第第第 第第第第第 第第第第第 退退 退退

Upload: galvin-dudley

Post on 01-Jan-2016

102 views

Category:

Documents


6 download

DESCRIPTION

第 7 章 MCS-51 的中断控制系统. 7.1 中断的相关概念 7.2 MCS-51 中断系统结构 7.3 中断的处理过程 7.4 多外部中断源系统设计 7.5 中断系统的程序设计 与应用实例. 退出. 7.1 中断的相关概念 1. 中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。. - PowerPoint PPT Presentation

TRANSCRIPT

第 7 章 MCS-51 的中断控制系统

7.1 中断的相关概念 7.2 MCS-51 中断系统结构 7.3 中断的处理过程 7.4 多外部中断源系统设计 7.5 中断系统的程序设计

与应用实例退出退出

7.1 中断的相关概念 1. 中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。

中断处理

响应

返回

执行主程序

继续执行主程序

2 .中断的嵌套:执行一个中断时又被另一个事件打断,暂停该中断处理过程转去处理这个更重要的事件,处理完毕之后再继续处理本中断的过程,叫作中断的嵌套。

图 7-2 中断嵌套过程

响应低级中断请求

返回主程序

主程序

继续执行主程序

响应高级中断请求

返回低级中断程序

低级中断程序

断点 断点

继续执行

高级中断服务程序

RETI RETI

3 .中断的优先级:不同事件的重要程度 4 .中断源:可以引起中断的事件 5 .中断服务程序:为了处理中断而编写的程序 中断向量:对应中断服务程序的入口地址被 称为中断向量。

6 .中断请求:中断源对主程序或中断服务程序提出中断要求

中断响应:主程序或中断服务程序接受中断请求,去执行中断服务程序

中断返回:中断服务程序执行完毕后回到主程序或者次一级别中断服务程序

7 .中断系统 :实现中断处理功能的软、硬件系统

7.2 MCS-51中断系统结构

IE0

≥1

IE1

INT0

TF0

INT1

TF1

T1

R1

0

1IT0

0

1IT1

EX0

ET0

EX1

ET1

ES

EA

中断源开放 中断开放中断优先级寄存器

查询硬件

中断源

中断源

中断允许寄存器

1

0

1

0

1

0

1

0

1

0

PX0

PT0

PX1

PT1

PS

高级中断请求

中断向量

低级中断请求

中断向量

5 个中断请求源, 2 个中断优先级。完成中断功能的特殊功能寄存器有:中断源寄存器 TCON 、 SCON ;中断允许控制寄存器IE ;中断优先级控制寄存器 IP 。

7.2.1 中断请求源与中断源寄存器:中断请求源: (P3.2 、 12 引脚 ) 、 (P3.313 引脚 ) 、 TF0 、 TF1 、 TI 或 RI 。中断源寄存器: TCON 和 SCON

INT0

INT1

定时器定时器 // 计数器控制寄存器计数器控制寄存器 TCONTCON ::

锁存了外部中断源及其触发方式、定时器锁存了外部中断源及其触发方式、定时器 T0T0 和和 T1T1 溢溢出中断。出中断。 TCONTCON 寄存器中的寄存器中的 IE0IE0 、、 IT0IT0 、、 IE1IE1 、、 IT1IT1 。。TCONTCON 中的位格式如下:中的位格式如下:

TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

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

D7 D6 D5 D4 D3 D2 D1 D0

IE0IE0 :为外部中断:为外部中断 /INT0/INT0 的请求标志位。当的请求标志位。当 /INT0/INT0 引脚引脚上出现中断请求信号(低电平或脉冲下降沿)时,硬件上出现中断请求信号(低电平或脉冲下降沿)时,硬件自动将自动将 IE0IE0 置“置“ 1”1” ,产生中断请求标志。,产生中断请求标志。

IT0IT0 :外部中断:外部中断 /INT0/INT0 触发方式控制位。由软件来置“触发方式控制位。由软件来置“1”1” 或清“或清“ 0”0” ,以控制外部中断,以控制外部中断 /INT0/INT0 的触发方式。当的触发方式。当 ITIT

0=1 0=1 时,外部中断时,外部中断 /INT0/INT0 为下降沿触发。当为下降沿触发。当 IT0=0IT0=0 时,时,外部中断外部中断 /INT0/INT0 为电平触发。即外部中断为电平触发。即外部中断 /INT0/INT0 出现低出现低电平时,触发电平时,触发 IE0IE0 ,使其为“,使其为“ 0”0” 。。

IE1IE1 :外部中断:外部中断 /INT1/INT1 的请求标志位。功能与的请求标志位。功能与 IE0IE0 相同相同。。

IT1IT1 :外部中断:外部中断 /INT1/INT1 触发方式控制。功能与触发方式控制。功能与 IT0IT0 相同相同。。

串行口控制寄存器 SCON:

SCON TI RI

位地址 99H 98H

D7 D6 D5 D4 D3 D2 D1 D0

TITI :串行口内部发送中断请求标志位。当串行:串行口内部发送中断请求标志位。当串行口发送完一个字符后,由内部硬件使发送中断口发送完一个字符后,由内部硬件使发送中断标志标志 TITI 置位。产生中断请求标志。置位。产生中断请求标志。RIRI :串行口内部接收中断请求标志位。当串行:串行口内部接收中断请求标志位。当串行口接收到一个字符后,由内部硬件使接收中断口接收到一个字符后,由内部硬件使接收中断请求标志位请求标志位 RIRI 置位。产生中断请求标志。置位。产生中断请求标志。

7.2.2 中断控制与中断控制寄存器 IE 、 IP中断允许寄存器 IE:

IE EA / / ES ET1 EX1 ET0 EX0

位地址 0AFH 0ACH 0ABH 0AAH 0A9H 0A8H

D7 D6 D5 D4 D3 D2 D1 D0

EX0EX0 :外部中断:外部中断 00 允许位。允许位。 EX0=1EX0=1 ,允许外部中断,允许外部中断00 中断;中断; EX0=0EX0=0 ,禁止外部中断,禁止外部中断 00 中断。中断。

ET0ET0 :: T0T0 溢出中断允许位。溢出中断允许位。 ET0=1ET0=1 ,允许,允许 T0T0 中断;中断;ET0=0ET0=0 ,禁止,禁止 T0T0 中断。 中断。

EX1EX1 :外部中断:外部中断 11 允许位。允许位。 EX1=1EX1=1 ,允许外部中断,允许外部中断 11中断;中断; EX1=0EX1=0 ,禁止外部中断,禁止外部中断 11 中断。中断。

ET1ET1 :: T1T1 溢出中断允许位。溢出中断允许位。 ET1=1ET1=1 ,允许,允许 T1T1 中断;中断;ET1=0ET1=0 ,禁止,禁止 T1T1 中断。中断。

ESES :串行中断允许位。:串行中断允许位。 ES=1ES=1 ,允许串行口中断;,允许串行口中断; EES=0S=0 ,禁止串行口中断。,禁止串行口中断。

EAEA :中断总允许位。:中断总允许位。 EA=1EA=1 ,, CPUCPU 开放中断;开放中断; EA=EA=00 ,, CPUCPU 禁止所有的中断请求。总允许禁止所有的中断请求。总允许 EAEA 好比一好比一个总开关。个总开关。

中断优先级寄存器 IP:

IP / / / PS PT1 PX1 PT0 PX0

位地址 0BCH 0BBH 0BAH 0B9H 0B8H

D7 D6 D5 D4 D3 D2 D1 D0

PX0:外部中断 0优先级控制位。 PX1=1,外部中断 0为高优先级; PX0=0,为低优先级。

PT0: T0中断优先级控制位。 PT0=1,定时器 T0为高优先级; PT0=0,为低优先级。

PX1:外部中断 1优先级控制位。 PX1=1,外部中断 1为高优先级; PX1=0,为低优先级。

PT1 : T1中断优先级控制位。 PT1=1 ,定时器 T1为高优先级; PT1=0,为低优先级。

PS:串行口中断优先级控制位。 PS=1,串行口为高优先级; PS=0,为低优先级。

MCS-51MCS-51 单片机复位后,单片机复位后, IPIP 寄存器低寄存器低 55 位全部位全部被清被清 00 ,将所有中断源设置为低优先级中断。,将所有中断源设置为低优先级中断。

同优先级时的优先级顺序如表所示。同优先级时的优先级顺序如表所示。

中 断 源 同级内的中断优先顺序

外部中断0

定时器/计数器T0溢出中断外部中断1

定时器/计数器T1溢出中断串行口中断

最 先

最 后

7.3 中断的处理过程1. 响应 : 如果没有被下述条件所阻止,将在下一个机器周期的状态周期 S1 响应激活了的最高级中断请求。

(1)CPU 正在处理相同的或更高优先级的中断。(2) 现行的机器周期不是所执行指令最后一个机器周期。(3) 正在执行的指令是 RETI 或是访问 IE 或 IP 的指令 (C

PU 在执行 RETI 或访问 IE 、 IP 的指令后,至少需要再执行一条指令才会响应新的中断请求。

如果上述条件中有一个存在, CPU 将丢弃中断查询的结果。

CPU 响应中断时,先置相应的优先级状态触发器 ( 该触发器指出 CPU 开始处理的中断优先级别 ) ,然后执行一个硬件子程序调用,使控制转移到相应的入口,中断请求源申请标志清 0(TI 和 RI 除外 ) ,硬件把程序计数器 PC 的内容压入堆栈,把中断子程序 ( 即中断服务程序 ) 的入口地址 ( 中断向量 ) 送入程序计数器 PC 。

中 断 源

外部中断0

定时器/计数器T0溢出中断外部中断1

定时器/计数器T1溢出中断串行口中断

0003H

0023H

入口地址

000BH

0013H

001BH

2. 中断服务:中断服务程序由程序员编写,用于满足用户的特定需求。

3. 中断返回: RETI 指令表示中断服务程序的结束, CPU 执行该指令时,一方面把响应中断时所置位的优先级状态触发器清 0 ,使得单片机可以继续响应别的中断请求;另—方面从栈顶弹出断点地址( 两个字节 ) 送到程序计数器 PC , CPU 从原来中断处继续执行被中断的程序。

需要注意的是:1. 现场保护:INTPRO : PUSH PSW ;保护程序断点处的 PSW

PUSH A ;保护程序断点处的 A

…… ;中断服务程序 POP A ;恢复程序断点处的 A

POP PSW ;恢复程序断点处的 PSW

RETI

2. . 撤除该中断请求撤除该中断请求 ::

(1) (1) 定时定时 // 计数器中断请求撤销。单片机对定时计数器中断请求撤销。单片机对定时 // 计数器计数器的溢出中断进行响应后,硬件会自动将中断请求标志位的溢出中断进行响应后,硬件会自动将中断请求标志位TF0TF0 或或 TF1TF1 清清 00 。用户无需采取其他措施。。用户无需采取其他措施。(2) (2) 串行口中断请求撤销。单片机对串行口中断进行响串行口中断请求撤销。单片机对串行口中断进行响应后,硬件不会自动将中断请求标志位应后,硬件不会自动将中断请求标志位 TITI 或或 RIRI 清清 00 。。需要用户使用软件方法,在中断服务程序中进行标志位需要用户使用软件方法,在中断服务程序中进行标志位的清的清 00操作。如:操作。如: CLR TICLR TI 或或 CLR RICLR RI等清零指令。等清零指令。(3) (3) 外部中断源中断请求撤销。对于边沿触发方式的外外部中断源中断请求撤销。对于边沿触发方式的外部中断请求,当单片机对中断请求进行响应后,硬件会部中断请求,当单片机对中断请求进行响应后,硬件会自动将中断标志自动将中断标志 IE0IE0 或者或者 IE1IE1 清清 00 ,同时外部中断信号,同时外部中断信号产生跳沿后也就随之消失。产生跳沿后也就随之消失。