目录
6.1 微机的输入/输出方式
6.2 中断系统概念
1、中断流程
2、中断作用
6.3 MCS-51中断系统结构
1、中断源与中断请求标志
2、MCS-51的中断控制
3、中断处理过程
6.4 中断请求的撤除
1、定时器/计数器中断请求的撤除
2、串行口中断请求的撤除
3、外部中断请求的撤除
6.5 中断系统的初始化及应用
1、中断系统的初始化
2、中断系统的应用
6.6 MCS - 51 对外部中断扩展方法
6.1 微机的输入/输出方式
CPU与外部设备交换信息通常有以下几种方式:
- 程序控制传送方式,又分为无条件传送方式和查询传送方式。
- 中断传送方式。
- 直接存储器存取(DMA)方式。
6.2 中断系统概念
1、中断流程
2、中断作用
- 对突发事件,做出紧急处理。
- 根据现场随时变化的各种参数、信息,做出实时监控。
- CPU与外部设备并行工作,以中断方式相联系,提高工作效率。
- 解决快速CPU与慢速外设之间的矛盾。
- 在多种外部设备同时提出中断请求情况下,CPU能根据轻重缓急,响应外设的中断请求。
6.3 MCS-51中断系统结构
80C51单片机有5个中断源,具有两个中断优先极,可以实现二级中断嵌套。5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定。与中断系统有关的特殊功能寄存器有:中断源寄存器(即专用寄存器TCON、SCON的相关位)、中断允许控制寄存器IE和中断优先级控制寄存器IP。5个中断源的中断请求是否会得到响应,要受中断允许寄存器IE各位的控制,它们的优先级分别由IP各位来确定。
五个中断源 入口地址
外部中断0 0003H
T0溢出中断 000BH
外部中断1 0013H
T1溢出中断 001BH
串行口中断 0023H
1、中断源与中断请求标志
MCS-51单片机设有5个中断源:2个外部中断¯INT0¯、¯INT1¯,2个内部定时器/计数器溢出中断TF0、TF1和1个内部串行口中断TI或RI。这些中断请求分别由特殊功能寄存器TCON和SCON的相应位锁存。
(1)TCON (88H)
中断请求标志位::TF1、TF0、IE1、IE0
=1,有中断请求;
=0,无中断请求。
外部中断触发方式选择位:IT0、IT1
=1:下降沿触发;
=0:低电平触发。
(2)串行口控制寄存器SCON (98H)
①TI为串行口发送中断标志位,位地址为99H。CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在由软件对TI清0。
②RI为串行口接收中断标志位,位地址为98H。在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须用软件对RI清0。
2、MCS-51的中断控制
(1)中断的开放和屏蔽
中断允许寄存器IE的作用,是控制所有中断源的开放或禁止,以及每个中断源是否被允许。寄存器IE(A8H)的位格式如下:
为1时,开放中断; “先外部后内部”,
为0时,禁止中断。 “先0后1”
(2)中断优先级别的设定
具有两个中断优先级。对于所有的中断源,均可由软件设置为高优先级中断或低优先级中断,并可实现两级中断嵌套。
一个正在执行的低优先级中断服务程序,能被高优先级中断源所中断。同级或低优先级中断源不能中断正在执行的中断服务程序。每个中断源的中断优先级都可以通过程序来设定,由中断优先级寄存器IP(B8H)统一管理,格式如下:
为1时,高优先级;
为0时,低优先级。
(3)优先级结构
中断优先级只有高、低两级。所以在工作过程中会有两个或两个以上中断源处于同一中断优先级。若出现这种情况,内部中断系统对各中断源的处理遵循以下两条基本原则:
①低优先级中断可以被高优先级中断所中断,反之不能。
②一种中断(不管是什么优先级)一旦得到响应,与它同级的中断不能再中断它。
如果两个中断的优先级相同,且同时申请中断,谁先得到响应,由内部硬件逻辑的查询顺序来确定:
中断源 同级自然优先级
外部中断0 最高级
定时器0中断 ↓
外部中断1 ↓
定时器1中断 ↓
串行口中断 最低级
3、中断处理过程
中断处理过程可分为三个阶段,即中断响应、中断处理和中断返回。
【1】中断响应
(1)响应条件
①有中断源发出中断请求。
②中断总允许位EA=1,即CPU开中断。
③相应的中断源的中断允许位为1,即中断没有被屏蔽。
④无同级或更高级中断正在被服务。
⑤当前的指令周期已经结束。
⑥若现行指令为RETI或者是访问IE或IP指令时,该指令以及紧接着的另一条指令已执行完。
(2)中断响应操作过程
MCS-51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理。中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。
(3)中断响应时间
在一个单级的中断系统中,MCS-51响应中断的时间一般在3~8个机器周期之间。
【2】中断处理
(1)各中断源的入口矢量地址之间只相隔8个单元。常用的方法是在中断入口地址单元处存放条无条 件转移指令,转至存储器其他的任何空间。
(2)若在执行当前中断程序时禁止更高优先级中断,应用软件关闭CPU中断或屏蔽更高级中断源的中断,在中断返回前再开放中断。
(3)在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,一般应关闭CPU中断,使CPU暂不响应新的中断请求。这样,在编写中断服务程序时,应注意在保护现场之前要关闭中断,在保护现场之后若允许高优先级中断嵌套,则应开中断。同样,在恢复现场之前应关闭中断,恢复之后再开中断。
【3】中断返回
在中断服务程序中,最后一条指令必须为RETI指令。
6.4 中断请求的撤除
1、定时器/计数器中断请求的撤除
对于定时器/计数器T0和T1中断,在CPU响应中断后,就用硬件清除了中断请求标志TF0和TF1,即中断请求是自动撤除的。
2、串行口中断请求的撤除
通过如下指令将R1和TI撤除:
CLR RI ;撤除接收中断
CLR TI ;撤除发送中断
3、外部中断请求的撤除
6.5 中断系统的初始化及应用
1、中断系统的初始化
(1) CPU开中断或关中断;
(2)某中断源中断请求的允许或禁止(屏蔽);
(3)设定所用中断的中断优先级;
(4)若为外部中断,则应规定低电平还是负边沿的中断触发方式。
2、中断系统的应用
6.6 MCS - 51 对外部中断扩展方法
1、硬件申请软件查询扩展中断源
申请中断的外部设备,可通过查询P1.0~P1.3逻辑电平获知。设这4个中断源的优先级为装置1最高,装置4最低。软件查询时,由最高至最低的顺序查询。