第5章80C51单片微机的中断系统原理及应用_第1页
第5章80C51单片微机的中断系统原理及应用_第2页
第5章80C51单片微机的中断系统原理及应用_第3页
第5章80C51单片微机的中断系统原理及应用_第4页
第5章80C51单片微机的中断系统原理及应用_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、普通高等教育“十一五”国家级规划教材单片微型计算机原理与接口技术单片微型计算机原理与接口技术(第二版)(第二版)高锋高锋 编著编著科学出版社科学出版社北京北京第五章第五章 80C51单片微机的单片微机的中断系统原理及应用中断系统原理及应用中断概念的出现,是计算机系统结构设计中的重中断概念的出现,是计算机系统结构设计中的重大变革。大变革。现代计算机中操作系统实现的管理调度,其物质现代计算机中操作系统实现的管理调度,其物质基础就是丰富的中断功能和完善的中断系统。一个基础就是丰富的中断功能和完善的中断系统。一个CPU资源要面向多个任务,出现资源竞争,而中断技术实质资源要面向多个任务,出现资源竞争,而

2、中断技术实质上是一种资源共享技术。上是一种资源共享技术。中断系统包括它的硬件和软件编程。中断系统包括它的硬件和软件编程。 中断系统的几个概念:中断系统的几个概念: 中断中断程序执行过程中,允许外部或内部事件通过硬件打断程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向为处理外部或内部事件的中断服务程程序的执行,使其转向为处理外部或内部事件的中断服务程序中去;完成中断服务程序后,序中去;完成中断服务程序后,CPU继续原来被打断的程序,继续原来被打断的程序,这样的过程称为中断响应过程,如图这样的过程称为中断响应过程,如图51所示。所示。 中断源中断源能产生中断的外部和内部事件。能产

3、生中断的外部和内部事件。5.1 中断系统概述中断系统概述 5.1.1单片微机的中断系统需要解决的问题单片微机的中断系统需要解决的问题 中断优先级中断优先级当有几个中断源同时申请中断时,或者当有几个中断源同时申请中断时,或者CPU正在处理某正在处理某中断源服务程序时,又有另一中断源申请中断,那么中断源服务程序时,又有另一中断源申请中断,那么CPU必须必须要确定优先去处理谁的能力。要确定优先去处理谁的能力。 中断嵌套中断嵌套优先级高的事件可以中断优先级高的事件可以中断CPU正在处理的低级的中断服正在处理的低级的中断服务程序,待完成了高级中断服务程序之后,再继续被打断的低务程序,待完成了高级中断服务

4、程序之后,再继续被打断的低级中断服务程序。级中断服务程序。 实现故障的及时发现及处理实现故障的及时发现及处理应用中由于外界的干扰、硬件或软件设计中存在问题等应用中由于外界的干扰、硬件或软件设计中存在问题等因素,在实际运行中会出现硬件故障、运算错误、程序运行故因素,在实际运行中会出现硬件故障、运算错误、程序运行故障等,有了中断技术,单片微机就能及时发现故障并自动处理。障等,有了中断技术,单片微机就能及时发现故障并自动处理。 实现人机联系实现人机联系如通过键盘向单片微机发出中断请求,可以实时干预计如通过键盘向单片微机发出中断请求,可以实时干预计算机的工作。算机的工作。 单片微机的中断系统需要解决的

5、问题单片微机的中断系统需要解决的问题 当单片微机内部或外部有中断申请时,当单片微机内部或外部有中断申请时,CPU能及时响能及时响应中断,停下正在执行的任务,转去处理中断服务子程序,中断应中断,停下正在执行的任务,转去处理中断服务子程序,中断服务处理后能回到原断点处继续处理原先的任务;服务处理后能回到原断点处继续处理原先的任务; 当有多个中断源同时申请中断时,应能先响应优先级高当有多个中断源同时申请中断时,应能先响应优先级高的中断源,实现中断优先级的控制;的中断源,实现中断优先级的控制; 当低优先级中断源正在享用中断服务时,若这时优先级当低优先级中断源正在享用中断服务时,若这时优先级比它高的中断

6、源也申请中断,要求能停下低优先级中断源的服务比它高的中断源也申请中断,要求能停下低优先级中断源的服务程序转去执行更高优先级中断源的服务程序,实现中断嵌套,并程序转去执行更高优先级中断源的服务程序,实现中断嵌套,并能逐级正确返回原断点处。能逐级正确返回原断点处。 实现实现CPU与外部设备的速度配合与外部设备的速度配合 通过中断的方法来协调快速通过中断的方法来协调快速CPU与慢速外部设备之间的工作。与慢速外部设备之间的工作。 实现实时控制实现实时控制依靠中断技术能实现实时控制。依靠中断技术能实现实时控制。实时控制要求计算机能及时完成被控对象随机提出的分析和实时控制要求计算机能及时完成被控对象随机提

7、出的分析和计算任务。在自动控制系统中,要求各控制参量随机地在任何时刻计算任务。在自动控制系统中,要求各控制参量随机地在任何时刻可向计算机发出请求,可向计算机发出请求,CPUCPU必须作出快速响应、及时处理。必须作出快速响应、及时处理。 5.1.2 中断的主要功能中断的主要功能80C5180C51的中断系统包括中断源、中断允许寄存器的中断系统包括中断源、中断允许寄存器IEIE、中断优先级寄存器、中断优先级寄存器IPIP、中断矢量等。、中断矢量等。在在80C5180C51中,只有两级中断优先级。图中,只有两级中断优先级。图5252是是80C5180C51的中断系统结构示意图。的中断系统结构示意图。

8、5.2 80C51 5.2 80C51 的中断系统的中断系统 80C5180C51有有5 5个中断源,个中断源,80C5280C52增加了一个中断源增加了一个中断源定时器定时器计数器计数器T2T2。每一个中断源都能被程控为高优先级或低优先级。每一个中断源都能被程控为高优先级或低优先级。两个外部中断源两个外部中断源INT0INT0和和INT1INT1:外部设备的中断请求:外部设备的中断请求信号、掉电等故障信号都可以从信号、掉电等故障信号都可以从INT0INT0或或INT1INT1引脚输入。引脚输入。三个内部中断源:三个内部中断源:T0T0和和T1T1的定时的定时/ /计数谥出中断源计数谥出中断源

9、和串行口发送或接收中断源。和串行口发送或接收中断源。5.2.1 5.2.1 中断源中断源1. 1. 外部中断外部中断外部中断是由外部信号引起的,共有两个外部中断,它们外部中断是由外部信号引起的,共有两个外部中断,它们的中断请求信号分别从引脚的中断请求信号分别从引脚INT0 INT0 和和INT1 INT1 上引入。上引入。外部中断请求有两种信号触发方式外部中断请求有两种信号触发方式. . 可通过设置有关控制位进行定义。可通过设置有关控制位进行定义。当设定为电平有效方式时,若当设定为电平有效方式时,若INT0INT0或或INT1INT1引脚上采样到有效引脚上采样到有效的低电平,则向的低电平,则向

10、CPUCPU提出中断请求;提出中断请求;当设定为跳变有效方式时,若当设定为跳变有效方式时,若INT0INT0或或INT1INT1引脚上采样到有效引脚上采样到有效负跳变,则向负跳变,则向CPUCPU提出中断请求。提出中断请求。INT0INT0:外部中断外部中断0 0。当当IT0IT00 0 时,低电平有效;时,低电平有效;当当IT0=1IT0=1时,下降沿有效。时,下降沿有效。INT1INT1:外部中断:外部中断1 1。当当IT1IT10 0 时,低电平有效;时,低电平有效;当当IT1=1 IT1=1 时,下降沿有效时,下降沿有效。 定时中断定时中断当计数器发生计数溢出时,表明设定的定时时间当计

11、数器发生计数溢出时,表明设定的定时时间到或计数值已满,这时可以向到或计数值已满,这时可以向CPUCPU申请中断。申请中断。80C5180C51有两个源,即:有两个源,即: TF0 TF0:T0T0溢出中断。溢出中断。 TF1 TF1:T1T1溢出中断。溢出中断。 串行中断串行中断每当串行口发送或接收一帧串行数据时,就产每当串行口发送或接收一帧串行数据时,就产生一个中断请求。生一个中断请求。RXDRXD,TXDTXD:串行中断。:串行中断。矢量中断:当矢量中断:当CPUCPU响应中断时,由硬件直接产响应中断时,由硬件直接产生一个固定的地址,即矢量地址,由矢量地址指出每生一个固定的地址,即矢量地址

12、,由矢量地址指出每个中断源设备的中断服务程序的入口。个中断源设备的中断服务程序的入口。当当CPUCPU识别出某个中断源时,由硬件直接给出识别出某个中断源时,由硬件直接给出一个与该中断源相对应的矢量地址,从而转入各自中一个与该中断源相对应的矢量地址,从而转入各自中断服务程序。中断矢量地址见表断服务程序。中断矢量地址见表5 51 1。5.2.2 5.2.2 中断矢量中断矢量 INT0INT0,INT1INT1,T0 T0 及及 T1T1的中断标志存放在的中断标志存放在 TCONTCON寄存器中;寄存器中;串行口的中断标志存放在串行口的中断标志存放在 SCONSCON寄存器中。寄存器中。 定时器计数

13、器控制寄存器定时器计数器控制寄存器TCONTCON:IT1IT1:INT1INT1的中断申请触发方式控制位的中断申请触发方式控制位IT0IT0:INT0INT0的中断申请触发方式控制位。的中断申请触发方式控制位。 5.3 5.3 中断的控制中断的控制5.3.15.3.1中断标志中断标志 TF1 TF1:T1T1计数溢出,由硬件置位,响应中断时由硬计数溢出,由硬件置位,响应中断时由硬件复位。不用中断时用软件清件复位。不用中断时用软件清0 0。TF0TF0:T0T0计数溢出,由硬件置位,响应中断时由硬件计数溢出,由硬件置位,响应中断时由硬件复位。不用中断时用软件清复位。不用中断时用软件清0 0。

14、IE1 IE11 1时,外部中断时,外部中断1 1向向CPUCPU申请中断。申请中断。 IE0 IE01 1时,外部中断时,外部中断0 0向向CPUCPU申请中断。申请中断。串行口控制寄存器串行口控制寄存器SCONSCON: TI TI:串行口发送中断源。:串行口发送中断源。发送完一帧,由硬件置位。响应中断后,必须用软件清发送完一帧,由硬件置位。响应中断后,必须用软件清 0 0。 RI RI:串行口接收中断源。:串行口接收中断源。接收完一帧,由硬件置位。响应中断后,必须用软件清接收完一帧,由硬件置位。响应中断后,必须用软件清0 0。中断允许和禁止由中断允许寄存器中断允许和禁止由中断允许寄存器I

15、EIE控制。控制。中断允许寄存器中断允许寄存器IEIE:5.3.2 5.3.2 中断允许控制中断允许控制IEIE寄存器中各位设置:为寄存器中各位设置:为0 0时,禁止中断;为时,禁止中断;为1 1时,允许时,允许中断。中断。系统复位后系统复位后IEIE寄存器中各位均为寄存器中各位均为0 0,禁止所有中断,禁止所有中断。 EX0:外部中断:外部中断0 0中断允许位。中断允许位。 ET0:T0T0中断允许位。中断允许位。 EX1:外部中断:外部中断1 1中断允许位。中断允许位。 ET1: T1T1中断允许位。中断允许位。 ES:串行口中断允许位。:串行口中断允许位。 EA:CPU中断允许位。当中断

16、允许位。当EA1 1,允许所有中断,允许所有中断开放,总允许后,各中断的允许或禁止由各中断源的中断开放,总允许后,各中断的允许或禁止由各中断源的中断允许控制位进行设置;当允许控制位进行设置;当EA0 0时,屏蔽所有中断。时,屏蔽所有中断。在在80C5180C51中有高、低两个中断优先级,通过中有高、低两个中断优先级,通过IP来设定。来设定。中断优先级寄存器中断优先级寄存器IP:IPIP寄存器中各位设置:为寄存器中各位设置:为0 0时,为低中断优先级;为时,为低中断优先级;为1 1时,时,设为高中断优先级。设为高中断优先级。系统复位后系统复位后IPIP寄存器中各位均为寄存器中各位均为0 0,全部

17、设定为低中断,全部设定为低中断优先级。优先级。5.3.3 5.3.3 中断优先中断优先级级中断优先级控制,还有两个不可寻址的优先级状态触发器,中断优先级控制,还有两个不可寻址的优先级状态触发器,一个用于指示某一高优先级中断正在进行服务,而屏蔽其它高优先一个用于指示某一高优先级中断正在进行服务,而屏蔽其它高优先级中断;另一个用于指示某一低优先级中断正在进行服务,从而屏级中断;另一个用于指示某一低优先级中断正在进行服务,从而屏蔽其它低优先级中断,但不能屏蔽高优先级中断。蔽其它低优先级中断,但不能屏蔽高优先级中断。 在中断执行过程中,高中断优先级可以中断低中在中断执行过程中,高中断优先级可以中断低中

18、断优先级的中断过程。但是若在中断服务程序中,关掉所断优先级的中断过程。但是若在中断服务程序中,关掉所有中断(有中断(CLR EA)或关掉部分中断时除外。)或关掉部分中断时除外。当当CPU同时接收到两个不同优先级的中断请求时,同时接收到两个不同优先级的中断请求时,先响应高优先级的中断,如果先响应高优先级的中断,如果CPUCPU同时接收到的是几个同同时接收到的是几个同一优先级的中断请求时,则由内部的硬件查询序列确定它一优先级的中断请求时,则由内部的硬件查询序列确定它们的优先服务次序,们的优先服务次序, 在同一优先级内有一个由内部查询序列确定的笫二个在同一优先级内有一个由内部查询序列确定的笫二个优先

19、级结构。其排列如下:优先级结构。其排列如下: 中断源中断源中断优先级中断优先级 外部中断外部中断0 0最高最高 定时器定时器T0T0中断中断 外部中断外部中断1 1 定时器定时器T1T1中断中断 串行口中断串行口中断 定时器定时器T2T2中断中断最低最低(80C52)(80C52) INT0INT0,INT1INT1的中断触发方式有两种:的中断触发方式有两种:电平触发方式,低电平有效。电平触发方式,低电平有效。 跳变触发方式,电平发生由高到低的跳变时触发。跳变触发方式,电平发生由高到低的跳变时触发。IT1IT1、IT0IT00 0,选择电平触发方式;,选择电平触发方式; IT1IT1、IT0I

20、T0l l,选择跳变触发方式,即当,选择跳变触发方式,即当INT0INT0,INT1INT1引脚检测到前一个机器周期为高电平、后一个机器周期引脚检测到前一个机器周期为高电平、后一个机器周期为低电平时,则置位为低电平时,则置位IE0IE0、IE1IE1且向且向CPUCPU申请中断。申请中断。 5.3.4 5.3.4 外部中断触发方式外部中断触发方式 由于由于CPUCPU每个机器周期采样每个机器周期采样INTOINTO、INT1INT1引脚信号一引脚信号一次,为确保中断请求被采样到,外部中断源送次,为确保中断请求被采样到,外部中断源送INTOINTO、INT1INT1引脚的中断请求信号应至少保持一

21、个机器周期。引脚的中断请求信号应至少保持一个机器周期。跳变触发方式,外部中断源送跳变触发方式,外部中断源送INT0INT0、INT1INT1引脚的中断请求引脚的中断请求信号高、低电平应至少各保持一个机器周期,才能确保信号高、低电平应至少各保持一个机器周期,才能确保CPUCPU采集到电平的跳变;采集到电平的跳变;电平触发方式,则外部中断源送电平触发方式,则外部中断源送INT0INT0、INT1INT1引脚请求中断引脚请求中断的低电平有效信号,应一直保持到的低电平有效信号,应一直保持到CPUCPU响应中断为止。响应中断为止。 1 1 由单片微机内部硬件自动复位。由单片微机内部硬件自动复位。对于对于

22、T0T0、T1 T1 的溢出中断和采用跳变触发方式的的溢出中断和采用跳变触发方式的外部中断请求,在外部中断请求,在CPUCPU响应中断后,由内部硬件自动清响应中断后,由内部硬件自动清除除中断标志中断标志TF0TF0和和TF1TF1、IE0IE0和和IE1IE1,而自动撤除中断请,而自动撤除中断请求。求。5.3.5 5.3.5 中断请求的撤除中断请求的撤除2 2应用软件清除相应标志。应用软件清除相应标志。对于串行接收发送中断请求和对于串行接收发送中断请求和80C5280C52中的中的T2T2的的溢出和捕获中断请求,在溢出和捕获中断请求,在CPUCPU响应中断后,必须在中断响应中断后,必须在中断服

23、务程序中应用软件清除服务程序中应用软件清除RIRI、TITI、TF2TF2和和 EXF2EXF2这些中这些中断标志,才能撤除中断断标志,才能撤除中断。3 3采用外加采用外加 硬件结合软件清除中断请求。硬件结合软件清除中断请求。对于采用电平触发方式的外部中断请求,中断对于采用电平触发方式的外部中断请求,中断标志的撤消是自动的,但中断请求信号的低电平可标志的撤消是自动的,但中断请求信号的低电平可能继续存在,在以后机器周期采样时又会把已清能继续存在,在以后机器周期采样时又会把已清“0”0”的的IE0IE0、IE1IE1标志重新置标志重新置“1”1”,再次申请中断。再次申请中断。保证在中断响应后把中断

24、请求信号从低电平强保证在中断响应后把中断请求信号从低电平强制改变为高电平。可在系统中加入如制改变为高电平。可在系统中加入如图图5-3 5-3 所示电所示电路。路。从图从图5-3 5-3 中可看到,用中可看到,用D D触发器锁存外部中断请求低电平,并通过触发器锁存外部中断请求低电平,并通过触发器输出端触发器输出端Q Q送送INT0INT0或或INT1INT1,所以,所以D D触发器对外部中断请求没有影触发器对外部中断请求没有影响。但在中断响应后,为了撤消低电平引起的中断请求,可利用响。但在中断响应后,为了撤消低电平引起的中断请求,可利用D D触发器的直接置位端触发器的直接置位端SDSD来实现。采

25、用来实现。采用80C5180C51的一根的一根I/OI/O口线来控制口线来控制SDSD端。只要在端。只要在SDSD端输入一个负脉冲即可使端输入一个负脉冲即可使D D触发器置触发器置“1”1”。ANL P1,#0FEH ;Q置置1ORL P1,#01H ;SD无效无效 使使P1.0输出一个负脉冲,其持续时间输出一个负脉冲,其持续时间为两个机器周期,足以使为两个机器周期,足以使D D触触发器置位,撤除低电平中断请求。发器置位,撤除低电平中断请求。 从中断请求发生直到被响应去执行中断服务程序,从中断请求发生直到被响应去执行中断服务程序,中断响应过程的时序如图中断响应过程的时序如图5 54 4所示。所

26、示。 中断采样中断采样针对外部中断请求信号进行的,而内部中断请求针对外部中断请求信号进行的,而内部中断请求都发生在芯片内部,可以直接置位都发生在芯片内部,可以直接置位TCONTCON或或SCONSCON中的中断中的中断请求标志。请求标志。 在每个机器周期的在每个机器周期的S5P2S5P2期间,各中断标志采样相期间,各中断标志采样相应的中断源,并置入相应标志。应的中断源,并置入相应标志。5.4 5.4 中断响应过程和响应时间中断响应过程和响应时间 5.4.15.4.1中断的响应过程中断的响应过程 中断查询中断查询 若查询到某中断标志为若查询到某中断标志为1,则按优先级的高低进行,则按优先级的高低

27、进行处理,即响应中断。处理,即响应中断。80C51的中断请求都汇集在的中断请求都汇集在TCON和和SCON中。而中。而CPU则在下一机器周期的则在下一机器周期的S6期间按优先级的顺序查询各期间按优先级的顺序查询各中断标志。中断标志。先查询高级中断,再查询低级中断。先查询高级中断,再查询低级中断。同级中断按内部中断优先级序列查询。同级中断按内部中断优先级序列查询。如果查询到有中断标志位为如果查询到有中断标志位为“1” ,则表明有中断请求发,则表明有中断请求发生,接着从相邻的下一个机器周期的生,接着从相邻的下一个机器周期的S1状态开始进行中断状态开始进行中断响应。响应。 中断响应中断响应 硬件自动

28、生成长调用指令为硬件自动生成长调用指令为LCALL addr16,而,而addr16就是各就是各中断源的中断矢量地址中断源的中断矢量地址(参见表参见表5-1)。 先将程序计数器先将程序计数器PC的内容压入堆栈进行保护,先低位地址,的内容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针后高位地址,同时堆栈指针SP加加2。将对应中断源的中断矢量地址装入将对应中断源的中断矢量地址装入PC,去执行中断服务程序。,去执行中断服务程序。中断服务程序由中断矢量地址开始执行,直至遇到中断服务程序由中断矢量地址开始执行,直至遇到RETI为止。为止。 执行执行RETI,一是撤销中断申请,弹出断点地址进入,一

29、是撤销中断申请,弹出断点地址进入PC,先弹出,先弹出高位地址,后弹出低位地址,同时堆栈指针高位地址,后弹出低位地址,同时堆栈指针SP减减2,恢复原程序的,恢复原程序的断点地址执行;二是恢复中断触发器原先状态。断点地址执行;二是恢复中断触发器原先状态。中断响应是有条件的,在接受中断申请时,如遇下列情况中断响应是有条件的,在接受中断申请时,如遇下列情况之一时,硬件生成的长调用指令之一时,硬件生成的长调用指令“LCALL”将被封锁:将被封锁: CPU正在执行同级或高一级的中断服务程序中。因为当一个正在执行同级或高一级的中断服务程序中。因为当一个中断被响应时,其对应的中断优先级触发器被置中断被响应时,

30、其对应的中断优先级触发器被置“1”,封锁了同,封锁了同级和低级中断;级和低级中断; 查询中断请求的机器周期不是执行当前指令的最后一个周期。查询中断请求的机器周期不是执行当前指令的最后一个周期。 当前正在执行当前正在执行RETI指令或执行对指令或执行对IE、IP的读写操作指令。的读写操作指令。80C51中断系统的特性规定,在执行完这些指令之后,必须再继中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。续执行一条指令,然后才能响应中断。中断的执行过程与调用子程序相似点:中断的执行过程与调用子程序相似点: 都是中断当前正在执行的程序,转去执行子程序都是中断当前正在执

31、行的程序,转去执行子程序或中断服务程序。或中断服务程序。 都是由硬件自动地把断点地址压入堆栈,然后通都是由硬件自动地把断点地址压入堆栈,然后通过软件完成现场保护。过软件完成现场保护。 执行完子程序或中断服务程序后,都要通过软件执行完子程序或中断服务程序后,都要通过软件完成现场恢复,并通过执行返回指令,重新返回到断点处,完成现场恢复,并通过执行返回指令,重新返回到断点处,继续往下执行程序。继续往下执行程序。 二者都可以实现嵌套,如中断嵌套和子程序嵌套。二者都可以实现嵌套,如中断嵌套和子程序嵌套。中断的执行与调用子程序差别中断的执行与调用子程序差别 中断请求信号可以由外部设备发出,是随机的,中断请

32、求信号可以由外部设备发出,是随机的,比如故障产生的中断请求;子程序调用却是由软件编排好比如故障产生的中断请求;子程序调用却是由软件编排好的。的。 中断响应后由固定的矢量地址转入中断服务程序,中断响应后由固定的矢量地址转入中断服务程序,而子程序地址由软件设定。而子程序地址由软件设定。 中断响应是受控的,其响应时间会受一些因素影中断响应是受控的,其响应时间会受一些因素影响;子程序响应时间是固定的。响;子程序响应时间是固定的。 一般来说,在单级中断系统中,中断的响应时间一般来说,在单级中断系统中,中断的响应时间最短为最短为3个机器周期,最长为个机器周期,最长为8个机器周期。个机器周期。当中断请求标志

33、位查询占当中断请求标志位查询占1个机器周期,而这个个机器周期,而这个机器周期又恰好是指令的最后一个机器周期,在这个机器周期又恰好是指令的最后一个机器周期,在这个机器周期结束后,机器周期结束后,CPU即响应中断,产生硬件长调用即响应中断,产生硬件长调用LCALL指令,执行这条长调用指令需要指令,执行这条长调用指令需要2个机器周期,个机器周期,中断响应时间为中断响应时间为3个机器周期。个机器周期。5.4.2 中断响应时间中断响应时间中断响应时间最长为中断响应时间最长为8个机器周期。如果个机器周期。如果CPU正正在执行的是在执行的是RETI指令或访问指令或访问IP、IE指令,则等待时间指令,则等待时

34、间不会多于不会多于2个机器周期,而中断系统规定把这几条指令个机器周期,而中断系统规定把这几条指令执行完必须再继续执行一条指令后才能响应中断,如这执行完必须再继续执行一条指令后才能响应中断,如这条指令恰好是条指令恰好是4个机器周期长的指令个机器周期长的指令(比如乘法指令比如乘法指令MUL或除法指令或除法指令DIV) ,再加上执行长调用指令,再加上执行长调用指令LCALL所需所需2个机器周期。个机器周期。如果中断请求被前面所列三个条件之一所阻止,如果中断请求被前面所列三个条件之一所阻止,所需的响应时间就更长些。如果正在处理同级或优先级所需的响应时间就更长些。如果正在处理同级或优先级更高的中断,那么

35、中断响应的时间还需取决于处理中的更高的中断,那么中断响应的时间还需取决于处理中的中断服务程序的执行时间。中断服务程序的执行时间。在在80C51系列单片微机中,一般只有两个外部中系列单片微机中,一般只有两个外部中断请求输入端断请求输入端INT0、INT1 。当某个系统需要多个外。当某个系统需要多个外部中断源时,可以通过增加部中断源时,可以通过增加“OC门门” 结合软件来扩结合软件来扩展;当定时器展;当定时器/计数器在系统中有空余时,可以通过对计数器在系统中有空余时,可以通过对计数器计数长度的巧妙设置,使定时器计数器计数长度的巧妙设置,使定时器/计数器的外部计数器的外部输入脚输入脚(T0或或T1)

36、 成为外部中断请求输入端。成为外部中断请求输入端。5.5 外部中断源的扩展外部中断源的扩展引入芯片本身的外部中断请求输入端(引入芯片本身的外部中断请求输入端(INT0、INT1)就可很方便地扩展多个外部中断源。图)就可很方便地扩展多个外部中断源。图55 就是占就是占用一个用一个80C51的的 INT0(或(或INT1)扩展)扩展4个外部中断源的电个外部中断源的电路。路。4个扩展外部中断源中有一个或几个出现高电平,反个扩展外部中断源中有一个或几个出现高电平,反相器输出为相器输出为0,引起,引起INT0低电平触发中断,中断源都是电低电平触发中断,中断源都是电平触发方式。当满足外部中断请求条件时,则

37、平触发方式。当满足外部中断请求条件时,则CPU响应中响应中断,转入断,转入0003H单元开始执行中断服务程序。单元开始执行中断服务程序。5.5.1 采用采用“OC门门”经经“线或线或”后实现后实现在中断服务程序中,由软件设定的顺序查询外中断哪一在中断服务程序中,由软件设定的顺序查询外中断哪一位是高电平,然后进入该中断处理程序。查询的顺序就是外部位是高电平,然后进入该中断处理程序。查询的顺序就是外部扩展中断源的中断优先级顺序。流程图示于图扩展中断源的中断优先级顺序。流程图示于图56。INT0的中断服务程序如下:的中断服务程序如下:PINTO:PUSH PSW ;保护现场;保护现场 PUSH AC

38、C JB P1.0, LOOP1 ;转向中断服务程序;转向中断服务程序1 JB P1.l,LOOP2 ;转向中断服务程序;转向中断服务程序2 JB P1.2,LOOP3 ;转向中断服务程序;转向中断服务程序3 JB P1.3,LOOP4 ;转向中断服务程序;转向中断服务程序4INTEND:POP ACC ;恢复现场;恢复现场 POP PSW RETILOOP1:;中断服务程序;中断服务程序1 AJMP INTENDLOOP2:;中断服务程序;中断服务程序2 AJMP INTENDLOOP3:;中断服务程序;中断服务程序3 AJMP INTENDLOOP4:;中断服务程序;中断服务程序4 AJM

39、P INTEND 利用利用T0或或T1的外部事件输入引脚的外部事件输入引脚T0、T1作为边沿触发作为边沿触发的外部中断源。这时应设置定时器的外部中断源。这时应设置定时器/计数器为计数器方式,而计计数器为计数器方式,而计数常数为满刻度值。外部输入的脉冲在负跳变时有效,计数器数常数为满刻度值。外部输入的脉冲在负跳变时有效,计数器加加1后即溢出,向后即溢出,向CPU申请中断。申请中断。如果以如果以T0、T1的计数脉冲输入作为外部中断请求输入,的计数脉冲输入作为外部中断请求输入,T0、T1的中断矢量用做第的中断矢量用做第3、笫、笫4个扩展的外部中断矢量,个扩展的外部中断矢量,T0、T1的中断服务程序入

40、口地址作为第的中断服务程序入口地址作为第3、第、第4个扩展的外部中断服个扩展的外部中断服务入口地址。务入口地址。当当T2用做波特率发生器时,若用做波特率发生器时,若EXEN2置置1,则,则T2EX端的端的信号产生负跳变时,信号产生负跳变时,EXF2将置将置1,但不会发生重装载或捕获操,但不会发生重装载或捕获操作。作。T2EX可以作为一个附加的外部中断源。可以作为一个附加的外部中断源。 5.5.2 通过片内定时器通过片内定时器/计数器来实现计数器来实现 例例 把外部中断请求信号把外部中断请求信号2连到连到T1引脚上,引脚上,T1设为方式设为方式2,即,即8位自动重装载方式,时间常数设为满刻度值位

41、自动重装载方式,时间常数设为满刻度值FFH。外部中断的服务程序入口地址存放在外部中断的服务程序入口地址存放在T1的中断矢量区中。的中断矢量区中。初始化程序段如下:初始化程序段如下:ORG0000HAJMPMAINORG001BH;T1中断矢量用作外部中断中断矢量用作外部中断2;的中断矢量;的中断矢量LJMP INT2ORG0030HMAIN:MOVTMOD,#60H ;设;设T1计数器方式计数器方式2MOVTL1,#0FFH;置;置T1计数常数计数常数MOVTH1,#0FFHSETB EA;开中断;开中断SETB ET1;允许计数器;允许计数器1中断中断SETB TR1;启动计数;启动计数-I

42、NT2: -;外部中断;外部中断2服务程序服务程序80C51的中断系统中,允许用户单步运行程序。一般是设的中断系统中,允许用户单步运行程序。一般是设置一个单步键置一个单步键(STEP) ,用以产生脉冲,按一次,用以产生脉冲,按一次STEP键就执行一键就执行一条指令,通过检查结果来检查每条指令执行的正确与否。条指令,通过检查结果来检查每条指令执行的正确与否。80C51中断结构有一个重要特性,即执行中断返回指令中断结构有一个重要特性,即执行中断返回指令RETI后,必须至少执行一条其它指令后,才能响应新的中断。后,必须至少执行一条其它指令后,才能响应新的中断。典型方法是使用外部中断,并将其设为电平触

43、发方式。典型方法是使用外部中断,并将其设为电平触发方式。硬件上,把按键产生的脉冲连到硬件上,把按键产生的脉冲连到 INT0,作为外部中断,作为外部中断0的的中断请求信号,并把电路设计为不按键时为低电平,按一次键产中断请求信号,并把电路设计为不按键时为低电平,按一次键产生一个正脉冲。生一个正脉冲。5.6 80C51的单步操作的单步操作外部中断外部中断0的中断服务程序,在中断服务程序的末尾为的中断服务程序,在中断服务程序的末尾为 JNB P3.2,$;INT0 =0 ,则等待,则等待JB P3.2,$;INT0=1 ,则等待,则等待RETI;中断返回;中断返回在没有按键时,在没有按键时,INT0=

44、0 ,中断请求有效,响应中断后,中断请求有效,响应中断后执行中断服务程序,在执行到执行中断服务程序,在执行到JNB P3.2,$指令时等待。当按指令时等待。当按下单步键后产生一个正脉冲,执行中断返回,再执行一条指令下单步键后产生一个正脉冲,执行中断返回,再执行一条指令后,后, 由于已为低电平,所以单片微机再次响应中断,并进入中由于已为低电平,所以单片微机再次响应中断,并进入中断服务程序等待。断服务程序等待。 80C51共有共有5个中断源,由个中断源,由4个特殊功能寄存器个特殊功能寄存器TCON、SCON、IE和和IP进行管理和控制。进行管理和控制。 在在80C51中,需要用软件对以下中,需要用

45、软件对以下5个内容进行设置:个内容进行设置: 中断服务程序入口地址的设定。中断服务程序入口地址的设定。 某一中断源中断请求的允许与禁止。某一中断源中断请求的允许与禁止。 对于外部中断请求,还需进行触发方式的设定。对于外部中断请求,还需进行触发方式的设定。 各中断源优先级别的设定。各中断源优先级别的设定。 CPU开中断与关中断。开中断与关中断。 5.7 中断服务程序的设计中断服务程序的设计 中断程序一般包含中断控制程序和中断服务程序两部分。中断程序一般包含中断控制程序和中断服务程序两部分。 中断控制程序即中断初始化程序,一般包含在主程序中。中断控制程序即中断初始化程序,一般包含在主程序中。例例

46、试编写设置外部中断试编写设置外部中断INT0和串行接口中断为高优先级,和串行接口中断为高优先级,外部中断外部中断INT1为低优先级。屏蔽为低优先级。屏蔽T0 和和T1中断请求的初始化程中断请求的初始化程序段。序段。将中断请求优先级寄存器将中断请求优先级寄存器IP的第的第0、4位置位置“l” ,其余位,其余位置置“0” 。将中断请求允许寄存器的第将中断请求允许寄存器的第0、2、4、7位置位置“l”,其余,其余位置位置“0” 。编程如下:编程如下:ORG 0000HSJMP MAINORG 0003HLJMP INT0INT;设外部中断;设外部中断INT0中断矢量中断矢量 ORG 0013HLJMP INT1INT;设外部中断;设外部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论