版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章80C51单片微机的中断系统 原理及应用 第五章第五章 80C51单片微机的中断系统单片微机的中断系统 原理及应用原理及应用 第五章80C51单片微机的中断系统 原理及应用 中断概念的出现,是计算机系统结构设计中的重大变革。中断概念的出现,是计算机系统结构设计中的重大变革。 中断技术实质上是一种资源共享技术。中断技术实质上是一种资源共享技术。 单片微机的中断系统包括它的硬件和软件编程。单片微机的中断系统包括它的硬件和软件编程。 第五章80C51单片微机的中断系统 原理及应用 中断系统的几个概念:中断系统的几个概念: 中断:中断: 程序执行过程中,允许外部或内部事件通过硬件打断程序执行过程
2、中,允许外部或内部事件通过硬件打断 程序的执行,使其转向为处理外部或内部事件的中断服务程程序的执行,使其转向为处理外部或内部事件的中断服务程 序中去;完成中断服务程序后,序中去;完成中断服务程序后,CPU继续原来被打断的程序,继续原来被打断的程序, 这样的过程称为中断响应过程,如图这样的过程称为中断响应过程,如图51所示。所示。 中断源:中断源: 能产生中断的外部和内部事件。能产生中断的外部和内部事件。 中断优先级:中断优先级: 5.1 中断系统概述中断系统概述 第五章80C51单片微机的中断系统 原理及应用 当有几个中断源同时申请中断时,或者当有几个中断源同时申请中断时,或者CPU正在处理某
3、中断源正在处理某中断源 服务程序时,又有另一中断源申请中断,那么服务程序时,又有另一中断源申请中断,那么CPU必须要确定必须要确定 优先去处理谁的能力,称为中断优先级。优先去处理谁的能力,称为中断优先级。 中断嵌套:中断嵌套: 优先级高的事件可以中断优先级高的事件可以中断CPU正在处理的低级的中断服正在处理的低级的中断服 务程序,待完成了高级中断服务程序之后,再继续被打断的低务程序,待完成了高级中断服务程序之后,再继续被打断的低 级中断服务程序。这是中断嵌套问题。级中断服务程序。这是中断嵌套问题。 单片微机的中断系统需要解决的问题单片微机的中断系统需要解决的问题 单片微机的中断系统需要解决的问
4、题主要有三点,即:单片微机的中断系统需要解决的问题主要有三点,即: 当单片微机内部或外部有中断申请时,当单片微机内部或外部有中断申请时,CPU能及时响能及时响 应中断,停下正在执行的任务,转去处理中断服务子程序,中应中断,停下正在执行的任务,转去处理中断服务子程序,中 断服务处理后能回到原断点处继续处理原先的任务;断服务处理后能回到原断点处继续处理原先的任务; 第五章80C51单片微机的中断系统 原理及应用 当有多个中断源同时申请中断时,应能先响应优先级高当有多个中断源同时申请中断时,应能先响应优先级高 的中断源,实现中断优先级的控制;的中断源,实现中断优先级的控制; 当低优先级中断源正在享用
5、中断服务时,若这时优先级当低优先级中断源正在享用中断服务时,若这时优先级 比它高的中断源也申请中断,要求能停下低优先级中断源的服务比它高的中断源也申请中断,要求能停下低优先级中断源的服务 程序转去执行更高优先级中断源的服务程序,实现中断嵌套,并程序转去执行更高优先级中断源的服务程序,实现中断嵌套,并 能逐级正确返回原断点处。能逐级正确返回原断点处。 第五章80C51单片微机的中断系统 原理及应用 实现实现CPU与外部设备的速度配合与外部设备的速度配合 由于应用系统的许多外部设备速度较慢,可以通过中断的方由于应用系统的许多外部设备速度较慢,可以通过中断的方 法来协调快速法来协调快速CPU与慢速外
6、部设备之间的工作。与慢速外部设备之间的工作。 实现实时控制实现实时控制 在单片微机中,依靠中断技术能实现实时控制。实时控制要在单片微机中,依靠中断技术能实现实时控制。实时控制要 求计算机能及时完成被控对象随机提出的分析和计算任务。在自动求计算机能及时完成被控对象随机提出的分析和计算任务。在自动 控制系统中,要求各控制参量随机地在任何时刻可向计算机发出请控制系统中,要求各控制参量随机地在任何时刻可向计算机发出请 求,求,CPUCPU必须作出快速响应、及时处理。必须作出快速响应、及时处理。 第五章80C51单片微机的中断系统 原理及应用 计算机发出请求,计算机发出请求,CPUCPU必须作出快速响应
7、、及时处理。必须作出快速响应、及时处理。 实现故障的及时发现及处理实现故障的及时发现及处理 单片微机应用中由于外界的干扰、硬件或软件设计中存单片微机应用中由于外界的干扰、硬件或软件设计中存 在问题等因素,在实际运行中会出现硬件故障、运算错误、程在问题等因素,在实际运行中会出现硬件故障、运算错误、程 序运行故障等,有了中断技术,计算机就能及时发现故障并自序运行故障等,有了中断技术,计算机就能及时发现故障并自 动处理。动处理。 实现人机联系实现人机联系 比如通过键盘向单片微机发出中断请求,可以实时干预比如通过键盘向单片微机发出中断请求,可以实时干预 计算机的工作。计算机的工作。 第五章80C51单
8、片微机的中断系统 原理及应用 80C5180C51的中断系统包括中断源、中断允许寄存器的中断系统包括中断源、中断允许寄存器IEIE、中、中 断优先级寄存器断优先级寄存器IPIP、中断矢量等。、中断矢量等。 在在80C5180C51中,只有两级中断优先级。图中,只有两级中断优先级。图5252是是80C5180C51的中的中 断系统结构示意图。断系统结构示意图。 5.2 80C51 5.2 80C51 的中断系统的中断系统 第五章80C51单片微机的中断系统 原理及应用 80C51 1中有五个中断源;中有五个中断源;80C5280C52中增加了一个中断源中增加了一个中断源定时定时 器计数器器计数器
9、T2T2,即有六个中断源。每一个中断源都能被程控为高优,即有六个中断源。每一个中断源都能被程控为高优 先级或低优先级。先级或低优先级。80C5180C51五个中断源中包括二个外部中断源和三个五个中断源中包括二个外部中断源和三个 内部中断源。内部中断源。 二个外部中断源二个外部中断源INT0INT0和和INT1INT1,外部设备的中断请求信号、掉,外部设备的中断请求信号、掉 电等故障信号都可以从电等故障信号都可以从INT0INT0或或INT1INT1引脚输入。引脚输入。 三个内部中断源为定时器三个内部中断源为定时器/ /计数器计数器T0T0和和T1T1的定时的定时/ /计数谥出中计数谥出中 断源
10、和串行口发送或接收中断源。断源和串行口发送或接收中断源。 第五章80C51单片微机的中断系统 原理及应用 80C5180C51的五个中断源可以分为三类,即:的五个中断源可以分为三类,即: 1. 1. 外部中断外部中断 外部中断是由外部信号引起的,共有二个外部中断,它们的外部中断是由外部信号引起的,共有二个外部中断,它们的 中断请求信号分别从引脚中断请求信号分别从引脚INT0 (P3.2) INT0 (P3.2) 和和INT1 (P3.3) INT1 (P3.3) 上引入。上引入。 外部中断请求有二种信号触发方式,即电平有效方式和跳变外部中断请求有二种信号触发方式,即电平有效方式和跳变 有效方式
11、,可通过设置有关控制位进行定义。有效方式,可通过设置有关控制位进行定义。 当设定为电平有效方式时,若当设定为电平有效方式时,若INT0INT0或或INT1INT1引脚上采样到有效引脚上采样到有效 的低电平,则向的低电平,则向CPUCPU提出中断请求;当设定为跳变有效方式时,若提出中断请求;当设定为跳变有效方式时,若 INT0INT0或或INT1INT1引脚上采样到有效负跳变,则向引脚上采样到有效负跳变,则向CPUCPU提出中断请求。提出中断请求。 第五章80C51单片微机的中断系统 原理及应用 定时中断定时中断 定时中断是为满足定时或计数的需要而设置的。当计数定时中断是为满足定时或计数的需要而
12、设置的。当计数 器发生计数溢出时,表明设定的定时时间到或计数值已满,这器发生计数溢出时,表明设定的定时时间到或计数值已满,这 时可以向时可以向CPUCPU申请中断。由于定时器申请中断。由于定时器/ /计数器在单片微机芯片内计数器在单片微机芯片内 部,所以定时中断属于内部中断。部,所以定时中断属于内部中断。80C5180C51有二个二个源,即:有二个二个源,即: TF0 TF0(P3P34 4)T0T0溢出中断。溢出中断。 TF1 TF1(P3P35 5)T1T1溢出中断。溢出中断。 串行中断串行中断 串行中断是为串行数据传送的需要而设置的。每当串行串行中断是为串行数据传送的需要而设置的。每当串
13、行 口发送或接收一组串行数据时,就产生一个中断请求。口发送或接收一组串行数据时,就产生一个中断请求。 RXRX,TXTX串行中断。串行中断。 第五章80C51单片微机的中断系统 原理及应用 当当CPUCPU响应中断时,由硬件直接产生一个固定的地址,即响应中断时,由硬件直接产生一个固定的地址,即 矢量地址,由矢量地址指出每个中断源设备的中断服务程序的矢量地址,由矢量地址指出每个中断源设备的中断服务程序的 入口,这种方法通常称为矢量中断。很显然,每个中断源分别入口,这种方法通常称为矢量中断。很显然,每个中断源分别 有自已的中断服务程序,而每个中断服务程序又有自已的矢量有自已的中断服务程序,而每个中
14、断服务程序又有自已的矢量 地址。当地址。当CPUCPU识别出某个中断源时,由硬件直接给出一个与该中识别出某个中断源时,由硬件直接给出一个与该中 断源相对应的矢量地址,从而转入各自中断服务程序。中断矢断源相对应的矢量地址,从而转入各自中断服务程序。中断矢 量地址见表量地址见表5 51 1。 第五章80C51单片微机的中断系统 原理及应用 INT0,INT1,T0 INT0,INT1,T0 及及 T1T1的中断标志存放在的中断标志存放在 TCONTCON(定时器计(定时器计 数器控制)寄存器中;串行口的中断标志存放在数器控制)寄存器中;串行口的中断标志存放在 SCONSCON(串行口控(串行口控
15、制)寄存器中。制)寄存器中。 定时器计数器控制寄存器定时器计数器控制寄存器TCONTCON字节地址为字节地址为88H88H,其格式如下,其格式如下: IT1IT1(TCONTCON2 2)、)、IT0IT0(TCONTCON0 0)分别为)分别为T0T0、T1T1的中断申请的中断申请 触发方式控制位。触发方式控制位。 5.3 5.3 中断的控制中断的控制 第五章80C51单片微机的中断系统 原理及应用 TF1TF1(TCONTCON7 7)T1T1计数溢出,由硬件置位,响应中断时由硬计数溢出,由硬件置位,响应中断时由硬 件复位。不用中断时用软件清件复位。不用中断时用软件清0 0。 TF0TF0
16、(TCONTCON5 5)T0T0计数溢出,由硬件置位,响应中断时由硬计数溢出,由硬件置位,响应中断时由硬 件复位。不用中断时用软件清件复位。不用中断时用软件清0 0。 IE1IE1(TCONTCON3 3)IE1IE11 1时,外部中断时,外部中断1 1向向CPUCPU申请中断。申请中断。 IE0IE0(TCONTCONl l)IE0IE01 1时,外部中断时,外部中断0 0向向CPUCPU申请中断。申请中断。 串行口控制寄存器串行口控制寄存器SCONSCON字节地址为字节地址为98H98H,其格式如下:,其格式如下: 第五章80C51单片微机的中断系统 原理及应用 低二位锁存接收中断源低二
17、位锁存接收中断源RIRI和发送中断源和发送中断源TITI。 TITI(SCONSCON1 1):串行口发送中断源。):串行口发送中断源。 发送完一帧,由硬件置位。响应中断后,必须用软件清发送完一帧,由硬件置位。响应中断后,必须用软件清 0 0。 RIRI(SCONSCON0 0):串行口接收中断源。):串行口接收中断源。 接收完一帧,由硬件置位。响应中断后,必须用软件清接收完一帧,由硬件置位。响应中断后,必须用软件清0 0。 第五章80C51单片微机的中断系统 原理及应用 中断允许和禁止由中断允许寄存器中断允许和禁止由中断允许寄存器IEIE控制。控制。 中断允许寄存器中断允许寄存器IEIE的字
18、节地址为的字节地址为A8HA8H,其格式如下:,其格式如下: 第五章80C51单片微机的中断系统 原理及应用 IEIE寄存器中各位设置:为寄存器中各位设置:为0 0时,禁止中断;为时,禁止中断;为 1 1时,允许中断。时,允许中断。 系统复位后系统复位后IEIE寄存器中各位均为寄存器中各位均为0 0,即此时禁止所有中断。,即此时禁止所有中断。 与中断有关的控制位共与中断有关的控制位共6 6位,即:位,即: EX0(IE0 0)外部中断外部中断0 0中断允许位。中断允许位。 ET0(IE1 1)定时器计数器定时器计数器T0T0中断允许位。中断允许位。 EX1(IE2 2)外部中断外部中断1 1中
19、断允许位。中断允许位。 ET1(IE3 3)一)一定时器计数器定时器计数器T1T1中断允许位。中断允许位。 ES(IE4 4)串行口中断允许位。串行口中断允许位。 EA(IE7 7)CPU中断允许位。当中断允许位。当EA1 1,允许,允许 所有中断开放,总允许后,各中断的允许或禁止由各中断源的所有中断开放,总允许后,各中断的允许或禁止由各中断源的 中断允许控制位进行设置;当中断允许控制位进行设置;当EA0 0时,屏蔽所有中断。时,屏蔽所有中断。 第五章80C51单片微机的中断系统 原理及应用 80C5180C51通过中断允许控制寄存器对中断的允许通过中断允许控制寄存器对中断的允许( (开放开放
20、) ) 。 实行二级控制,即以实行二级控制,即以EAEA位作为总控制位,以各中断源的位作为总控制位,以各中断源的 中断允许位作为分控制位。只有当总控制位中断允许位作为分控制位。只有当总控制位EAEA有效时,即开放有效时,即开放 中断系统,这时各分控制位才能对相应中断源分别进行开放或中断系统,这时各分控制位才能对相应中断源分别进行开放或 禁止。禁止。 第五章80C51单片微机的中断系统 原理及应用 在在80C5180C51中有高、低两个中断优先级,通过中断优先级中有高、低两个中断优先级,通过中断优先级 寄存器寄存器IP来设定。来设定。 中断优先级寄存器中断优先级寄存器IP的字节地址为的字节地址为
21、B8HB8H,其格式如下:,其格式如下: IPIP寄存器中各位设置:为寄存器中各位设置:为0 0时,为低中断优先级;为时,为低中断优先级;为1 1时,时, 设为高中断优先级。设为高中断优先级。 级级 第五章80C51单片微机的中断系统 原理及应用 系统复位后系统复位后IPIP寄存器中各位均为寄存器中各位均为0 0,即此时全部设定为低,即此时全部设定为低 中断优先级。中断优先级。 中断优先级控制,除了中断优先级控制寄存器之外,还中断优先级控制,除了中断优先级控制寄存器之外,还 有二个不可寻址的优先级状态触发器,其中一个用于指示某一有二个不可寻址的优先级状态触发器,其中一个用于指示某一 高优先级中
22、断正在进行服务,而屏蔽其它高优先级中断;另一高优先级中断正在进行服务,而屏蔽其它高优先级中断;另一 个用于指示某一低优先级中断正在进行服务,从而屏蔽其它低个用于指示某一低优先级中断正在进行服务,从而屏蔽其它低 优先级中断,但不能屏蔽高优先级中断。优先级中断,但不能屏蔽高优先级中断。 在中断执行过程中,高中断优先级可以中断低中断优先在中断执行过程中,高中断优先级可以中断低中断优先 级的中断过程。但是若在中断服务程序中,关掉所有中断级的中断过程。但是若在中断服务程序中,关掉所有中断 (CLR EA)或关掉部分中断时除外。)或关掉部分中断时除外。 当当CPU同时接收到二个不同优先级的中断请求时,先响
23、同时接收到二个不同优先级的中断请求时,先响 应高优先级的中断,如果应高优先级的中断,如果CPUCPU同时接收到的是几个同一优先级的同时接收到的是几个同一优先级的 中断请求时,则由内部的硬件查询序列确定它们的优先服务次中断请求时,则由内部的硬件查询序列确定它们的优先服务次 序,即在同一优先级内有一个由内部查询序列确定的笫二个优序,即在同一优先级内有一个由内部查询序列确定的笫二个优 先级结构。其排列如下:先级结构。其排列如下: 第五章80C51单片微机的中断系统 原理及应用 中断源中断源中断优先级中断优先级 外部中断外部中断0 0最高最高 定时器定时器T0T0中断中断 外部中断外部中断1 1 定时
24、器定时器T1T1中断中断 串行口中断串行口中断 定时器定时器T2T2中断中断最低最低 80C5180C51是一个二级中断系统。但是通过软件可以模仿第三是一个二级中断系统。但是通过软件可以模仿第三 优先级。优先级。 利用利用80C5180C51芯片内硬件可以为一些需要多于二个优先级的芯片内硬件可以为一些需要多于二个优先级的 应用提供服务。只要编写一段比较简单的程序产生模拟的笫三应用提供服务。只要编写一段比较简单的程序产生模拟的笫三 优先级。优先级。 第五章80C51单片微机的中断系统 原理及应用 首先,把高于优先级首先,把高于优先级1 1的中断在的中断在IPIP寄存器中指定为优先级寄存器中指定为
25、优先级1 1,假,假 定优先级定优先级1 1的中断是可被优先级的中断是可被优先级2 2的中断所中断,则优先级的中断所中断,则优先级1 1的中的中 断服务子程序如下:断服务子程序如下: PUSH IE MOV IE,MASK ACALL LABEL ( (执行服务子程序执行服务子程序) ) POP IE RET LABEL:RETI 第五章80C51单片微机的中断系统 原理及应用 只要任何一个优先级中断只要任何一个优先级中断1 1被响应,中断允许寄存器被响应,中断允许寄存器IEIE就就 被重新定义以至禁止所有除优先级被重新定义以至禁止所有除优先级2 2之外的中断。那么,对之外的中断。那么,对 L
26、ABEL的调用执行了中断返回指令的调用执行了中断返回指令RETI,它对正在进行中的优,它对正在进行中的优 先级先级1 1的中断触发器清零。这时,任何已被允许的优先级的中断触发器清零。这时,任何已被允许的优先级1 1的中断的中断 可以被服务,但没有被允许的中断优先级可以被服务,但没有被允许的中断优先级1 1的中断就不能再被允的中断就不能再被允 许,而只能允许中断优先级许,而只能允许中断优先级2 2的中断。的中断。 把把IE退栈,恢复原来的允许字节,然后用子程序返回指令退栈,恢复原来的允许字节,然后用子程序返回指令 RET完成服务子程序完成服务子程序( (不能采用不能采用RETI指令指令) )。
27、第五章80C51单片微机的中断系统 原理及应用 INT0,INT1 INT0,INT1的中断触发方式有两种:电平触发方式,低电平有的中断触发方式有两种:电平触发方式,低电平有 效;跳变触发方式,电平发生由高到低的跳变时触发。这两种触效;跳变触发方式,电平发生由高到低的跳变时触发。这两种触 发方式可由设置发方式可由设置TCONTCON寄存器中的寄存器中的IT1IT1(TCONTCON2 2)、)、 IT0IT0(TCONTCON0 0) 中断申请触发方式控制位来选择:设置中断申请触发方式控制位来选择:设置IT1IT1、IT0IT00 0,选择电平触,选择电平触 发方式;设置发方式;设置IT1IT
28、1、IT0IT0l l,选择跳变触发方式,即当,选择跳变触发方式,即当INT0,INT1INT0,INT1 引脚检测到前一个机器周期为高电平、后一个机器周期为低电平引脚检测到前一个机器周期为高电平、后一个机器周期为低电平 时,则置位时,则置位IE0IE0、IE1IE1且向且向CPUCPU申请中断。申请中断。 第五章80C51单片微机的中断系统 原理及应用 由于由于CPUCPU每个机器周期采样每个机器周期采样INT0,INT1INT0,INT1引脚信号一次,为确保引脚信号一次,为确保 中断请求被采样到中断请求被采样到, ,外部中断源送外部中断源送INT0,INT1INT0,INT1引脚的中断请求
29、信号应引脚的中断请求信号应 至少保持一个机器周期。至少保持一个机器周期。 如果是跳变触发方式,外部中断源送如果是跳变触发方式,外部中断源送INT0,INT1INT0,INT1引脚的中断引脚的中断 请求信号高、低电平应至少各保持一个机器周期,才能确保请求信号高、低电平应至少各保持一个机器周期,才能确保CPUCPU采采 集到电平的跳变。集到电平的跳变。 如果是电平触发方式,则外部中断源送如果是电平触发方式,则外部中断源送INT0,INT1INT0,INT1引脚请求引脚请求 中断的低电平有效信号,应一直保持到中断的低电平有效信号,应一直保持到CPUCPU响应中断为止。响应中断为止。 第五章80C51
30、单片微机的中断系统 原理及应用 CPUCPU响应中断请求,转向中断服务程序执行,在其执行中响应中断请求,转向中断服务程序执行,在其执行中 断返回指令(断返回指令(RETIRETI)之前,中断请求信号必须撤除,否则将会)之前,中断请求信号必须撤除,否则将会 再一次引起中断而出错。再一次引起中断而出错。 中断请求撤除的方式有三种,即:中断请求撤除的方式有三种,即: 1 1 由单片微机内部硬件自动复位。由单片微机内部硬件自动复位。 对于定时器计数器对于定时器计数器T0T0、T1 T1 的溢出中断和采用跳变触发的溢出中断和采用跳变触发 方式的外部中断请求,在方式的外部中断请求,在CPUCPU响应中断后
31、,由内部硬件自动清除。响应中断后,由内部硬件自动清除。 第五章80C51单片微机的中断系统 原理及应用 中断标志中断标志TF0TF0和和TF1TF1、IE0IE0和和IE1IE1,而自动撤除中断请求。,而自动撤除中断请求。( (硬件置硬件置 位,硬件清除位,硬件清除) ) 2 2应用软件清除相应标志。应用软件清除相应标志。 对于串行接收发送中断请求和对于串行接收发送中断请求和80C5280C52中的定时器计数中的定时器计数 器器T2T2的溢出和捕获中断请求,在的溢出和捕获中断请求,在CPUCPU响应中断后,必须在中断服响应中断后,必须在中断服 务程序中应用软件清除务程序中应用软件清除RIRI、
32、TITI、TF2TF2和和 EXF2EXF2这些中断标志,才这些中断标志,才 能撤除中断。能撤除中断。( (硬件置位,软件清除硬件置位,软件清除) ) 。 3 3采用外加采用外加 硬件结合软件清除中断请求。硬件结合软件清除中断请求。 对于采用电平触发方式的外部中断请求,中断标志的撤对于采用电平触发方式的外部中断请求,中断标志的撤 消是自动的,但中断请求信号的低电平可能继续存在,在以后消是自动的,但中断请求信号的低电平可能继续存在,在以后 机器周期采样时又会把已清机器周期采样时又会把已清“0”0”的的IE0IE0、IE1IE1标志重新置标志重新置“1”1”, 再次申请中断。为保证在再次申请中断。
33、为保证在CPUCPU响应中断后、执行返回指令前,撤响应中断后、执行返回指令前,撤 除中断请求,必须考虑另外的措施,保证在中断响应后把中断除中断请求,必须考虑另外的措施,保证在中断响应后把中断 请求信号从低电平强制改变为高电平。可在系统中加入如图请求信号从低电平强制改变为高电平。可在系统中加入如图5-3 5-3 所示电路。所示电路。 第五章80C51单片微机的中断系统 原理及应用 从图从图5-3 5-3 中可看到,用中可看到,用D D触发器锁存外部中断请求低电平,并通过触发器锁存外部中断请求低电平,并通过 触发器输出端触发器输出端Q Q送或,所以送或,所以D D触发器对外部中断请求没有影响。但触
34、发器对外部中断请求没有影响。但 在中断响应后,为了撤消低电平引起的中断请求,可利用在中断响应后,为了撤消低电平引起的中断请求,可利用D D触发器触发器 的直接置位端的直接置位端SDSD来实现。采用来实现。采用80C5180C51的一根的一根I/OI/O口线来控制口线来控制SDSD端。端。 只要在只要在SDSD端输入一个负脉冲即可使端输入一个负脉冲即可使D D触发器置触发器置“1”1”,从而撤消了,从而撤消了 低电平的中断请求信号。低电平的中断请求信号。( (硬件置位,硬、软件结合清除硬件置位,硬、软件结合清除) ) 。 所需负脉冲可以通过在中断服务程序中增加以下二条指令所需负脉冲可以通过在中断
35、服务程序中增加以下二条指令 得到:得到: ANL P1,#0FEH ;Q置置1(SD为直接置位端,低电平有效为直接置位端,低电平有效) ORL P1,#01H ;SD无效无效 使使P1.0输出一个负脉冲,其持续时间输出一个负脉冲,其持续时间为二个机器周期,足以使为二个机器周期,足以使D D 触发器置位,撤除低电平中断请求。第二条指令是必要的,否则触发器置位,撤除低电平中断请求。第二条指令是必要的,否则D D 触发器的触发器的Q Q端始终输出端始终输出“1”1”,无法再接受外部中断请求。,无法再接受外部中断请求。 第五章80C51单片微机的中断系统 原理及应用 从中断请求发生直到被响应去执行中断
36、服务程序,这是从中断请求发生直到被响应去执行中断服务程序,这是 一个很复杂的过程。而整个过程均在一个很复杂的过程。而整个过程均在CPUCPU的控制下有规律的进行。的控制下有规律的进行。 中断响应过程的时序如图中断响应过程的时序如图5 54 4所示。所示。 中断采样中断采样 中断采样是针对外部中断请求信号进行的,而内部中断中断采样是针对外部中断请求信号进行的,而内部中断 请求都发生在芯片内部,可以直接置位请求都发生在芯片内部,可以直接置位TCONTCON或或SCONSCON中的中断请中的中断请 求标志。在每个机器周期的求标志。在每个机器周期的S5P2(S5P2(笫五状态的第二节拍笫五状态的第二节
37、拍) )期间,期间, 各中断标志采样相应的中断源,并置入相应标志。各中断标志采样相应的中断源,并置入相应标志。 5.4 5.4 中断响应过程和响应时间中断响应过程和响应时间 第五章80C51单片微机的中断系统 原理及应用 中断查询中断查询 若查询到某中断标志为若查询到某中断标志为1,则按优先级的高低进行处理,则按优先级的高低进行处理, 即响应中断。即响应中断。 80C51的中断请求都汇集在的中断请求都汇集在TCON和和SCON二个特殊功二个特殊功 能寄存器中。而能寄存器中。而CPU则在下一机器周期的则在下一机器周期的S6期间按优先级的期间按优先级的 顺序查询各中断标志。先查询高级中断,再查询低
38、级中断。同顺序查询各中断标志。先查询高级中断,再查询低级中断。同 级中断按内部中断优先级序列查询。如果查询到有中断标志位级中断按内部中断优先级序列查询。如果查询到有中断标志位 为为“1” ,则表明有中断请求发生,接着从相邻的下一个机器,则表明有中断请求发生,接着从相邻的下一个机器 周期的周期的S1状态开始进行中断响应。状态开始进行中断响应。 由于中断请求是随机发生的,由于中断请求是随机发生的,CPU无法预先得知,因此无法预先得知,因此 中断查询要在指令执行的每个机器周期中不停地重复执行。中断查询要在指令执行的每个机器周期中不停地重复执行。 中断响应中断响应 响应中断后,由硬件自动生成长调用指令
39、响应中断后,由硬件自动生成长调用指令“LCALL”, 其格式为其格式为LCALL addr16,而,而addr16就是各中断源的中断矢量就是各中断源的中断矢量 地址地址(参见表参见表5-1)。 第五章80C51单片微机的中断系统 原理及应用 先将程序计数器先将程序计数器PC的内容压入堆栈进行保护,先低位的内容压入堆栈进行保护,先低位 地址,后高位地址,同时堆栈指针地址,后高位地址,同时堆栈指针SP加加2。 将对应中断源的中断矢量地址装入程序计数器将对应中断源的中断矢量地址装入程序计数器PC,去,去 执行中断服务程序。由于各中断矢量区仅执行中断服务程序。由于各中断矢量区仅8个字节,通常是在个字节
40、,通常是在 中断矢量区中安排一条无条件转移指令,使程序执行转向在其中断矢量区中安排一条无条件转移指令,使程序执行转向在其 它地址中存放的中断服务程序。它地址中存放的中断服务程序。 中断服务程序由中断矢量地址开始执行,直至遇到中断服务程序由中断矢量地址开始执行,直至遇到 RETI指令为止。指令为止。 执行中断返回指令执行中断返回指令RETI,一是撤销中断申请,一是撤销中断申请, 弹出断点地址进入弹出断点地址进入PC,先弹出高位地址,后弹出低位地址,先弹出高位地址,后弹出低位地址, 同时堆栈指针同时堆栈指针SP减减2,恢复原程序的断点地址执行;二是恢复,恢复原程序的断点地址执行;二是恢复 中断触发
41、器原先状态。中断触发器原先状态。 中断响应是有条件的,在接受中断申请时,如遇下列情中断响应是有条件的,在接受中断申请时,如遇下列情 况之一时,硬件生成的长调用指令况之一时,硬件生成的长调用指令“LCALL”将被封锁:将被封锁: 第五章80C51单片微机的中断系统 原理及应用 CPU正在执行同级或高一级的中断服务程序中。因为当一个中正在执行同级或高一级的中断服务程序中。因为当一个中 断被响应时,其对应的中断优先级触发器被置断被响应时,其对应的中断优先级触发器被置“1”,封锁了同级,封锁了同级 和低级中断;和低级中断; 查询中断请求的机器周期不是执行当前指令的最后一个周期。查询中断请求的机器周期不
42、是执行当前指令的最后一个周期。 目的在于使当前指令执行完毕后,才能进行中断响应,以确保当目的在于使当前指令执行完毕后,才能进行中断响应,以确保当 前指令的完整执行;前指令的完整执行; 当前正在执行当前正在执行RETI指令或执行对指令或执行对IE、IP的读写操作指令。的读写操作指令。 80C51中断系统的特性规定,在执行完这些指令之后,必须再继中断系统的特性规定,在执行完这些指令之后,必须再继 续执行一条指令,然后才能响应中断。续执行一条指令,然后才能响应中断。 可以看出,中断的执行过程与调用子程序有许多相似点,比如:可以看出,中断的执行过程与调用子程序有许多相似点,比如: 都是中断当前正在执行
43、的程序,转去执行子程序或中断都是中断当前正在执行的程序,转去执行子程序或中断 服务程序。服务程序。 都是由硬件自动地把断点地址压入堆栈,然后通过软件都是由硬件自动地把断点地址压入堆栈,然后通过软件 完成现场保护。完成现场保护。 第五章80C51单片微机的中断系统 原理及应用 执行完子程序或中断服务程序后,都要通过软件完成执行完子程序或中断服务程序后,都要通过软件完成 现场恢复,并通过执行返回指令,重新返回到断点处,继续往现场恢复,并通过执行返回指令,重新返回到断点处,继续往 下执行程序。下执行程序。 二者都可以实现嵌套,如中断嵌套和子程序嵌套。二者都可以实现嵌套,如中断嵌套和子程序嵌套。 但是
44、中断的执行与调用子程序也有一些大的差别,比如:但是中断的执行与调用子程序也有一些大的差别,比如: 中断请求信号可以由外部设备发出,是随机的,比如中断请求信号可以由外部设备发出,是随机的,比如 故障产生的中断请求,比如按键中断等;子程序调用却是由软故障产生的中断请求,比如按键中断等;子程序调用却是由软 件编排好的。件编排好的。 中断响应后由固定的矢量地址转入中断服务程序,而中断响应后由固定的矢量地址转入中断服务程序,而 子程序地址由软件设定。子程序地址由软件设定。 中断响应是受控的,其响应时间会受一些因素影响;中断响应是受控的,其响应时间会受一些因素影响; 子程序响应时间是固定的。子程序响应时间
45、是固定的。 第五章80C51单片微机的中断系统 原理及应用 当单片微机应用于实时控制系统时,往往非常在意中断的当单片微机应用于实时控制系统时,往往非常在意中断的 响应时间,比如出现故障后,响应时间,比如出现故障后,CPU在多长时间里能够响应和处理。在多长时间里能够响应和处理。 一般来说,在单级中断系统中,中断的响应时间最短为一般来说,在单级中断系统中,中断的响应时间最短为3个个 机器周期,最长为机器周期,最长为8个机器周期。个机器周期。 第五章80C51单片微机的中断系统 原理及应用 当中断请求标志位查询占当中断请求标志位查询占1个机器周期,而这个机器周期个机器周期,而这个机器周期 又恰好是指
46、令的最后一个机器周期,在这个机器周期结束后,又恰好是指令的最后一个机器周期,在这个机器周期结束后, CPU即响应中断,产生硬件长调用即响应中断,产生硬件长调用LCALL指令,执行这条长调指令,执行这条长调 用指令需要用指令需要2个机器周期,这样,中断响应时间为个机器周期,这样,中断响应时间为3个机器周期。个机器周期。 中断响应时间最长为中断响应时间最长为8个机器周期。如果个机器周期。如果CPU正在执行的正在执行的 是是RETI指令或访问指令或访问IP、IE指令,则等待时间不会多于指令,则等待时间不会多于2个机器个机器 周期,而中断系统规定把这几条指令执行完必须再继续执行一周期,而中断系统规定把
47、这几条指令执行完必须再继续执行一 条指令后才能响应中断,如这条指令恰好是条指令后才能响应中断,如这条指令恰好是4个机器周期长的指个机器周期长的指 令令(比如乘法指令比如乘法指令MUL或除法指令或除法指令DIV) ,再加上执行长调用指,再加上执行长调用指 令令LCALL所需所需2个机器周期,总共需要个机器周期,总共需要8个机器周期。个机器周期。 如果中断请求被前面所列三个条件之一所阻止,不能产如果中断请求被前面所列三个条件之一所阻止,不能产 生硬件长调用生硬件长调用LCALL指令,那么所需的响应时间就更长些。如指令,那么所需的响应时间就更长些。如 果正在处理同级或优先级更高的中断,那么中断响应的
48、时间还果正在处理同级或优先级更高的中断,那么中断响应的时间还 需取决于处理中的中断服务程序的执行时间。需取决于处理中的中断服务程序的执行时间。 第五章80C51单片微机的中断系统 原理及应用 在在80C51系列单片微机中,一般只有两个外部中断请求系列单片微机中,一般只有两个外部中断请求 输入端输入端INT0,INT1 。当某个系统需要多个外部中断源时,可以。当某个系统需要多个外部中断源时,可以 通过增加通过增加“OC门门” 结合软件来扩展;当定时器结合软件来扩展;当定时器/计数器在系统计数器在系统 中有空余时,也可以通过对计数器计数长度的巧妙设置,使定中有空余时,也可以通过对计数器计数长度的巧
49、妙设置,使定 时器时器/计数器的外部输入脚计数器的外部输入脚(TO或或T1) 成为外部中断请求输入端。成为外部中断请求输入端。 5.5 外部中断源的扩展外部中断源的扩展 第五章80C51单片微机的中断系统 原理及应用 引入芯片本身的外部中断请求输入端(引入芯片本身的外部中断请求输入端(INT0、INT1)就)就 可很方便地扩展多个外部中断源。图可很方便地扩展多个外部中断源。图55 就是占用一个就是占用一个80C51的的 INT0(或(或INT1)扩展)扩展4个外部中断源的电路。个外部中断源的电路。 4个扩展外部中断源中有一个或几个出现高电平,反相器个扩展外部中断源中有一个或几个出现高电平,反相
50、器 输出为输出为0,引起,引起INT0低电平触发中断,所以这些中断源都是电低电平触发中断,所以这些中断源都是电 平触发方式。当满足外部中断请求条件时,则平触发方式。当满足外部中断请求条件时,则CPU响应中断,响应中断, 转入转入0003H单元开始执行中断服务程序。单元开始执行中断服务程序。 第五章80C51单片微机的中断系统 原理及应用 在中断服务程序中,由软件设定的顺序查询外中断哪一在中断服务程序中,由软件设定的顺序查询外中断哪一 位是高电平,然后进入该中断处理程序。查询的顺序就是外部位是高电平,然后进入该中断处理程序。查询的顺序就是外部 扩展中断源的中断优先级顺序。外部中断源查询的流程图示
51、于扩展中断源的中断优先级顺序。外部中断源查询的流程图示于 图图56。 INT0的中断服务程序如下:的中断服务程序如下: PINTO:PUSH PSW ;保护现场;保护现场 PUSH ACC JB P1.0, LOOP1 ;转向中断服务程序;转向中断服务程序1 JB P1.l,LOOP2 ;转向中断服务程序;转向中断服务程序2 JB P1.2,LOOP3 ;转向中断服务程序;转向中断服务程序3 JB P1.3,LOOP4 ;转向中断服务程序;转向中断服务程序4 INTEND:POP ACC ;恢复现场;恢复现场 第五章80C51单片微机的中断系统 原理及应用 POP PSW RETI LOOP1
52、:;中断服务程序;中断服务程序1 AJMP INTEND LOOP2:;中断服务程序;中断服务程序2 AJMP INTEND LOOP3:;中断服务程序;中断服务程序3 AJMP INTEND LOOP4:;中断服务程序;中断服务程序4 AJMP INTEND 从程序中可以看出,这里定义的扩展外中断源从程序中可以看出,这里定义的扩展外中断源1的优先级最高,的优先级最高, 扩展外中断源扩展外中断源4的优先级最低,所以查询的顺序从的优先级最低,所以查询的顺序从P1.0开始。开始。 第五章80C51单片微机的中断系统 原理及应用 利用利用T0或或T1的外部事件输入引脚的外部事件输入引脚T0、T1作为
53、边沿触发作为边沿触发 的外部中断源。这时应设置定时器的外部中断源。这时应设置定时器/计数器为计数器方式,而计计数器为计数器方式,而计 数常数为满刻度值。外部输入的脉冲在负跳变时有效,计数器数常数为满刻度值。外部输入的脉冲在负跳变时有效,计数器 加加1后即溢出,向后即溢出,向CPU申请中断。申请中断。 如果以如果以T0、T1的计数脉冲输入作为外部中断请求输入,的计数脉冲输入作为外部中断请求输入, T0、T1的中断矢量用做第三、笫四个扩展的外部中断矢量,的中断矢量用做第三、笫四个扩展的外部中断矢量,T0、 T1的中断服务程序入口地址作为扩展的外部中断服务入口地址,的中断服务程序入口地址作为扩展的外
54、部中断服务入口地址, 即实现了外部中断的扩展。即实现了外部中断的扩展。 当当T2用做波特率发生器时,若用做波特率发生器时,若EXEN2置置1,则,则T2EX端的端的 信号产生负跳变时,信号产生负跳变时,EXF2将置将置1,但不会发生重装载或捕获操,但不会发生重装载或捕获操 作。这时,作。这时,T2EX可以作为一个附加的外部中断源。可以作为一个附加的外部中断源。 例例 把外部中断请求信号把外部中断请求信号2连到连到T1引脚上,引脚上,T1设为方式设为方式2,即,即8 位自动重装载方式,时间常数设为满刻度值位自动重装载方式,时间常数设为满刻度值FFH 第五章80C51单片微机的中断系统 原理及应用
55、 外部中断的服务程序入口地址存放在外部中断的服务程序入口地址存放在T1的中断矢量区中。其初始的中断矢量区中。其初始 化程序段如下:化程序段如下: ORG0000H AJMP MAIN ORG001BH;T1中断矢量用作外部中断中断矢量用作外部中断2 ;的中断矢量;的中断矢量 LJMP INT2 ORG0030H MAIN:MOVTMOD,#60H ;设;设T1计数器方式计数器方式2 MOVTL1,#0FFH;置;置T1计数常数计数常数 MOVTH1,#0FFH 第五章80C51单片微机的中断系统 原理及应用 SETB EA;开中断;开中断 SETB ET1;允许计数器;允许计数器1中断中断 S
56、ETB TR1;启动计数;启动计数 - INT2: -;外部中断;外部中断2服务程序服务程序 第五章80C51单片微机的中断系统 原理及应用 80C51的中断系统中,允许用户单步运行程序,这样用的中断系统中,允许用户单步运行程序,这样用 户可以很方便的进行程序调试。一般是设置一个单步键户可以很方便的进行程序调试。一般是设置一个单步键(STEP) , 用以产生脉冲,按一次用以产生脉冲,按一次STEP键就执行一条指令,通过检查结果键就执行一条指令,通过检查结果 来检查每条指令执行的正确与否。来检查每条指令执行的正确与否。 80C51中断结构有一个重要特性,即执行中断返回指令中断结构有一个重要特性,
57、即执行中断返回指令 RETI后,必须至少执行一条其它指令后,才能响应新的中断。后,必须至少执行一条其它指令后,才能响应新的中断。 典型方法是使用外部中断,并将其设为电平触发方式。典型方法是使用外部中断,并将其设为电平触发方式。 硬件上,把按键产生的脉冲连到硬件上,把按键产生的脉冲连到 INT0(P3.2)引脚,作为引脚,作为 外部中断外部中断0的中断请求信号,并把电路设计为不按键时为低电平,的中断请求信号,并把电路设计为不按键时为低电平, 按一次键产生一个正脉冲。按一次键产生一个正脉冲。 5.6 80C51的单步操作的单步操作 第五章80C51单片微机的中断系统 原理及应用 软件上,需编制外部
58、中断软件上,需编制外部中断0的中断服务程序,在中断服务程序的的中断服务程序,在中断服务程序的 末尾为末尾为 JNB P3.2,$;INT0 =0 ,则等待,则等待 JB P3.2,$;INT0=1 ,则等待,则等待 RETI;中断返回;中断返回 在没有按键时,在没有按键时,INT0=0 ,中断请求有效,响应中断后,中断请求有效,响应中断后 执行中断服务程序,在执行到执行中断服务程序,在执行到JNB P3.2,$指令时等待。当按指令时等待。当按 下单步键后产生一个正脉冲,执行中断返回,再执行一条指令下单步键后产生一个正脉冲,执行中断返回,再执行一条指令 后,后, 由于已为低电平,所以单片微机再次
59、响应中断,并进入中由于已为低电平,所以单片微机再次响应中断,并进入中 断服务程序等待。从而实现了按一次键执行一条指令的功能。断服务程序等待。从而实现了按一次键执行一条指令的功能。 第五章80C51单片微机的中断系统 原理及应用 80C51单片微机中,共有单片微机中,共有5个中断源,由个中断源,由4个特殊功能寄存个特殊功能寄存 器器TCON、SCON、IE和和IP进行管理和控制。对于进行管理和控制。对于80C5280C32 单片微机,增加了一个单片微机,增加了一个16位的定时器计数器位的定时器计数器T2中断请求。中断请求。 在在80C51单片微机中,需要用软件对以下单片微机中,需要用软件对以下5
60、个内容进行设置:个内容进行设置: 中断服务程序入口地址的设定。中断服务程序入口地址的设定。 某一中断源中断请求的允许与禁止。某一中断源中断请求的允许与禁止。 对于外部中断请求,还需进行触发方式的设定。对于外部中断请求,还需进行触发方式的设定。 各中断源优先级别的设定。各中断源优先级别的设定。 CPU开中断与关中断。开中断与关中断。 5.7 中断服务程序的设计中断服务程序的设计 第五章80C51单片微机的中断系统 原理及应用 中断程序一般包含中断控制程序和中断服务程序两部分。中断程序一般包含中断控制程序和中断服务程序两部分。 中断控制程序即中断初始化程序,一般不独立编写,而是包中断控制程序即中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (新教材)2026人教版三年级下册数学 2.2.8 归总问题 教学课件
- 2025 网络基础中 5G 与区块链金融网络的安全交易课件
- 统编版语文一年级下册第一单元 质量提优卷(含答案)
- 高耐腐蚀性零件数控加工系统应用可行性研究报告
- 2026年人才合同和人事代理合同(1篇)
- 刑罚执行的程序和监督
- 2025 高中信息技术数据与计算之计算思维在海洋化学数据监测分析中的应用课件
- 2025 高中信息技术数据与计算之算法的鸽群优化算法课件
- 煤气安全培训试卷及答案
- 2025 高中信息技术数据与计算之数据在电商营销渠道效果评估中的应用课件
- 薪资核定及管理办法
- 劳动课自制沙拉课件
- 药膳养生鸡汤培训课件
- 监狱辅警面试题目及答案
- 十五五特殊教育发展提升行动计划
- 医院运营数据统计分析
- 幼儿跑酷培训
- 2025至2030年中国氟化液行业市场运行态势及产业趋势研判报告
- 毕业设计(论文)-包裹分拣机械结构设计
- 徐州地铁考试题库及答案
- 国家助学贷款诚信教育主题班会
评论
0/150
提交评论