1、第五章 中断系统 ?5.1 5.1 微机的输入微机的输入/ /输出方式输出方式 5.2 5.2 中断的概念中断的概念 5.3 89C51/S515.3 89C51/S51中断系统结构及中断控制中断系统结构及中断控制 5.4 5.4 中断处理过程中断处理过程 5.5 5.5 外部中断扩展方法外部中断扩展方法 5.6 5.6 中断程序举例中断程序举例 5.7 5.7 思考题与习题思考题与习题 13:05 单片机原理及接口技术单片机原理及接口技术 5.1 微机的输入/输出方式 ? 5.1.1 5.1.1 无条件传送方式无条件传送方式 ? 5.1.2 5.1.2 查询传送方式查询传送方式 ? 5.1.
2、3 5.1.3 直接存储器存取(直接存储器存取(DMADMA)方式)方式 ? 5.1.4 5.1.4 中断传送方式中断传送方式 13:05 单片机原理及接口技术单片机原理及接口技术 5.1.1 无条件传送方式 ?CPU总是认为外设在任何时刻都处于总是认为外设在任何时刻都处于“准备好准备好”的状态。的状态。 ?这种传送方式不需要交换状态信息,只需在程序中这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。加入访问外设的指令,数据传送便可以实现。 ?此种方法很少使用此种方法很少使用。 13:05 单片机原理及接口技术单片机原理及接口技术 5.1.2 查询传送方式(条
3、件传送) 一、什么是查询传送方式一、什么是查询传送方式 二、查询方式程序流程图二、查询方式程序流程图 三、查询方式的过程三、查询方式的过程 四、查询方式的特点四、查询方式的特点 13:05 单片机原理及接口技术单片机原理及接口技术 一、什么是查询传送方式 ?在输入时,需要查询外设的输入数据是否准备好;在输入时,需要查询外设的输入数据是否准备好; 在输出时,需要查询外设是否把上一次在输出时,需要查询外设是否把上一次CPU输出输出的数据处理完毕。的数据处理完毕。 查询传送方式:通过查询外设的状态信息,确信查询传送方式:通过查询外设的状态信息,确信外设已处于外设已处于“准备好准备好”,计算机才发出访
4、问外设,计算机才发出访问外设的指令,实现数据的传送。的指令,实现数据的传送。 ?状态信息:一般为状态信息:一般为1位二进制码。位二进制码。 13:05 单片机原理及接口技术单片机原理及接口技术 二、查询方式程序流程图 输入状态信息 N 准备好? Y 传送数据 13:05 单片机原理及接口技术单片机原理及接口技术 三、查询方式的过程 启动外设设备 查询方式的过程:查询方式的过程: 查询查询等待等待数据传送,待到数据传送,待到延迟 下一次数据传送时则重复上述过程。下一次数据传送时则重复上述过程。 传送数据 13:05 单片机原理及接口技术单片机原理及接口技术 四、查询方式的特点 ? 优点:通用性好
5、,可以用于各类外设和优点:通用性好,可以用于各类外设和 CPUCPU间的数据传送。间的数据传送。 ? 缺点:缺点:CPUCPU在完成一次数据传送后要等待很在完成一次数据传送后要等待很长时间才能进行下一次的传送。在等待过程长时间才能进行下一次的传送。在等待过程中,中,CPUCPU不能进行其他操作,所以效率比较不能进行其他操作,所以效率比较低。低。 13:05 单片机原理及接口技术单片机原理及接口技术 5.1.3 直接存储器存取(DMA)方式 ?DMA:Direct Memory Access ?CPU让出数据总线(悬浮状态)让出数据总线(悬浮状态) ,使外设和存储,使外设和存储器之间直接传送(不
6、通过器之间直接传送(不通过CPU)数据的方式。)数据的方式。 ?适用于外设和存储器之间有大量的数据需要传送及外适用于外设和存储器之间有大量的数据需要传送及外设工作速度很快的情况。设工作速度很快的情况。 13:05 单片机原理及接口技术单片机原理及接口技术 5.1.4 中断传送方式 ?当当CPU正在处理某事件的时候,外部发生的正在处理某事件的时候,外部发生的某一事件请求某一事件请求CPU迅速去处理,于是迅速去处理,于是CPU暂暂时中止当前的工作,转去处理所发生的事件。时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件后,再返回到原来被中断服务处理完该事件后,再返回到原来被中止的地方继续
7、原来的工作,这样的过程称中止的地方继续原来的工作,这样的过程称为中断。为中断。 中断流程如中断流程如图图5-2所示。所示。 单片机原理及接口技术单片机原理及接口技术 ?13:05 图5-2 中断流程 主主程程序序中断请求 断点 继继续续执执行行主主程程序序中中断断服服务务程程序序13:05 单片机原理及接口技术单片机原理及接口技术 5.2 中断的概念 一、中断系统一、中断系统 二、中断源二、中断源 三、中断请求三、中断请求 四、中断响应过程四、中断响应过程 五、中断服务五、中断服务 六、中断返回六、中断返回 七、中断方式的特点七、中断方式的特点 单片机原理及接口技术单片机原理及接口技术 13:
8、05 一、中断系统 ?实现中断功能的部件称为中断系统,实现中断功能的部件称为中断系统,又称中断机构。又称中断机构。 13:05 单片机原理及接口技术单片机原理及接口技术 二、中断源 ?产生中断的请求源称为中断源。产生中断的请求源称为中断源。 13:05 单片机原理及接口技术单片机原理及接口技术 三、中断请求 ? 中断源向中断源向CPU提出的处理请求,称为中断提出的处理请求,称为中断请求或中断申请。请求或中断申请。 13:05 单片机原理及接口技术单片机原理及接口技术 四、中断响应过程 ?CPU暂时中止自身的事物,转去处理暂时中止自身的事物,转去处理事件的过程,称为事件的过程,称为CPU的中断响
9、应过的中断响应过程。程。 13:05 单片机原理及接口技术单片机原理及接口技术 五、中断服务 ?对事件的整个处理过程,称为中断对事件的整个处理过程,称为中断服务(或中断处理)。服务(或中断处理)。 13:05 单片机原理及接口技术单片机原理及接口技术 六、中断返回 ?中断处理完毕,在返回到原来被中止的中断处理完毕,在返回到原来被中止的地方,称为中断返回地方,称为中断返回 13:05 单片机原理及接口技术单片机原理及接口技术 七、中断方式的特点 ?1 1、中断方式消除了、中断方式消除了CPUCPU在查询方式中的等待现象,在查询方式中的等待现象,大大提高了大大提高了CPUCPU的工作效率。的工作效
10、率。 ?2 2、将从现场采集的数据通过中断方式及时传送给、将从现场采集的数据通过中断方式及时传送给CPUCPU,经过处理后可立即作出反应,实现现场控制。,经过处理后可立即作出反应,实现现场控制。采用查询方式很难做到及时采集,实时控制。采用查询方式很难做到及时采集,实时控制。 13:05 单片机原理及接口技术单片机原理及接口技术 5.3 89C51/S51中断系统结构及中断控制中断系统结构及中断控制 ?5.3.1 89C51/S51中断源 ?5.3.2 中断控制 13:05 单片机原理及接口技术单片机原理及接口技术 中断系统结构 ?89C51/S51的中断系统的结构如的中断系统的结构如 图图5-
11、3所示。所示。 ?有有5个中断请求源个中断请求源(89C52有有6个个),4个用于中断控制的寄存器个用于中断控制的寄存器IE、IP、TCON(用用6位位)和和SCON(用用2位位),用来控制中断的类型、中断的开,用来控制中断的类型、中断的开关和各种中断源的优先级别。关和各种中断源的优先级别。 ?5个中断源有两个中断优先级,每个中断源可以编程为高优先级或个中断源有两个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。低优先级中断,可以实现二级中断服务程序嵌套。 13:05 单片机原理及接口技术单片机原理及接口技术 中断技术实现的功能 ? 1、分时操作、分时操作
12、 ? 2、实时处理、实时处理 ? 3、故障处理、故障处理 13:05 单片机原理及接口技术单片机原理及接口技术 1、分时操作 ? 计算机的中断系统可以使CPU与外设同时工作。 ? CPU在启动外设后,便继续执行主程序;而外设被启动后,开始进行准备工作。当外设准备就绪时,就向CPU发出中断请求,CPU响应该中断请求并为其服务完毕后,返回原来的断点处继续运行主程序。外设在得到服务后,也继续进行自己的工作。 ? 因此,CPU可以使多个外设同时工作,并分时为各外设提供服务,从而提高了CPU的利用率和输入和输出的速度。 13:05 单片机原理及接口技术单片机原理及接口技术 2、实时处理 ? 当计算机用于
13、实时控制时,请求当计算机用于实时控制时,请求CPU提提供服务时随机发生的。有了中断系统,供服务时随机发生的。有了中断系统,CPU就可以立即响应并加以处理。就可以立即响应并加以处理。 13:05 单片机原理及接口技术单片机原理及接口技术 3、故障处理 ?计算机在运行时往往会出现一些故障,如断电、计算机在运行时往往会出现一些故障,如断电、存储器奇偶校验出错、运算溢出等。存储器奇偶校验出错、运算溢出等。 ? 有了中断系统,当出现上述情况时,有了中断系统,当出现上述情况时,CPU可及可及时转去执行故障处理程序,自行处理故障而不时转去执行故障处理程序,自行处理故障而不必停机。必停机。 13:05 单片机
14、原理及接口技术单片机原理及接口技术 5.3.1 89C51/S51中断源 ?一、一、89C51/S51中断系统的五个中断源中断系统的五个中断源 ?二、通常情况的中断源二、通常情况的中断源 13:05 单片机原理及接口技术单片机原理及接口技术 一、89C51/S51中断系统的五个中断源 1、INT0 外部中断外部中断0请求,低电平有效。通过请求,低电平有效。通过P3.2引脚输入。引脚输入。 2、INT1 外部中断外部中断1请求,低电平有效。通过请求,低电平有效。通过P3.3引脚输入。引脚输入。 3、T0 定时器定时器/计数器计数器0溢出中断请求。溢出中断请求。 4、T1 定时器定时器/计数器计数
15、器1溢出中断请求。溢出中断请求。 5、TX/RX串行口中断请求。当串行口完成一帧数据的发送或串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。接收时,便请求中断。 每个中断源都对应一个中断请求标志位,它们设置在特殊功能寄存器TCON和SCON中。当这些中断源请求中断时,相应的标志分别由TCON和SCON中的相应位来锁存。 13:05 单片机原理及接口技术单片机原理及接口技术 二、通常情况的中断源 ? 1、I/O外设外设 ? 2、硬件故障、硬件故障 ? 3、实时时钟、实时时钟 ? 4、为调试程序而设定的中断源、为调试程序而设定的中断源 13:05 单片机原理及接口技术单片机原理及接
16、口技术 5.3.2 中断控制 ?一、中断请求标志一、中断请求标志 ? 二、中断允许控制二、中断允许控制 ? 三、中断优先级控制三、中断优先级控制 13:05 单片机原理及接口技术单片机原理及接口技术 一、中断请求标志 1、定时器控制寄存器、定时器控制寄存器TCON中的中断标志位中的中断标志位 2、串行口控制寄存器、串行口控制寄存器SCON中的中断标志位中的中断标志位 13:05 单片机原理及接口技术单片机原理及接口技术 1、TCON中的中断标志位 ?TCON为定时器为定时器/计数器计数器T0和和T1的控制器,同时也锁存的控制器,同时也锁存T0和和T1的溢的溢出中断标志及外部中断出中断标志及外部
17、中断0和和1的中断标志等。的中断标志等。 与中断有关的位如与中断有关的位如图图所示。所示。 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TCON TF1 (88H) ?各控制位的含义。各控制位的含义。 TF0 IE1 IT1 IE0 IT0 13:05 单片机原理及接口技术单片机原理及接口技术 各控制位的含义 1、TF1:定时器:定时器/计数器计数器T1溢出中断请求标志位。溢出中断请求标志位。 当启动当启动T1计数后,计数后,T1从初值开始加从初值开始加1计数,计数器最高位计数,计数器最高位产生溢出产生溢出时,由硬件时,由硬件使使TF1置置1,并向,并向CPU发出中断请求。
18、当发出中断请求。当CPU响应中断响应中断时,硬件将自动时,硬件将自动对对TF1清清0。 2、TF0:定时器:定时器/计数器计数器T0溢出中断请求标志位。溢出中断请求标志位。 含义与含义与TF1类同。类同。 3、IE1:外部中断:外部中断1的中断请求标志。的中断请求标志。 INT1(P3.3)。)。 当检测到当检测到外部中断引脚外部中断引脚1 上存在有效的上存在有效的中断请求信号中断请求信号时,由硬件使时,由硬件使IE1置置1。 4、IE0:外部中断:外部中断0的中断请求标志。的中断请求标志。INT0(P3.2)。其含义与)。其含义与IE1类同。类同。 13:05 单片机原理及接口技术单片机原理
19、及接口技术 各控制位的含义 5、IT1:外部中断:外部中断1的中断触发方式控制位。的中断触发方式控制位。 IT1=0时,外部中断时,外部中断1程控为电平触发方式。程控为电平触发方式。 CPU在每一个机器周期在每一个机器周期S5P2期间采样外部中断请求引脚的输期间采样外部中断请求引脚的输入电平。若外部中断入电平。若外部中断1请求为请求为低电平低电平,则使,则使IE1置置1;若;若为为高电平高电平,则使,则使IE1清清0。 IT1=1时,外部中断时,外部中断1程控为边沿触发方式。程控为边沿触发方式。 CPU在每一个机器周期在每一个机器周期S5P2期间采样外部中断请求引脚的输入期间采样外部中断请求引
20、脚的输入电平。如果在相继的两个机器周期采样过程中,电平。如果在相继的两个机器周期采样过程中,一个机一个机器周期器周期采样到外部中断采样到外部中断1请求引脚为请求引脚为高电平高电平,接着的,接着的下下一个机器周期一个机器周期采样到为采样到为低电平低电平,则使,则使IE1置置1。直到。直到CPU响应该中断时响应该中断时,才由硬件使才由硬件使IE1清清0。 6、IT0:外部中断:外部中断0的中断触发方式控制位。的中断触发方式控制位。 其含义与其含义与IT1类同。类同。 13:05 单片机原理及接口技术单片机原理及接口技术 2、串行口控制寄存器、串行口控制寄存器SCON中的中断标志位中的中断标志位 ?
21、SCON为串行口控制寄存器,其低为串行口控制寄存器,其低2位锁存串行口的接收中断和发位锁存串行口的接收中断和发送中断标志送中断标志RI和和TI。 ?SCON中中TI和和RI的格式如的格式如图图所示。所示。 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SCON (98H) ?其控制位的含义其控制位的含义 TI RI 13:05 单片机原理及接口技术单片机原理及接口技术 SCON中控制位的含义中控制位的含义 1、TI:串行口发送中断请求标志。:串行口发送中断请求标志。 CPU将一个数据写入发送缓冲器将一个数据写入发送缓冲器SBUF时,就启动发时,就启动发送。每发送完一帧串行数据
22、后,硬件置位送。每发送完一帧串行数据后,硬件置位TI。但。但CPU响应响应中断时,并不清除中断时,并不清除TI,必须在中断服务程序中由软件对,必须在中断服务程序中由软件对TI清清0。 2、RI:串行口接收中断请求标志。:串行口接收中断请求标志。 在串行口允许接收时,每接收完一个串行帧,硬件置在串行口允许接收时,每接收完一个串行帧,硬件置位位RI。同样,。同样,CPU响应中断时不会清除响应中断时不会清除RI,必须在中断服,必须在中断服务程序中由软件对务程序中由软件对RI清清0。 13:05 单片机原理及接口技术单片机原理及接口技术 二、中断允许控制二、中断允许控制 1、中断允许寄存器、中断允许寄
23、存器IE的格式。的格式。 AFH AEH ADH ACH ABH AAH A9H A8H IE EA (A8H) ES ET1 EX1 ET0 EX0 2、中断允许寄存器、中断允许寄存器IE中各位的含义。中各位的含义。 3、例、例5-1 13:05 单片机原理及接口技术单片机原理及接口技术 2、中断允许寄存器、中断允许寄存器IE中各位的含义。中各位的含义。 EA中断允许总控制位。中断允许总控制位。 EA=0,屏蔽屏蔽所有的中断请求;所有的中断请求; EA=1,CPU开放开放中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控
24、制位的状态。这就是所谓的两级控制。中断允许控制位的状态。这就是所谓的两级控制。 ES串行口中断允许位。串行口中断允许位。 ES=0,禁止串行口禁止串行口中断;中断; ES=1,允许串行口允许串行口中断。中断。 ET1 定时器定时器/计数器计数器T1的溢出中断允许位。的溢出中断允许位。 ET1=0,禁止禁止T1中断;中断; ET1=1,允许允许T1中断。中断。 EX1 外部中断外部中断1的溢出中断允许位。的溢出中断允许位。 EX1=0,禁止外部中断禁止外部中断1中断;中断; EX1=1,允许外部中断允许外部中断1中断。中断。 ET0 定时器定时器/计数器计数器T0的溢出中断允许位。的溢出中断允许
25、位。 ET0=0,禁止禁止T0中断;中断; ET0=1,允许允许T0中断。中断。 EX0 外部中断外部中断0的溢出中断允许位。的溢出中断允许位。 EX0=0,禁止外部中断禁止外部中断0中断;中断; EX0=1,允许外部中断允许外部中断0中断。中断。 13:05 单片机原理及接口技术单片机原理及接口技术 例5-1:假设允许片内定时器假设允许片内定时器/计数器中断,禁止其他计数器中断,禁止其他中断。试根据假设条件设置中断。试根据假设条件设置IE的相应值。的相应值。 解解:(:(IE)=10001010B=8AH (a)用字节操作指令)用字节操作指令 MOV IE,#8AH;或;或 MOV A8H,
26、#8AH; (b)用位操作指令)用位操作指令 SETB ET0;定时器;定时器/计数器计数器0允许中断允许中断 SETB ET1;定时器;定时器/计数器计数器1允许中断允许中断 SETB EA ;CPU开中断开中断 13:05 单片机原理及接口技术单片机原理及接口技术 三、中断优先级控制三、中断优先级控制 1、89C51/S51的中断优先级的中断优先级 2、中断优先级寄存器、中断优先级寄存器IP 3、中断优先级排列顺序、中断优先级排列顺序 4、中断优先级控制实现的功能、中断优先级控制实现的功能 5、例、例5-2 13:05 单片机原理及接口技术单片机原理及接口技术 1、89C51/S51的中断
27、优先级 ? 89C51/S51有两个中断优先级。有两个中断优先级。 ? 每个中断请求源均可编程为高优先级中断或低优先级每个中断请求源均可编程为高优先级中断或低优先级中断。中断。 ?中断系统中有两个不可寻址的中断系统中有两个不可寻址的“优先级生效优先级生效”触发器,触发器,分别指出分别指出CPU正在执行的高、低优先级的中断服务程正在执行的高、低优先级的中断服务程序。当其为序。当其为1时则分别屏蔽所有的中断请求。时则分别屏蔽所有的中断请求。 13:05 单片机原理及接口技术单片机原理及接口技术 2、中断优先级寄存器、中断优先级寄存器IP 中断优先级寄存器中断优先级寄存器IP的格式的格式 BCH B
28、BH BAH B9H B8H IP (B8H) PS PT1 PX1 PT0 PX0 中断优先级寄存器中断优先级寄存器IP各控制位的含义各控制位的含义 13:05 单片机原理及接口技术单片机原理及接口技术 中断优先级寄存器IP各控制位的含义 ?PS串行口中断优先级控制位串行口中断优先级控制位 ?PT1 定时器定时器/计数器计数器T1中断优先级控制位中断优先级控制位 ?PX1 外部中断外部中断1中断优先级控制位中断优先级控制位 ?PT0 定时器定时器/计数器计数器T0中断优先级控制位中断优先级控制位 ?PX0 外部中断外部中断0中断优先级控制位中断优先级控制位 若某控制位为若某控制位为1,则相应
29、的中断源规定为高级中断;反之,则相应的中断源规定为高级中断;反之,为为0,则相应的中断源规定为低级中断。,则相应的中断源规定为低级中断。 13:05 单片机原理及接口技术单片机原理及接口技术 3、中断优先级排列顺序 ?当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬件查询顺序。内部硬件查询顺序。 ?其优先级顺序排列如其优先级顺序排列如 图图所示。所示。 中断源中断源 外部中断外部中断0中断中断 高级高级 定时器定时器/计数器计数器T0溢出中断溢出中断 外部中断外部中断1 同级内的中断优先级同级内的中断优先级 定时
30、器定时器/计数器计数器T1溢出中断溢出中断 串行口中断串行口中断 低级低级 13:05 单片机原理及接口技术单片机原理及接口技术 4、中断优先级控制实现的功能、中断优先级控制实现的功能 ?(1)按内部查询顺序排队)按内部查询顺序排队 当数个中断源同时向当数个中断源同时向CPU发出中断请求时,发出中断请求时,CPU根据设计者事先确定的中根据设计者事先确定的中断源顺序号的次序,依次响应其中断请求。断源顺序号的次序,依次响应其中断请求。 (2)实现中断嵌套)实现中断嵌套 ?当当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,这时
31、,中断请求,这时,CPU就暂时中止执行对原来优先级较低的中断源就暂时中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去响应优先级更高的中断请求,并的服务程序,保护当前断点,转去响应优先级更高的中断请求,并为它服务。待服务结束,再继续执行原来较低级的中断服务程序。为它服务。待服务结束,再继续执行原来较低级的中断服务程序。该过程称为中断嵌套。该中断系统称为多级中断系统。该过程称为中断嵌套。该中断系统称为多级中断系统。 ?二级中断嵌套的中断过程如二级中断嵌套的中断过程如 图图5-9 所示。所示。 13:05 单片机原理及接口技术单片机原理及接口技术 图图5-9 二级中断嵌套二级中断嵌套
32、CPU执行低级执行低级 中断服务程序中断服务程序 CPU执行高级执行高级 中断服务程序中断服务程序 CPU在执行主程序在执行主程序 低级中低级中 断请求断请求 高级中高级中 断请求断请求 13:05 单片机原理及接口技术单片机原理及接口技术 ? 例5-2:设设8031的片外中断为高优先级,片内中断为低优先级。设的片外中断为高优先级,片内中断为低优先级。设置置IP相应值。相应值。 解:(解:(IP)=00000101B=05H (a)用字节操作指令用字节操作指令 MOV IP,#05H;或;或 MOV 0B8H,#05H; (b)用为操作指令用为操作指令 SETB PX0 SETB PX1 CL
33、R PS CLR PT0 CLR PT1 13:05 单片机原理及接口技术单片机原理及接口技术 5.4 中断响应及中断处理过程中断响应及中断处理过程 ? 5.4.1 5.4.1 中断响应中断响应 ? 5.4.2 5.4.2 中断处理中断处理 ? 5.4.3 5.4.3 中断返回中断返回 13:05 单片机原理及接口技术单片机原理及接口技术 中断处理过程的三个阶段中断处理过程的三个阶段 ?中断处理过程可分为:中断处理过程可分为: ?中断响应中断响应 ?中断处理中断处理 ?中断返回中断返回 K K+1 主程序主程序 N 中中保护现场保护现场 为外设服务为外设服务 恢复现场恢复现场 返回返回 断断处
34、处?中断处理的大致流程如中断处理的大致流程如 右图右图所示。所示。 理理N+m 13:05 单片机原理及接口技术单片机原理及接口技术 5.4.1 中断响应中断响应 ? 一、中断响应条件一、中断响应条件 ? 二、中断响应操作过程二、中断响应操作过程 ? 三、中断响应时间三、中断响应时间 13:05 单片机原理及接口技术单片机原理及接口技术 一、中断响应条件一、中断响应条件 有中断源发出中断请求。有中断源发出中断请求。 中断总允许位中断总允许位EA=1,即,即CPU中断。中断。 申请中断的中断源的中断允许位为申请中断的中断源的中断允许位为1,即中断没有被屏蔽。,即中断没有被屏蔽。 无同级或更高级中
35、断正在被服务。无同级或更高级中断正在被服务。 当前的指令周期已经结束。当前的指令周期已经结束。 若现行指令为若现行指令为RETI或是访问或是访问IE或或IP指令时,该指令以及紧接着指令时,该指令以及紧接着的另一条指令已执行完。的另一条指令已执行完。 13:05 单片机原理及接口技术单片机原理及接口技术 二、中断响应的自主操作过程二、中断响应的自主操作过程 ?1、中断响应的自主操作过程、中断响应的自主操作过程 把当前把当前PC值压入堆栈,保护断点。值压入堆栈,保护断点。 将相应的中断服务程序的入口地址送入将相应的中断服务程序的入口地址送入PC。 对有些中断源,对有些中断源,CPU会自动清除中断标
36、志。会自动清除中断标志。 执行中断服务程序。执行中断服务程序。 执行到返回指令执行到返回指令RETI,中断服务程序结束,将堆栈内容弹出到,中断服务程序结束,将堆栈内容弹出到PC,返,返回到原来断点继续执行。回到原来断点继续执行。 ?2 2、各中断源及其对应的矢量地址、各中断源及其对应的矢量地址 中断源 外部中断0(INT0) 定时器T0中断 外部中断1(INT1) 定时器T1中断 串行口中断 中断矢量 0003H 000BH 0013H 001BH 0023H 13:05 单片机原理及接口技术单片机原理及接口技术 ? 89C51/S51的的CPU在每个机器周期的在每个机器周期的S5P2期间顺序
37、采样每个期间顺序采样每个中断源,中断源,CPU在下一个机器周期在下一个机器周期S6期间按优先级顺序查询中期间按优先级顺序查询中断标志。如查询到某个中断标志为断标志。如查询到某个中断标志为1,则将在接下来的机器,则将在接下来的机器周期周期S1期间按优先级进行中断处理。中断系统通过硬件自动期间按优先级进行中断处理。中断系统通过硬件自动将相应的中断矢量地址装入将相应的中断矢量地址装入PC,以便进入相应的中断服务,以便进入相应的中断服务程序。表现为程序。表现为CPU的自主操作。的自主操作。 ? 89C51/S51单片机的中断系统中有两个不可编程的单片机的中断系统中有两个不可编程的“优先级优先级生效生效
38、”触发器。一个是触发器。一个是“高优先级生效高优先级生效”触发器,用以指明触发器,用以指明已进行高级中断服务,并阻止其他一切中断请求;一个是已进行高级中断服务,并阻止其他一切中断请求;一个是“低优先级生效低优先级生效”触发器,用以指明已进行低优先级中断服触发器,用以指明已进行低优先级中断服务,并阻止除高优先级以外的一切中断请求。务,并阻止除高优先级以外的一切中断请求。 13:05 单片机原理及接口技术单片机原理及接口技术 ? 89C51/S51单片机一旦响应中断,首先置位相应的中断单片机一旦响应中断,首先置位相应的中断“优优先级生效先级生效”触发器,然后由硬件执行一条长调用指令触发器,然后由硬
39、件执行一条长调用指令LCALL,把当前,把当前PC值压入堆栈,以保护断点,再将相应的值压入堆栈,以保护断点,再将相应的中断服务程序的入口地址中断服务程序的入口地址(如外中断如外中断0的入口地址为的入口地址为0003H)送送入入PC,于是,于是CPU接着从中断服务程序的入口处开始执行。接着从中断服务程序的入口处开始执行。 ?对于有些中断源,对于有些中断源,CPU在响应中断后会自动清除中断标志,在响应中断后会自动清除中断标志,如定时器溢出标志如定时器溢出标志TF0、TF1和边和边 ? 沿触发方式下的外部中断标志沿触发方式下的外部中断标志IE0、IE1;而有些中断标志不;而有些中断标志不会自动清除,
40、只能由用户用软会自动清除,只能由用户用软 ?件清除,如串行口接收发送中断标志件清除,如串行口接收发送中断标志RI、TI;在电平触发;在电平触发方式下的外部中断标志方式下的外部中断标志IE0和和IE1则是根据引脚和则是根据引脚和的电平变化的,的电平变化的,CPU无法直接干预,需在引脚外加硬无法直接干预,需在引脚外加硬件件(如如D触发器触发器)使其自动撤销外部中断请求。使其自动撤销外部中断请求。 13:05 单片机原理及接口技术单片机原理及接口技术 ?CPU执行中断服务程序之前,自动将程序计数器的内容(断点地址)压入堆栈保护起来(但不保护状态寄存器PSW的内容,也不保护累加器A和其他寄存器的内容)
41、;然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元中,以执行中断服务程序。各中断源及与之对应的矢量地址见表。 ?由于89C51/S51系列单片机的两个相邻中断源中断服务程序入口地址相距只有8个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址中放一条长跳转指令LJMP,这样就可以转到64 KB的任何可用区域了。若在2 KB范围内转移,则可存放AJMP指令。 13:05 单片机原理及接口技术单片机原理及接口技术 ?中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。RETI指令的操作,一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入
42、堆栈保护的断点地址从栈顶弹出,装入程序计数器PC,使程序返回到被中断的程序断点处继续执行。 ?我们在编写中断服务程序时应注意: 在中断矢量地址单元处放一条无条件转移指令(如LJMPH),使中断服务程序可灵活地安排在64 KB程序存储器的任何空间。 ? 在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。 ? 若要在执行当前中断程序时禁止更高优先级中断,则可先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。 13:05 单片机原理及接口技术单片机原理及接口技术 三、中断响应时间三、中断响应时间 ? CPUCPU不是在任何情况下都对中断请求予以响
43、应,而不不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。同的情况下对中断响应的时间是不同的。 ? 对于顺利的中断响应,其最短的响应时间为对于顺利的中断响应,其最短的响应时间为3 3个机器个机器周期。周期。 ? 对于受阻的中断响应,则响应时间会更长一些。对于受阻的中断响应,则响应时间会更长一些。 ? 若中断系统只有一个中断源,则响应时间为若中断系统只有一个中断源,则响应时间为3 38 8个机个机器周期之间。器周期之间。 13:05 单片机原理及接口技术单片机原理及接口技术 5.4.2 中断处理中断处理 ?一、什么是中断处理一、什么是中断处理 ?二、中断处理包括的内容
44、二、中断处理包括的内容 ?三、编写中断服务程序时的注意问题三、编写中断服务程序时的注意问题 13:05 单片机原理及接口技术单片机原理及接口技术 一、什么是中断处理一、什么是中断处理 ? CPU响应中断后即转入中断服务程序的入口,执行中响应中断后即转入中断服务程序的入口,执行中断服务程序。从中断服务程序的第一条指令开始到返断服务程序。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务回指令为止,这个过程称为中断处理或中断服务。 13:05 单片机原理及接口技术单片机原理及接口技术 二、中断处理包括的内容二、中断处理包括的内容 ?不同的中断源服务的内容及要求各不相同,其
45、处理过程也不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况,中断处理包括两部分内容:就有所区别。一般情况,中断处理包括两部分内容: ? 1、保护现场:、保护现场:如在中断服务程序中要用到 PSW、工作寄存器和SFR等寄存器时,则在进入中断服务之前应将它们的内容保护起来,在中断结束、执行RETI指令前应恢复现场。 ? 2、为中断源服务:、为中断源服务:针对中断源的具体要求进行相应的处理。 13:05 单片机原理及接口技术单片机原理及接口技术 三、编写中断服务程序时的注意问题三、编写中断服务程序时的注意问题 在中断矢量地址单元处放一条无条件转移指令,使中断服务程序可灵活地安排
46、在64KB ROM的任何空间。 在中断服务程序中,应注意用软件保护现场,以免中断返回后丢失原来寄存器、累加器中的信息。 若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。 13:05 单片机原理及接口技术单片机原理及接口技术 5.4.3 中断返回中断返回 ?在中断服务程序中,最后一条指令必须为中断返回在中断服务程序中,最后一条指令必须为中断返回指令指令RETI。 ? CPU执行该指令时,一方面清除中断响应时所置位执行该指令时,一方面清除中断响应时所置位的的“优先级生效优先级生效”触发器,另一方面从当前栈顶弹触发器,另一方面从当前栈
47、顶弹出断点地址送入程序计数器出断点地址送入程序计数器PC,从而返回主程序。,从而返回主程序。 ? 注意在中断服务程序中,注意在中断服务程序中,PUSH和和POP指令必须成对指令必须成对使用,否则,不能正确返回断点使用,否则,不能正确返回断点。 13:05 单片机原理及接口技术单片机原理及接口技术 5.4.4 关于具体的中断服务程序关于具体的中断服务程序 ?CPU响应中断结束后即转至中断服务程序的入口。从中断服务程序的响应中断结束后即转至中断服务程序的入口。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或称中断服第一条指令开始到返回指令为止,这个过程称为中断处理或称中断服务。
48、不同的中断源服务的内容及要求各不相同,其处理过程也就有所务。不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况下,中断处理包括两部分内容:区别。一般情况下,中断处理包括两部分内容: 一是保护现场,二是一是保护现场,二是为中断源服务。为中断源服务。 ?在编程时经常用到在编程时经常用到PSW、工作寄存器、工作寄存器、SFR寄存器等。如果在中断服寄存器等。如果在中断服务程序中要用这些寄存器,则在进入中断服务之前应将它们的内容保务程序中要用这些寄存器,则在进入中断服务之前应将它们的内容保护起来,即保护现场;同时在中断结束,执行护起来,即保护现场;同时在中断结束,执行RETI指令之前
49、应恢复指令之前应恢复现场。现场。 13:05 单片机原理及接口技术单片机原理及接口技术 ?中断服务是针对中断源的具体要求进行处理的。在编写中断服务程序时中断服务是针对中断源的具体要求进行处理的。在编写中断服务程序时应注意以下几点:应注意以下几点: ?各中断源的入口矢量地址之间,只相隔各中断源的入口矢量地址之间,只相隔8个单元,一般中断服务程序是个单元,一般中断服务程序是容纳不下的,因而最常用的方法是在中断入口矢量地址单元处存放一条容纳不下的,因而最常用的方法是在中断入口矢量地址单元处存放一条无条件转移指令,而转至存储器其他的任何空间去。无条件转移指令,而转至存储器其他的任何空间去。 ?若要在执
50、行当前中断程序时禁止更高优先级中断,则应用软件关闭若要在执行当前中断程序时禁止更高优先级中断,则应用软件关闭CPU中断,或屏蔽更高级中断源的中断,在中断返回前再开放中断。中断,或屏蔽更高级中断源的中断,在中断返回前再开放中断。 ? 在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,一般在此情况下,应关一般在此情况下,应关CPU中断,使中断,使CPU暂不响应新的中断请求。这样暂不响应新的中断请求。这样就要求在编写中断服务程序时,应注意在保护现场之前关中断,在保护就要求在编写中断服务程序时,应注意在保护现场之前关中断,在保护现场