收藏 分销(赏)

2022年单片机中断系统.ppt

上传人:二*** 文档编号:5455533 上传时间:2024-11-05 格式:PPT 页数:56 大小:985.54KB
下载 相关 举报
2022年单片机中断系统.ppt_第1页
第1页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第第5章章 单片机中断系统单片机中断系统目目 录录5.1 中断概述中断概述 5.2 中断系统结构及控制中断系统结构及控制5.3 中断响应及处理过程中断响应及处理过程5.4 中断应用举例中断应用举例 本章讨论本章讨论MCS-51单片机的中断系统。内容主单片机的中断系统。内容主要有要有MCS-51单片机中断系统结构和控制方式及中单片机中断系统结构和控制方式及中断的处理过程。断的处理过程。通过本章的学习,应掌握中断响应的条件和通过本章的学习,应掌握中断响应的条件和中断优先级的应用,掌握外部中断源的扩展方法。中断优先级的应用,掌握外部中断源的扩展方法。5.1 中断概述中断概述5.1.1 微机的输入微机

2、的输入/输出方式输出方式单片机系统中,单片机系统中,CPU和外部设备之间不和外部设备之间不断进行信息的传输。通常断进行信息的传输。通常CPU和外设之间和外设之间的信息传送方式一般有以下几种方式:的信息传送方式一般有以下几种方式:程序控制方式程序控制方式中断方式中断方式直接存储器存取(直接存储器存取(DMA)方式)方式5.1.1 微机的输入微机的输入/输出方式输出方式2、中断控制方式中断控制方式 外部设备与外部设备与CPU之间以中断信号作为数据交换之间以中断信号作为数据交换的控制信号的控制信号。当外部设备需要与。当外部设备需要与CPU进行数据交进行数据交换时,由接口部件向换时,由接口部件向CPU

3、发出一个请求信号,发出一个请求信号,CPU响应这一中断请求后,便可在中断服务程序响应这一中断请求后,便可在中断服务程序中完成一个字节或一个字的信息交换。中完成一个字节或一个字的信息交换。中断控制方式一般用低速外部设备与中断控制方式一般用低速外部设备与CPU之间之间的信息交换。的信息交换。中断控制方式每操作一次,中断控制方式每操作一次,CPU要打断原来执要打断原来执行的程去执行一段中断服务程序,对速度较高的行的程去执行一段中断服务程序,对速度较高的外部设备将会产生信息丢失,因此不能采用。外部设备将会产生信息丢失,因此不能采用。3、DMA控制方式控制方式(直接存储器存取直接存储器存取)DMA控制方

4、式主要用于存储器和外设之间直接传控制方式主要用于存储器和外设之间直接传送。送。一般是数据块为单位传送数据的方式。当某一外部一般是数据块为单位传送数据的方式。当某一外部设备需要输入设备需要输入/输出一批数据时,向输出一批数据时,向DMA控制器发出请控制器发出请求,求,DMA控制器接收到这一请求后,向控制器接收到这一请求后,向CPU发出总线发出总线请求信号。请求信号。CPU响应响应DMA的请求,把总线使用权赋给的请求,把总线使用权赋给DMA控控制器,制器,外设利用外设利用DMA通道直接将数据写入存储器或将通道直接将数据写入存储器或将数据从存储器中读出,传送过程不需要数据从存储器中读出,传送过程不需

5、要CPU参与参与。当这批数据传送后,当这批数据传送后,DMA控制器再向控制器再向CPU发出发出“结结束中断请求束中断请求”,CPU响应这一中断请求响应这一中断请求,即可收回总线即可收回总线使用权。使用权。采用采用DMA控制方式,控制方式,CPU只需在数据传送结束时响只需在数据传送结束时响应一次中断,减轻了应一次中断,减轻了CPU的负担,系统的速度会大大增的负担,系统的速度会大大增加加。1、中断、中断当当CPU正在处理某段程序的时候,外部或者内部发生的某一正在处理某段程序的时候,外部或者内部发生的某一事件请求事件请求CPU迅速去处理,于是迅速去处理,于是CPU暂时中断当前的工作,去处暂时中断当前

6、的工作,去处理所发生的事件。处理完该事件后,再返回到原来被中断的地方理所发生的事件。处理完该事件后,再返回到原来被中断的地方继续原来的工作,继续原来的工作,此过程称为中断此过程称为中断。2、中断源、中断源 引起引起CPU中断的内部或外部事件就是中断源。中断的内部或外部事件就是中断源。3、中断请求、中断请求 中断源向中断源向CPU发的处理请求即中断请求或中断申请。发的处理请求即中断请求或中断申请。4、中断响应、中断响应 CPU CPU暂时中止正在处理的事情,转去处理突发事件的过程,称暂时中止正在处理的事情,转去处理突发事件的过程,称为为中断响应中断响应。5.1.2 中断的概念中断的概念 5、其他

7、概念、其他概念实现中断功能的部件称为实现中断功能的部件称为中断系统中断系统,又称中断机构。,又称中断机构。CPUCPU响应中断后响应中断后,处理中断事件的程序称处理中断事件的程序称中断服务程序中断服务程序。在在CPUCPU暂时中止执行的程序,转去暂时中止执行的程序,转去执行中断服务程序执行中断服务程序时时PC值即为断点地址值即为断点地址。CPU CPU执行完中断服务程序后回到断点的过程称为执行完中断服务程序后回到断点的过程称为中断中断返回。返回。6、中断的功能、中断的功能 中断是计算机的一项重要技术,计算机引入中断后,中断是计算机的一项重要技术,计算机引入中断后,大大提高了它的工作效率和处理问

8、题的灵活性,主要功能大大提高了它的工作效率和处理问题的灵活性,主要功能有以下几个方面。有以下几个方面。使使CPU与外设同步工作与外设同步工作实现实时处理实现实时处理故障及时处理故障及时处理5.2 中断系统的结构及控制中断系统的结构及控制主要内容主要内容5.2.1 MCS-51的中断结构的中断结构5.2.2 MCS-51的中断源的中断源5.2.1 MCS-51单片机的中断结构单片机的中断结构 MCS-51单片机的中断结构如图单片机的中断结构如图5-2所示,此所示,此图以图以89C52单片机为对象。单片机为对象。89C52单片机的中断系统提供单片机的中断系统提供6个中断源,个中断源,两个中断优先级

9、两个中断优先级。主要由与中断有关的。主要由与中断有关的5个特个特殊功能寄存器和硬件查询电路等组成。殊功能寄存器和硬件查询电路等组成。特殊功能寄存器主要用于控制中断的开放和特殊功能寄存器主要用于控制中断的开放和关闭、保存中断信息、设置中断的优先级别。关闭、保存中断信息、设置中断的优先级别。硬件查询电路主要用于判定硬件查询电路主要用于判定6个中断源的自个中断源的自然优先级别然优先级别。中断系统的结构如图。中断系统的结构如图5-2所示所示:图图5-2 89C52单片机的中断系统结构单片机的中断系统结构5.2.2 MCS-51的中断源的中断源 MCS-51中断系统主要是对中断系统主要是对6个中断源个中

10、断源进行管理,依次为:进行管理,依次为:外部中断外部中断0(););外部中断外部中断1(););定时器定时器/计数器计数器0;定时器定时器/计数器计数器1;定时器定时器/计数器计数器2;串行口中断;串行口中断;CPU主要是通过以下几个特殊寄存器主要是通过以下几个特殊寄存器对中断源进行管理。对中断源进行管理。定时器控制寄存器定时器控制寄存器TCONTCON为定时器为定时器/计数器计数器T0和和T1的控制器,同时也锁的控制器,同时也锁存存T0和和T1的溢出中断标志及外部中断的溢出中断标志及外部中断0和和1的中断标的中断标志等。志等。与中断有关的位如下所示。与中断有关的位如下所示。各控制位的含义各控

11、制位的含义:1、TF1:定时器:定时器/计数器计数器T1溢出中断请求标志位。溢出中断请求标志位。Timer Full 当启动当启动T1计数后,计数后,T1从初值开始加从初值开始加1计数,计数器最高位计数,计数器最高位产生溢出时,由硬件使产生溢出时,由硬件使TF1置置1,并向,并向CPU发出中断请求。当发出中断请求。当CPU响应中断时,硬件将自动对响应中断时,硬件将自动对TF1清清0。2、TF0:定时器:定时器/计数器计数器T0溢出中断请求标志位。含义与溢出中断请求标志位。含义与TF1类同。类同。TF1TF0IE1IT1IE0IT0 TCON(88H)8FH 8EH 8DH 8CH 8BH 8A

12、H 89H 88H各控制位的含义3、IE1:外部中断:外部中断1(P3.3)的中断请求标志。的中断请求标志。Interrupt Enable 当检测到外部中断引脚当检测到外部中断引脚1 上存在有效的中断请求信号时上存在有效的中断请求信号时,由硬由硬件使件使IE1置置1。当。当CPU响应中断请求时响应中断请求时,由硬件使由硬件使IE1清清0。4、IE0:外部中断:外部中断0(P3.2)的中断请求标志的中断请求标志,其含义与其含义与IE1类同。类同。5、IT1:外部中断:外部中断1的中断触发方式控制位。的中断触发方式控制位。Interrupt trigger IT1=0时,外部中断时,外部中断1程

13、控为电平触发方式。程控为电平触发方式。CPU在每一个机器周期在每一个机器周期S5P2期间采样外部中断请求引脚的输期间采样外部中断请求引脚的输入电平。若外部中断入电平。若外部中断1请求为低电平,则使请求为低电平,则使IE1置置1;若为高电;若为高电平,则使平,则使IE1清清0。IT1=1时,外部中断时,外部中断1程控为边沿触发方式。程控为边沿触发方式。CPU在每一个机器周期在每一个机器周期S5P2期间采样外部中断请求引脚的输期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断周期采样到外部中断1请求

14、引脚为高电平,接着的下一个机器请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使周期采样到为低电平,则使IE1置置1。直到。直到CPU响应该中断时,响应该中断时,才由硬件使才由硬件使IE1清清0。6、IT0:外部中断:外部中断0的中断触发方式控制位。其含义与的中断触发方式控制位。其含义与IT1类同。类同。串行口控制寄存器SCONSCON为串行口控制寄存器,其低为串行口控制寄存器,其低2位锁存串行口的接收中断和发位锁存串行口的接收中断和发送中断标志送中断标志RI和和TI。SCON中中TI和和RI的格式如所示。的格式如所示。其控制位的含义其控制位的含义1、TI:串行口发送中断请求标志。:串

15、行口发送中断请求标志。Transmit Interrupt CPU将一个数据写入发送缓冲器将一个数据写入发送缓冲器SBUF时,就启动发送。每发时,就启动发送。每发送完一帧串行数据后,硬件置位送完一帧串行数据后,硬件置位TI。但。但CPU响应中断时,并不清响应中断时,并不清除除TI,必须在中断服务程序中由软件对,必须在中断服务程序中由软件对TI清清0。2、RI:串行口接收中断请求标志。:串行口接收中断请求标志。Receive Interrupt 在串行口允许接收时,每接收完一个串行帧,硬件置位在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,同样,CPU响应中断时不会清除响应中断时不会

16、清除RI,必须在中断服务程序中由软,必须在中断服务程序中由软件对件对RI清清0。TIRI SCON(98H)9FH 9EH 9DH 9CH 9BH 9AH 99H 98H二、中断允许寄存器IE1、中断允许寄存器、中断允许寄存器IE的格式。的格式。2、中断允许寄存器、中断允许寄存器IE中各位的含义。中各位的含义。EA中断允许总控制位。中断允许总控制位。EA=0,屏蔽屏蔽所有的中断请求;所有的中断请求;EA=1,CPU开放开放中断。中断。对各中断源的中断请求是否允许对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位还要取决于各中断源的中断允许控制位的状态。这就是所谓的两级控制。的状态

17、。这就是所谓的两级控制。ES串行口中断允许位。串行口中断允许位。Enable Serial ES=0,禁止串行口禁止串行口中断;中断;ES=1,允许串行口允许串行口中断。中断。ET1定时器定时器/计数器计数器T1的溢出中断允许位。的溢出中断允许位。Enable Timer ET1=0,禁止禁止T1中断;中断;ET1=1,允许允许T1中断。中断。EX1外部中断外部中断1的溢出中断允许位。的溢出中断允许位。Enable External EX1=0,禁止外部中断禁止外部中断1中断;中断;EX1=1,允许外部中断允许外部中断1中断。中断。ET0定时器定时器/计数器计数器T0的溢出中断允许位。的溢出中

18、断允许位。ET0=0,禁止禁止T0中断;中断;ET0=1,允许允许T0中断。中断。EX0外部中断外部中断0的溢出中断允许位。的溢出中断允许位。EX0=0,禁止外部中断禁止外部中断0中断;中断;EX0=1,允许外部中断允许外部中断0中断。中断。EAET2ESET1EX1ET0EX0AFH AEH ADH ACH ABH AAH A9H A8H例例5-1 假设允许假设允许INT0、INT1、T0、T1中断,试设置中断,试设置IE的值。的值。解:(解:(1)用用C语言字节操作指令语言字节操作指令:IE=0 x8f;(2)用用C语言位操作指令语言位操作指令EX0=1;/允许外部中断允许外部中断0中断中

19、断ET0=1;/允许定时允许定时/计数器计数器0中断中断EX1=1;/允许外部中断允许外部中断1中断中断ET1=1;/允许定时允许定时/计数器计数器1中断中断EA=1/开总中断控制开总中断控制 汇编语言汇编语言(1)用字节操作指令用字节操作指令:MOV IE,#8FH(2)用位操作指令用位操作指令:SETB EX0;允许外部中断;允许外部中断0中断中断SETB ET0;允许定时;允许定时/计数器计数器0中断中断SETB EX1;允许外部中断;允许外部中断1中断中断SETB ET1;允许定时;允许定时/计数器计数器1中断中断SETB EA;开总中断控制位;开总中断控制位1、中断优先级寄存器IP中

20、断优先级寄存器中断优先级寄存器IP各控制位的含义各控制位的含义1PS串行口中断优先级控制位串行口中断优先级控制位1PT1定时器定时器/计数器计数器T1中断优先级控制位中断优先级控制位1PX1外部中断外部中断1中断优先级控制位中断优先级控制位1PT0定时器定时器/计数器计数器T0中断优先级控制位中断优先级控制位1PX0外部中断外部中断0中断优先级控制位中断优先级控制位1若某控制位为若某控制位为1,则相应的中断源规定为高级中断;反之,则相应的中断源规定为高级中断;反之,为为0,则相应的中断源规定为低级中断。,则相应的中断源规定为低级中断。PT2PSPT1PX1PT0PX0 IP(B8H)BDH B

21、CH BBH BAH B9H B8H1、89C51的中断优先级89C51有两个中断优先级。有两个中断优先级。每个中断请求源均可编程为高优先级中断或低优先级中断。每个中断请求源均可编程为高优先级中断或低优先级中断。89C52的中断系统有两个不可编程的的中断系统有两个不可编程的“优先级有效优先级有效”触发器。触发器。一个一个是是“高优先级有效高优先级有效”触发器,用以指明已进入高级中断服务,并触发器,用以指明已进入高级中断服务,并阻止其它一切中断请求;一个是阻止其它一切中断请求;一个是“低优先级有效低优先级有效”触发器,用以触发器,用以指明已进行低优先级中断服务,并阻止除高优先级以外的一切中指明已

22、进行低优先级中断服务,并阻止除高优先级以外的一切中断请求。断请求。CPU处理中断有两种情况:处理中断有两种情况:(1)当)当CPU同时接到多个中断源的中断请求同时接到多个中断源的中断请求。根据优先级的硬件排。根据优先级的硬件排队来决定响应对象。队来决定响应对象。高优先级的先响应,低优先级的后响应高优先级的先响应,低优先级的后响应。一般要进行两次查询。一般要进行两次查询。首先:首先:查看查看IP。如果对应位为。如果对应位为1,则处于高优先级;对应位为,则处于高优先级;对应位为0,则,则处于低优先级。处于低优先级。其次:其次:如果几个同一优先级的中断源同时向如果几个同一优先级的中断源同时向CPU申

23、请中断。申请中断。CPU CPU 通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断请求。请求。5.2.2 MCS-51单片机的中断源单片机的中断源自然优先级排列如下表:自然优先级排列如下表:表表 5-1 中断优先级的排列顺序中断优先级的排列顺序 中断源中断源优先级顺序优先级顺序外部中断外部中断0定时器定时器/计数器计数器0外部中断外部中断1定时器定时器/计数器计数器1串行口中断串行口中断定时器定时器/计数器计数器2 最最 高高 最低最低(2)当)当CPU正在处理一个中断请求时,又出现了另一正在处理一个中断请求时,又出现了另一个优先

24、级比它高的中断个优先级比它高的中断。进行中断嵌套进行中断嵌套。CPU就暂时中止执行对原来优先级较就暂时中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去处理更高的低的中断源的服务程序,保护当前断点,转去处理更高的中断请求,服务完毕,回到原来被中止的中断程序继续执中断请求,服务完毕,回到原来被中止的中断程序继续执行。两级中断嵌套的处理过程如图行。两级中断嵌套的处理过程如图5-7所示。所示。例例5-2 设定时器和串行口中断为高优先级,两个外部中设定时器和串行口中断为高优先级,两个外部中断为低优先级,试设置断为低优先级,试设置IP的值。的值。解:解:C语言程序语言程序IP=0 x3a;汇

25、编语言程序汇编语言程序:(1)使用字节操作指令:)使用字节操作指令:MOV IP,#3AH(2)使用位操作指令:)使用位操作指令:CLRPX0;设置外部中断;设置外部中断0为低级中断为低级中断CLRPX1;置外部中断;置外部中断1为低级中断为低级中断SETBPT0;置定时器;置定时器/计数器计数器0为高级中断为高级中断SETBPT1;置定时器;置定时器/计数器计数器0为高级中断为高级中断SETBPS;置串行口中断为高优先级;置串行口中断为高优先级SETBPT2;置定时器;置定时器/计数器计数器2为高级中断为高级中断 由于复位后由于复位后IP=00H,外部中断在此可以不设置。,外部中断在此可以不

26、设置。5.3 中断响应及处理过程中断响应及处理过程主要内容主要内容5.3.1 中断响应的条件和过程中断响应的条件和过程5.3.2 中断的处理和返回中断的处理和返回5.3.1 中断响应中断响应 在在MCS-51内部,内部,系统要先对中断源进行系统要先对中断源进行采样,然后才进行响应。采样,然后才进行响应。在每个机器周期在每个机器周期的的S5P2中顺序采样中断源。在下一个周期中顺序采样中断源。在下一个周期的的S6按优先级顺序查询中断标志按优先级顺序查询中断标志;如果中断如果中断标志为标志为1,在接下来的机器周期,在接下来的机器周期S1期间按优期间按优先级进行中断处理。先级进行中断处理。从中断请求发

27、生直到被响应去执行中断从中断请求发生直到被响应去执行中断服务程序服务程序,整个过程均在整个过程均在CPU的控制下有规的控制下有规律的进行。整个过程一般可以分为律的进行。整个过程一般可以分为3个阶段:个阶段:中断响应中断响应、中断处理中断处理、中断返回中断返回。一、中断响应的过程一、中断响应的过程 从中断请求发生直到被响应,准备去执行中断服务程从中断请求发生直到被响应,准备去执行中断服务程序,此过程即中断响应过程。中断响应过程一般包括如下序,此过程即中断响应过程。中断响应过程一般包括如下几个阶段几个阶段:1、中断采样、中断采样 中断采样主要是针对外部中断请求信号进行的中断采样主要是针对外部中断请

28、求信号进行的。由于。由于内部中断请求都发生在芯片内部,可以直接查询特殊寄存内部中断请求都发生在芯片内部,可以直接查询特殊寄存器。器。在每个机器周期的在每个机器周期的S5P2期间,各中断标志采样相应的期间,各中断标志采样相应的中断源,并置位相应标志。中断源,并置位相应标志。2、中断查询、中断查询 查查询询到到某某中中断断标标志志为为1,则则按按优优先先级级的的高高低低进进行行处处理理,即即响应中断响应中断。89C52的的中中断断请请求求都都汇汇集集在在TCON、T2CON和和SCON三三个个特特殊殊功功能能寄寄存存器器中中。CPU则则在在下下一一机机器器周周期期的的S6期期间间按优先级的顺序查询

29、各中断标志。按优先级的顺序查询各中断标志。5.3.1 中断响应的过程中断响应的过程 先先查查询询高高级级中中断断,再再查查询询低低级级中中断断。同同级级中中断断按按内内部部中中断断优优先先级级序序列列查查询询。如如果果查查询询到到有有中中断断标标志志位位为为“1”,则则表表明明有有中中断断请请求求发发生生,接接着着从从相相邻邻的的下下一一个个机机器器周期的周期的S1状态开始进行中断响应。状态开始进行中断响应。由由于于中中断断请请求求是是随随机机发发生生的的,CPU无无法法预预先先得得知知,因因此此中中断断查查询询要要在在指指令令执执行行的每个机器周期中不停地重复执行。的每个机器周期中不停地重复

30、执行。5.3.1 中断响应的过程中断响应的过程3、中断响应中断响应 响应中断后,由硬件自动生成长调用指令响应中断后,由硬件自动生成长调用指令“LCALL”,其格式为其格式为LCALL addr16,而而addr16就是各中断源的就是各中断源的中断矢量地址中断矢量地址。响应中段过程一般有两部分构成响应中段过程一般有两部分构成:首先将程序计数器首先将程序计数器PC的内容(即断点地的内容(即断点地址)压入堆栈。址)压入堆栈。先低位地址,后高位地址先低位地址,后高位地址,同时堆栈指针同时堆栈指针SP加加2。其次将对应中断源的中断矢量地址装入其次将对应中断源的中断矢量地址装入程序计数器程序计数器PC,去

31、执行中断服务程序。,去执行中断服务程序。5.3.1 中断响应的过程中断响应的过程 注注意意:中中断断服服务务程程序序的的放放置置。各各中中断断矢矢量量区区仅仅8个个字字节节。通通常常是是在在中中断断矢矢量量区区中中安安排排一一条条无无条条件件转转移移指指令令,使使程程序序执执行行转转向向在其它地址中存放的中断服务程序。在其它地址中存放的中断服务程序。中断响应是有条件的,包含以下方面:中断响应是有条件的,包含以下方面:(1)中断源有中断请求)中断源有中断请求(2)中断总允许位)中断总允许位EA=1。(3)发出中断请求的中断源的中断允许)发出中断请求的中断源的中断允许控制位为控制位为1。5.3.1

32、 中断响应的过程中断响应的过程在满足以上条件的基础上,若有下列任何在满足以上条件的基础上,若有下列任何一种情况存在,硬件生成的长调用指令一种情况存在,硬件生成的长调用指令“LCALL”将被封锁。将被封锁。(1)CPU正在执行一个同级或高优先级的正在执行一个同级或高优先级的中断服务程序。中断服务程序。(2)正在执行的指令尚未执行完。)正在执行的指令尚未执行完。(3)正在执行中断返回指令)正在执行中断返回指令RETI或者对或者对寄存器寄存器IE、IP进行读进行读/写的指令。写的指令。CPU在执行完上述指令之后,要再执行一在执行完上述指令之后,要再执行一条指令,才能响应中断请求。条指令,才能响应中断

33、请求。执行这条长调用指令需要执行这条长调用指令需要2个机器周期。这样,个机器周期。这样,中断响应时间为中断响应时间为3个机器周期。个机器周期。如果如果CPU正在执行的是正在执行的是RETI指令或访问指令或访问IP、IE指令。指令。中断系统规定把这几条指令执行完,必须中断系统规定把这几条指令执行完,必须再继续执行一条指令后才能响应中断。而这条指令再继续执行一条指令后才能响应中断。而这条指令恰好是恰好是4个机器周期长的指令个机器周期长的指令(比如乘法指令比如乘法指令MUL或除法指令或除法指令DIV)。加上执行长调用指令。加上执行长调用指令LCALL所所需需2个机器周期,则需要个机器周期,则需要8个

34、机器周期。个机器周期。如果中断请求被前面所列三个条件之一所阻止,如果中断请求被前面所列三个条件之一所阻止,不能产生硬件长调用不能产生硬件长调用LCALL指令,那么所需的响指令,那么所需的响应时间就更长。应时间就更长。因此,对于实时性要求高的系统,应该考虑中因此,对于实时性要求高的系统,应该考虑中断响应的时间。断响应的时间。5.3.2 中断处理和返回中断处理和返回一、中断处理一、中断处理 当当CPU响应中断时,将进行中断处理。首响应中断时,将进行中断处理。首先:由硬件直接产生一个固定的地址先:由硬件直接产生一个固定的地址,即,即矢矢量地址。量地址。由矢量地址指出每个中断源设备的由矢量地址指出每个

35、中断源设备的中断服务程序的入口。此中断服务程序的入口。此种方法通常称为矢种方法通常称为矢量中断。量中断。其次:执行中断服务程序其次:执行中断服务程序。当。当CPU识别识别出某个中断源时,由硬件直接给出一个与该出某个中断源时,由硬件直接给出一个与该中断源相对应的矢量地址,从而转入各自中中断源相对应的矢量地址,从而转入各自中断服务程序。断服务程序。5.3.2 中断处理和返回中断处理和返回中断矢量地址见下表。中断矢量地址见下表。中断源中断源 中断矢量地址中断矢量地址 外部中断外部中断0 0003H 定时器定时器/计数器计数器0 000BH外部中断外部中断1 0013H 定时器定时器/计数器计数器1

36、001BH 串行口串行口0023H定时器定时器/计数器计数器2 002BH5.3.2 中断处理和返回中断处理和返回 中断服务程序即中断服务程序即CPU响应中断后,处理中响应中断后,处理中断源请求事件的程序。断源请求事件的程序。从中断入口地址开始从中断入口地址开始执行,直到返回指令(执行,直到返回指令(RETI)为止。)为止。此过此过程一般包括三部分内容程一般包括三部分内容,一是,一是保护现场保护现场,二,二是是处理中断源的请求处理中断源的请求,三是,三是恢复现场恢复现场。所谓现场是指中断发生时单片微机中存所谓现场是指中断发生时单片微机中存储单元、寄存器、特殊功能寄存器中的数据储单元、寄存器、特

37、殊功能寄存器中的数据或标志位等。例如或标志位等。例如A、B、Rn等。等。5.3.2 中断的处理和返回中断的处理和返回保护的方法可以有以下几种:保护的方法可以有以下几种:通过堆栈操作指令通过堆栈操作指令PUSH direct;通过工作寄存器区的切换;通过工作寄存器区的切换;通过单片微机内部存储器单元暂存。通过单片微机内部存储器单元暂存。现场保护一般位于中断服务程序的前面现场保护一般位于中断服务程序的前面。在在结束中断服务程序结束中断服务程序返回断点处返回断点处之前要恢之前要恢复现场。复现场。与保护现场的方法对应,多使用与保护现场的方法对应,多使用POP 指令。指令。注意:保护和恢复遵循注意:保护

38、和恢复遵循“从哪里来,回哪从哪里来,回哪里去里去”的原则。的原则。5.3.2 中断处理和返回中断处理和返回二、中断返回二、中断返回中断返回是指中断服务完成后,中断返回是指中断服务完成后,CPU返回返回到原程序的到原程序的断点断点,继续执行原来的程序继续执行原来的程序。中断返回通过执行中断返回指令中断返回通过执行中断返回指令RETI来实来实现,现,RETI指令的功能包括两个方面。指令的功能包括两个方面。首先将首先将相应的相应的优先级状态触发器置优先级状态触发器置0,以开放同级别,以开放同级别中断源的中断请求;其次,从堆栈区把中断源的中断请求;其次,从堆栈区把断点断点地址取出地址取出,送回到程序计

39、数器,送回到程序计数器PC中。因此,中。因此,不能用不能用RET指令代替指令代替RETI指令。指令。5.4 中断应用举例中断应用举例主要内容主要内容1 中断程序的安排中断程序的安排2 中断的初始化过程中断的初始化过程3 中断服务程序的设计中断服务程序的设计5.4 中断应用举例中断应用举例一、中断程序安排一、中断程序安排1、主程序主程序 MCS-51单片机复位后,(单片机复位后,(PC)=0000H。主。主程序只分配程序只分配0000H-0002H共共3个单元。程序空间个单元。程序空间远远不够。远远不够。解决方法解决方法:在在0000H单元设置一条长单元设置一条长跳转指令跳转指令LJMP,跳向主

40、程序的入口处,跳向主程序的入口处。而真正。而真正的主程序可以安排在程序存储器其他的位置。的主程序可以安排在程序存储器其他的位置。2、各中断服务程序各中断服务程序 每个中断服务程序在固定的位置由系统分配每个中断服务程序在固定的位置由系统分配相邻的相邻的8个单元个单元用于存储程序。(见中断矢量表)用于存储程序。(见中断矢量表)如果程序空间不够,可参照主程序的方法进行设置。如果程序空间不够,可参照主程序的方法进行设置。常见程序格式如下:常见程序格式如下:ORG0000HLJMPMAIN ORG0003HLJMPINT_0ORG 0030HMAIN:;主程序区,进行初始化主程序区,进行初始化SJMP$

41、;等待中断;等待中断INT_0;外部中断外部中断0服务子程序服务子程序RETI二、中断初始化步骤二、中断初始化步骤 89C52单片机中,共有单片机中,共有6个中断源,个中断源,中断的初始化主中断的初始化主要是对由要是对由5个特殊功能寄存器个特殊功能寄存器TCON、T2CON、SCON、IE和和IP进行设置。进行设置。初始化包含以下初始化包含以下5个方面:个方面:中断服务程序入口地址的设定。中断服务程序入口地址的设定。某一中断源中断请求的允许与禁止。设置某一中断源中断请求的允许与禁止。设置IE。对于外部中断请求,还需进行触发方式的设定。设对于外部中断请求,还需进行触发方式的设定。设置置TCON。

42、各中断源优先级别的设定。设置各中断源优先级别的设定。设置IP。CPU开中断与关中断。设置开中断与关中断。设置IE中中EA位。位。注意:注意:89C52的中断初始化部分应放在主程序中。的中断初始化部分应放在主程序中。5.4 中断应用举例中断应用举例三、中断服务程序流程设计三、中断服务程序流程设计 MCS-51结束到中断请求后,在条件满足结束到中断请求后,在条件满足的情况下,响应中断并转到对应的中断服务的情况下,响应中断并转到对应的中断服务程序入口处执行程序入口处执行。中断程序主要由如下所中断程序主要由如下所示几部分组成:示几部分组成:1、保护现场、保护现场 中断响应过程后,系统将断点进行保护。中

43、断响应过程后,系统将断点进行保护。断点压入堆栈,再将中断服务程序的入口地断点压入堆栈,再将中断服务程序的入口地址送入程序计数器址送入程序计数器PC。(断点保护在保护(断点保护在保护现场程序前,自动完成)。保护现场程序的现场程序前,自动完成)。保护现场程序的位置在中断服务程序的前面。位置在中断服务程序的前面。5.4 中断应用举例中断应用举例2、关中断和开中断、关中断和开中断 89C52允允许许中中断断嵌嵌套套,为为了了不不至至于于在在保保护护现现场场或或恢恢复复现现场场时时,由由于于CPU响响应应其其它它中中断断请请求求,而而使使现现场场破破坏坏,一一般般规规定定,在在保保护护和和恢恢复复现现场

44、场时时,CPU不不响响应应外外界界的的中中断断请请求求,即即关关中中断断。因因此此,在在编编写写程程序序时时,应应在在保保护护现现场场和和恢恢复复现现场场之之前前,关关闭闭CPUCPU中中断断;在在保保护护现现场场和和恢恢复复现现场场之之后后,再再根根据据需需要要使使CPU开开中中断断。1、中断优先级寄存器IPEA=1,CPU开放中断。/允许外部中断0中断当CPU执行到RETI指令时,将当前栈顶内容弹出到PC,恢复断点。加上执行长调用指令LCALL所需2个机器周期,则需要8个机器周期。MOV A,P1;取开关数ORG0200H;中断服务程序在结束中断服务程序返回断点处前要恢复现场。三、中断服务

45、程序流程设计0控制继电器(继电器控制报警器);PX0外部中断0中断优先级控制位L1:JNBP1.2 中断系统结构及控制 通过单片微机内部存储器单元暂存。一般中断请求标志位查询占1个机器周期。5.4 中断应用举例中断应用举例3、中断请求撤除、中断请求撤除 CPU响应某中断请求后,在响应某中断请求后,在中断返回前中断返回前,应该应该撤消撤消该该中断请求。中断请求。中断请求撤除方法如中断请求撤除方法如下:下:定时器溢出中断请求的撤除:定时器溢出中断请求的撤除:允许中断允许中断的情况下,的情况下,CPU在响应中断后,硬件会自动在响应中断后,硬件会自动清除中断请求标志清除中断请求标志TF0或或TF1。定

46、时器定时器/计数器计数器2请求的撤除:请求的撤除:T2中断请中断请求标志位求标志位TF2和和EXF2不能自动复位,必须不能自动复位,必须软软件复位件复位。串行口中断的撤除:串行口中断的撤除:串行口中断请求标串行口中断请求标志位志位TI和和RI,必须,必须软件复位软件复位。5.4 中断应用举例中断应用举例 外部中断的撤除外部中断的撤除:外部中断为外部中断为边沿触发边沿触发方式时,方式时,CPU响应中断后,响应中断后,硬件会自动清硬件会自动清除除中断请求标志中断请求标志IE0或或IE1。外部中断为电平触发方式时。外部中断为电平触发方式时。响应中断响应中断后,后,硬件会自动清除中断请求标志硬件会自动

47、清除中断请求标志IE0或或IE1。但由于加到或引脚的外部中断请求信但由于加到或引脚的外部中断请求信号并未撤除,中断请求标志号并未撤除,中断请求标志IE0或或IE1会再会再次被置次被置1,所以在,所以在CPU响应中断后应立即撤响应中断后应立即撤除或引脚上的低电平。除或引脚上的低电平。一般采用加一个一般采用加一个D触触发器和几条指令的方法来解决这个问题发器和几条指令的方法来解决这个问题。5.4 中断应用举例中断应用举例4、中断源的识别、中断源的识别 串行口中断串行口中断:中断请求标志中断请求标志RI和发送中断请和发送中断请求标志位求标志位TI共用中断矢量地址(共用中断矢量地址(0023H),合),

48、合用一个中断允许位用一个中断允许位ES和中断优先级选择位和中断优先级选择位PS。定时器定时器/计数器计数器2:中断请求标志中断请求标志TF2和和EXF2,共用一个中断矢量地址(,共用一个中断矢量地址(002BH),),合用一个中断允许位合用一个中断允许位ET2和中断优先级选择位和中断优先级选择位PT2。在中断服务程序中要用查询语句区分是哪在中断服务程序中要用查询语句区分是哪种中断引起的中断请求,清除其中断请求标种中断引起的中断请求,清除其中断请求标志。志。5.4 中断应用举例中断应用举例5、恢复现场、恢复现场 在结束中断服务程序在结束中断服务程序返回断点处前返回断点处前要要恢复恢复现场现场。6

49、、中断返回、中断返回 当当CPU执行到执行到RETI指令时,将指令时,将当前栈顶当前栈顶内内容弹出到容弹出到PC,恢复断点恢复断点。恢复断点也是由硬件。恢复断点也是由硬件电路自动实现的。电路自动实现的。注意:中断服务程序的最后一条指令,必注意:中断服务程序的最后一条指令,必须为须为RETI返回指令,不能为返回指令,不能为RET指令指令。思考:中断服务程序和子程序的区别。思考:中断服务程序和子程序的区别。例例5-3 如图如图5-9所示,将所示,将P1口的作为口的作为输入输入位,作为位,作为输出输出位。要求位。要求利用利用89C52将将开关所设的数据读入开关所设的数据读入单片机内,并依次,驱动发光

50、二单片机内,并依次,驱动发光二极管,以检查极管,以检查P1.4P1.7输入的电平情况(若输入的电平情况(若输入为高电平则相应输入为高电平则相应的的LED亮亮)。)。要求采用要求采用中断边沿触发方式中断边沿触发方式,中断一次,完成一次读,中断一次,完成一次读/写操作。写操作。分析:图中,用外分析:图中,用外部中断部中断0,中断申请,中断申请从从INT0输入,并采输入,并采用去抖动电路。当用去抖动电路。当P1.0P1.3的任何一的任何一位输出为位输出为0时,相应时,相应的发光二极管就会的发光二极管就会发光。当开关发光。当开关S1来来回拨动一次时,将回拨动一次时,将产生一个下降沿信产生一个下降沿信号

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服