What


中断

计算机执行某程序时,发生了紧急事件或有特殊请求,CPU暂停某程序的执行,转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程叫做中断。

中断的4个步骤

中断分为4个步骤:中断请求->中断响应->中断处理->中断返回

举例:假设你正在吃饭,这时接到快递员电话叫你下楼取快递只等5分钟,这就是 中断请求。然后你回答:“好的,我现在就来”这就是 中断响应。接着你停止吃饭下楼去取快递,这就是 中断处理。取完快递,你再回来接着吃饭,这就叫做 中断返回

数据的输入/输出传送方式

  1. 无条件传送方式

一方对另一方来说总是准备好的

  1. 查询传送方式(LOOK UP)

传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待。

  1. 中断传送方式(IRQ)

一方通过申请中断的方式与另一方进行数据传送。

  • 中断传送方式特点
    1. 提高CPU效率
    2. 解决速度矛盾
    3. 实现并行工作
    4. 应付突发事件
  1. 直接存储器存取方式(DMA)

双方直接通过总线传送数据, 不经CPU中转。适用于数据量大高速通讯的设备不占用CPU时间。

中断系统结构

中断系统结构

引起CPU中断的根源,称为中断源
中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。
实现上述中断功能的部件称为中断系统(中断机构)。

51子系列允许的5个中断源

外部中断源(2个):

  1. INT0——由P3.2端口线引入,低电平或下降沿引起。
  2. INT1——由P3.3端口线引入,低电平或下降沿引起。

这两个外部中断源标志和它们的触发方式控制位由特殊功能寄存器TCON的低4位控制。

内部中断源(3个):

  1. T0——定时器/计数器0中断,由T0回零溢出引起。
  2. T1——定时器/计数器1中断,由T1回零溢出引起。
  3. TI/RI——串行I/O中断,串行端口完成一帧字符发送/接收后引起。

这3个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中。

Why


51单片机中断系统内部结构图

51单片机中断系统内部结构图

How


使用单片机中断系统

一、允许中断

允许中断

EA = 1; //开总中断
EX1 = 1; //开外部中断1

二、配置中断方式

配置中断方式

IT1 = 1; //跳变沿触发

三、编写中断处理函数

优先级处理原则

  • 中断优先级处理原则

对同时发生多个中断申请时:
不同优先级的中断同时申请(很难遇到)——先高后低
相同优先级的中断同时申请(很难遇到)——按序执行
正处理低优先级中断又接到高级别中断——高打断低
正处理高优先级中断又接到低级别中断——高不理低

  • 内部查询顺序:

在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一优先级内,还同时存在另一辅助优先级结构。
其查询顺序如下:

内部查询顺序

函数格式

void int1() interrupt 2  //中断处理函数,加关键字interrupt和入口号
{
中断处理语句
}

Summary


中断响应条件

  • 此中断源的中断允许位为1。
  • 总中断CPU中断打开(EA = 1)。
  • 中断源有中断请求。

外部中断初始化

EA = 1; //开总中断
EX1 = 1; //开外部中断1
IT1 = 1; //跳变沿触发

中断处理函数

void int1() interrupt 2
{
中断处理程序
}
posted on 2023-07-21 00:02  ASyo-S  阅读(76)  评论(0编辑  收藏  举报