STC51从入门到精通(汇编)~~~ 第六讲:输入/输出和中断系统

目录

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与外部设备交换信息通常有以下几种方式:

  1. 程序控制传送方式,又分为无条件传送方式和查询传送方式。
  2. 中断传送方式。
  3. 直接存储器存取(DMA)方式。
     

6.2 中断系统概念

1、中断流程

STC51从入门到精通(汇编)~~~ 第六讲:输入/输出和中断系统_第1张图片

2、中断作用

  • 对突发事件,做出紧急处理。
  • 根据现场随时变化的各种参数、信息,做出实时监控。
  • CPU与外部设备并行工作,以中断方式相联系,提高工作效率。
  • 解决快速CPU与慢速外设之间的矛盾。
  • 在多种外部设备同时提出中断请求情况下,CPU能根据轻重缓急,响应外设的中断请求。
     

6.3 MCS-51中断系统结构

       80C51单片机有5个中断源,具有两个中断优先极,可以实现二级中断嵌套。5个中断源的排列顺序由中断优先级控制寄存器IP顺序查询逻辑电路共同决定。与中断系统有关的特殊功能寄存器有:中断源寄存器(即专用寄存器TCON、SCON的相关位)、中断允许控制寄存器IE中断优先级控制寄存器IP。5个中断源的中断请求是否会得到响应,要受中断允许寄存器IE各位的控制,它们的优先级分别由IP各位来确定。
STC51从入门到精通(汇编)~~~ 第六讲:输入/输出和中断系统_第2张图片

五个中断源            入口地址

外部中断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、外部中断请求的撤除

STC51从入门到精通(汇编)~~~ 第六讲:输入/输出和中断系统_第3张图片

6.5 中断系统的初始化及应用

1、中断系统的初始化

(1) CPU开中断或关中断;
(2)某中断源中断请求的允许或禁止(屏蔽);
(3)设定所用中断的中断优先级;
(4)若为外部中断,则应规定低电平还是负边沿的中断触发方式。

2、中断系统的应用
STC51从入门到精通(汇编)~~~ 第六讲:输入/输出和中断系统_第4张图片

6.6 MCS - 51 对外部中断扩展方法

1、硬件申请软件查询扩展中断源
       申请中断的外部设备,可通过查询P1.0~P1.3逻辑电平获知。设这4个中断源的优先级为装置1最高,装置4最低。软件查询时,由最高至最低的顺序查询。
 

 

你可能感兴趣的:(STC51从入门到精通(汇编)~~~ 第六讲:输入/输出和中断系统)