单片机原理及应用系统设计第6章-中断系统课件.pptx

上传人(卖家):三亚风情 文档编号:3502546 上传时间:2022-09-08 格式:PPTX 页数:60 大小:532.57KB
下载 相关 举报
单片机原理及应用系统设计第6章-中断系统课件.pptx_第1页
第1页 / 共60页
单片机原理及应用系统设计第6章-中断系统课件.pptx_第2页
第2页 / 共60页
单片机原理及应用系统设计第6章-中断系统课件.pptx_第3页
第3页 / 共60页
单片机原理及应用系统设计第6章-中断系统课件.pptx_第4页
第4页 / 共60页
单片机原理及应用系统设计第6章-中断系统课件.pptx_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、第6章 中断系统单片机原理及应用系统设计主要内容中断的基本概念单片机中断请求中断响应中断服务与中断返回中断服务函数单片机中断应用举例6.1 6.1 中断的基本概念中断的基本概念6.1.1 中断的概念中断的概念 中断系统是为使中断系统是为使CPUCPU具有对外界紧急事件的实时处理能力而设置的。具有对外界紧急事件的实时处理能力而设置的。当中央处理机当中央处理机CPUCPU正在处理某件事的时候外界发生了紧急事件请求,要正在处理某件事的时候外界发生了紧急事件请求,要求求CPU CPU 暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来

2、被中断的地方,继续原来的工作,这样的过程称为中断。一个完到原来被中断的地方,继续原来的工作,这样的过程称为中断。一个完整的中断过程包括中断请求、中断响应、中断服务及中断返回整的中断过程包括中断请求、中断响应、中断服务及中断返回4 4个步骤,个步骤,如图如图6-16-1所示。所示。打个比方,当一位经理正在处理文件时,电话铃响了(中断请求),不打个比方,当一位经理正在处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(断点地址,即返回地址),暂停工作,去接得不在文件上做一个记号(断点地址,即返回地址),暂停工作,去接电话(响应中断),并处理电话请求(中断服务),然后,再静下心来电话(响应

3、中断),并处理电话请求(中断服务),然后,再静下心来(恢复中断前状态),接着处理文件(中断返回)(恢复中断前状态),接着处理文件(中断返回)。中断响应过程示意图中断响应过程示意图6.1.2 6.1.2 中断源中断源 引起引起CPUCPU中断的根源或原因,称为中断源。中断源向中断的根源或原因,称为中断源。中断源向CPUCPU提出的处理提出的处理请求,称为中断请求或中断申请。请求,称为中断请求或中断申请。IAP15W4K58S4IAP15W4K58S4系列单片机提供了系列单片机提供了2121个中断请求源,它们分别是:外个中断请求源,它们分别是:外部中断部中断0 0(INT0INT0)、定时器)、定

4、时器0 0中断、外部中断中断、外部中断1 1(INT1INT1)、定时器)、定时器1 1中中断、串口断、串口1 1中断、中断、A/DA/D转换中断、低压检测(转换中断、低压检测(LVDLVD)中断、)中断、CCP/PWM/PCACCP/PWM/PCA中断、串口中断、串口2 2中断、中断、SPISPI中断、外部中断中断、外部中断2 2(/INT2/INT2)、)、外部中断外部中断3 3(/INT3/INT3)、定时器)、定时器2 2中断、外部中断中断、外部中断4 4(/INT4/INT4)、串口)、串口3 3中断、串口中断、串口4 4中断、定时器中断、定时器3 3中断、定时器中断、定时器4 4中

5、断、比较器中断、比较器 中断、中断、PWMPWM中断及中断及PWMPWM异常检测中断。异常检测中断。除外部中断除外部中断2 2(/INT2/INT2)、外部中断)、外部中断3 3(/INT3/INT3)、定时器)、定时器T2 T2 中断、外中断、外部中断部中断4 4(/INT4/INT4)、串口)、串口3 3中断、串口中断、串口4 4中断、定时器中断、定时器3 3中断、定时器中断、定时器4 4中断及比较器中断固定是最低优先级中断外,其它的中断都具有中断及比较器中断固定是最低优先级中断外,其它的中断都具有2 2个个中断优先级,可实现中断优先级,可实现2 2级中断服务程序嵌套。级中断服务程序嵌套。

6、IAP15W4K58S4 中断结构图中断结构图6.1.3 中断优先级中断优先级 当有多个中断源同时向当有多个中断源同时向CPUCPU提出中断请求时,就存在提出中断请求时,就存在CPUCPU先响应哪个中先响应哪个中断请求、后响应哪个中断请求的问题。断请求、后响应哪个中断请求的问题。为此,为此,CPUCPU要对每个中断源事先确定一个优先级别,称为要对每个中断源事先确定一个优先级别,称为中断优先级中断优先级。当多个中断源同时提出中断请求时当多个中断源同时提出中断请求时CPUCPU先响应优先级高的中断请求,之先响应优先级高的中断请求,之后再响应低优先级的中断请求。后再响应低优先级的中断请求。图图6-3

7、 6-3 中断嵌套中断嵌套6.2 6.2 单片机中断请求单片机中断请求6.2.1 6.2.1 中断请求标志中断请求标志1.TCON中的中断标志位中的中断标志位 TCON是定时器是定时器/计数器计数器T0和和T1的控制寄存器,锁存了的控制寄存器,锁存了T0、T1的溢出中断标志位及外部中断的溢出中断标志位及外部中断0和外部中断和外部中断1的中断标的中断标志位,地址为志位,地址为88H,复位值为,复位值为00H。特殊功能寄存器特殊功能寄存器TCON中的各位分布如表中的各位分布如表6-1所示:所示:位号位号B7B6B5B4B3B2B1B0位名称TF1TR1TF0TR0IE1IT1IE0IT0TCONT

8、CON寄存器中和中断请求及控制相关的位主要有:寄存器中和中断请求及控制相关的位主要有:TF1TF1:T1T1溢出中断标志。溢出中断标志。T1T1被允许计数以后,从初值开始加被允许计数以后,从初值开始加1 1计数。当产生溢出时由硬件自动使计数。当产生溢出时由硬件自动使TF1TF1置置“1”“1”,向,向CPUCPU请请求中断,一直保持到求中断,一直保持到CPUCPU响应中断时,才由硬件清响应中断时,才由硬件清“0”“0”(也可由查询软件清(也可由查询软件清“0”“0”)。)。TR1TR1:定时器:定时器1 1的运行控制位。的运行控制位。TF0TF0:T0T0溢出中断标志。溢出中断标志。T0T0被

9、允许计数以后,从初值开始加被允许计数以后,从初值开始加1 1计数,当产生溢出时,由硬件自动使计数,当产生溢出时,由硬件自动使TF0TF0置置“1”“1”,向,向CPUCPU请求中断,一直保持请求中断,一直保持CPUCPU响应该中断时,才由硬件清响应该中断时,才由硬件清0(0(也可也可由查询由查询 软件清软件清0)0)。TR0TR0:定时器:定时器0 0的运行控制位。的运行控制位。TCONTCON寄存器中和中断请求及控制相关的位主要有:寄存器中和中断请求及控制相关的位主要有:IE1IE1:外部中断:外部中断1(INT1/P3.3)1(INT1/P3.3)中断请求标志。中断请求标志。IE1=1IE

10、1=1,外部中,外部中断向断向CPUCPU请求中断,当请求中断,当CPUCPU响应该中断时由硬件对响应该中断时由硬件对IE1IE1清清“0”“0”。IT1IT1:外部中断:外部中断1 1中断源类型选择位。中断源类型选择位。IT1=0IT1=0,INT1/P3.3INT1/P3.3引脚引脚上的上升沿或下降沿信号均可触发外部中断上的上升沿或下降沿信号均可触发外部中断1 1。IT1=1IT1=1,外部外部中断中断1 1为下降沿触发方式。为下降沿触发方式。I IE E0 0:外部中断:外部中断0(INT0/P3.2)0(INT0/P3.2)中断请求标志。中断请求标志。IE0=1IE0=1,外部中,外部

11、中断断0 0向向CPUCPU请求中断,当请求中断,当CPUCPU响应外部中断时,由硬件对响应外部中断时,由硬件对IE0IE0清清“0”“0”。IT0IT0:外部中断:外部中断0 0中断源类型选择位。中断源类型选择位。IT0=0IT0=0,INT0/P3.2INT0/P3.2引脚引脚上的上升沿或下降沿均可触发外部中断上的上升沿或下降沿均可触发外部中断0 0。IT0=1IT0=1,外部中断外部中断0 0为下降沿触发方式为下降沿触发方式。2 2SCONSCON中的中断标志位中的中断标志位 SCONSCON是串行口是串行口1 1控制寄存器,锁存了串行口控制寄存器,锁存了串行口1 1的发送、接的发送、接

12、收中断标志位收中断标志位TITI和和RIRI。地址为地址为98H98H,复位值为,复位值为00H00H。特殊功能寄存器特殊功能寄存器SCONSCON中各位分布如表中各位分布如表6-26-2所示:所示:位号位号B7B6B5B4B3B2B1B0位名称SM0/FESM1SM2RENTB8RB8TIRITITI:串行口:串行口1 1发送中断标志。发送中断标志。串行口串行口1 1以方式以方式0 0发送时,每当发送完发送时,每当发送完8 8位数据,由硬件置位数据,由硬件置1 1;若以方式若以方式1 1、方式、方式2 2或方式或方式3 3发送时,在发送停止位的开始时发送时,在发送停止位的开始时置置TI=1T

13、I=1表示串行口表示串行口1 1正在向正在向CPU CPU 申请中断申请中断(发送中断)。发送中断)。值得注意的是,值得注意的是,CPUCPU响应发送中断请求,转向执行中断服务响应发送中断请求,转向执行中断服务程序程序 时并不将时并不将TITI清零,清零,TITI必须由用户在中断服务程序中清零必须由用户在中断服务程序中清零。RIRI:串行口:串行口 1 1接收中断标志接收中断标志 若串行口若串行口1 1允许接收且以方式允许接收且以方式0 0工作,则每当接收到第工作,则每当接收到第8 8位数位数据时置据时置1 1;若以方式;若以方式1 1、2 2、3 3工作且工作且SM2=0SM2=0时,则每当

14、接收到时,则每当接收到停止位的中间时置停止位的中间时置1 1;当串行口以方式当串行口以方式2 2或方式或方式3 3工作且工作且SM2=1SM2=1时,则仅当接收到的时,则仅当接收到的第第9 9位数据位数据RB8RB8为为1 1后,同时还要接收到停止位的中间时置后,同时还要接收到停止位的中间时置RIRI为为1 1表示串行口表示串行口1 1正向正向CPUCPU申请中断申请中断(接收中断),接收中断),RIRI必须由用必须由用户的中断服务程序清零。户的中断服务程序清零。3 3ADC_CONTRADC_CONTR中的中断标志位中的中断标志位 ADC_CONTRADC_CONTR是是ADCADC控制寄存

15、器,锁存了控制寄存器,锁存了A/DA/D转换结束中转换结束中断标志断标志ADC_FLAGADC_FLAG。地址为地址为BCHBCH,复位值为,复位值为00H00H。特殊功能寄存器特殊功能寄存器ADC_CONTRADC_CONTR中的各位分布如表中的各位分布如表6-66-6所示:所示:位号位号B7B6B5B4B3B2B1B0位名称ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0ADC_CONTR中的中断标志位中的中断标志位 ADC_POWER:ADC电源控制位。当电源控制位。当ADC_POWER=0时,时,关闭关闭ADC电源;当电源;当ADC_

16、PWOER=1时,打开时,打开ADC电源。电源。ADC_FLAG:ADC转换结束标志位,可用于请求转换结束标志位,可用于请求A/D转换转换的中断。当的中断。当A/D转换完成后,转换完成后,ADC_FLAG=1,要用软件清,要用软件清0。不管是不管是A/D转换完成后由该位申请产生中断,还是由软件查转换完成后由该位申请产生中断,还是由软件查询该标志位询该标志位A/D转换是否结束,当转换是否结束,当A/D转换完成后,转换完成后,ADC_FLAG=1,一定要软件清一定要软件清0。【重点】【重点】ADC_START:ADC转换启动控制位,设置为转换启动控制位,设置为“1”时,开始时,开始转换,转换结束后

17、为转换,转换结束后为0。A/D转换控制寄存器转换控制寄存器ADC_CONTR中的其他位与中断无关,中的其他位与中断无关,在此不作介绍。在此不作介绍。4 4PCONPCON中的中断标志位中的中断标志位 PCONPCON是电源控制寄存器,锁存了低电压检测中断标志位是电源控制寄存器,锁存了低电压检测中断标志位LVDFLVDF。地址为地址为87H87H,复位值为,复位值为00H00H。特殊功能寄存器特殊功能寄存器PCONPCON中各位分布如表中各位分布如表6-76-7所示:所示:位号位号B7B6B5B4B3B2B1B0位名称SMODSMOD0LVDFPOFGF1GF0PDIDLPCONPCON中的中断

18、标志位中的中断标志位 LVDFLVDF:低压检测标志位,同时也是低压检测中断请求标志位。:低压检测标志位,同时也是低压检测中断请求标志位。在正常工作和空闲工作状态时,如果内部工作电压在正常工作和空闲工作状态时,如果内部工作电压VccVcc低于低压检测门低于低压检测门槛电压,该位自动置槛电压,该位自动置1 1,与低压检测中断是否被允许无关。即在内部工,与低压检测中断是否被允许无关。即在内部工作电压作电压VccVcc低于低压检测门槛电压时,不管有没有允许低压检测中断,低于低压检测门槛电压时,不管有没有允许低压检测中断,该位都自动为该位都自动为1 1。该位要用软件清。该位要用软件清0 0,清,清0

19、0后如内部工作电压后如内部工作电压VccVcc继续低继续低于低压检测门槛电压,该位又被自动设置为于低压检测门槛电压,该位又被自动设置为1 1。在进入掉电工作状态前,如果低压检测电路未被允许可产生中断,则在进入掉电工作状态前,如果低压检测电路未被允许可产生中断,则在进入掉电模式在进入掉电模式 后,该低压检测电路不工作以降低功耗。如果被允许后,该低压检测电路不工作以降低功耗。如果被允许可产生低压检测中断,则在进入掉电模式后,该低压检测电路继续工可产生低压检测中断,则在进入掉电模式后,该低压检测电路继续工作,在内部工作电压作,在内部工作电压VccVcc低于低压检测门槛电压后,产生低压检测中断,低于低

20、压检测门槛电压后,产生低压检测中断,可将可将MCUMCU从掉电状态唤醒。从掉电状态唤醒。电源控制寄存器电源控制寄存器PCONPCON中的其他位与低压检测中断无关,在此不作介绍中的其他位与低压检测中断无关,在此不作介绍5 5CCONCCON中的中断标志位中的中断标志位 CCONCCON是是PCAPCA控制寄存器,锁存了控制寄存器,锁存了PCAPCA计数器溢出中断标计数器溢出中断标志位志位CFCF及及CCF2CCF2、CCF1CCF1、CCF0CCF0。地址为地址为D8H.D8H.,复位值为,复位值为00H00H。特殊功能寄存器特殊功能寄存器CCONCCON中各位分布如表中各位分布如表6-86-8

21、所示:所示:位号位号B7B6B5B4B3B2B1B0位名称CFCR-CCF2CCF1CCF0CCONCCON中的中断标志位中的中断标志位 CFCF:PCAPCA计数器溢出标志位。当计数器溢出标志位。当PCAPCA计数溢出时,由硬件计数溢出时,由硬件将将CFCF置置1 1,并向,并向CPUCPU发出中断请求。发出中断请求。CPUCPU响应该中断后不能响应该中断后不能通过硬件将通过硬件将CFCF位清位清0 0,用户必须通过软件将该位清零用户必须通过软件将该位清零。CCF2/CCF1/CCF0CCF2/CCF1/CCF0:PCAPCA各模块的中断标志位。其中各模块的中断标志位。其中CCF2CCF2对

22、应模块对应模块2 2,CCF1CCF1对应模块对应模块1 1,CCF0CCF0对应模块对应模块0 0。当出现匹。当出现匹配或捕获时由硬件将对应标志位置配或捕获时由硬件将对应标志位置1 1,并向,并向CPUCPU发出中断请发出中断请求。求。CPUCPU响应该中断后不能通过硬件将响应该中断后不能通过硬件将CCF2/CCF1/CCF0CCF2/CCF1/CCF0位清位清0 0,用户必须通过软件将该位清用户必须通过软件将该位清0 0。在中断服务程序中,。在中断服务程序中,通过判断各标志位以确定是哪个模块产生了中断。通过判断各标志位以确定是哪个模块产生了中断。6 6SPSTATSPSTAT中的中断标志位

23、中的中断标志位 SPSTATSPSTAT是是SPISPI状态寄存器,锁存了状态寄存器,锁存了SPISPI传输完成中断标志传输完成中断标志位位SPIFSPIF。地址为地址为CDHCDH,复位值为,复位值为00H00H。特殊功能寄存器特殊功能寄存器SPSTATSPSTAT中各位分布如表中各位分布如表6-96-9:位号位号B7B6B5B4B3B2B1B0复位值SPIFWOOL-SPSTATSPSTAT中的中断标志位中的中断标志位 SPIFSPIF为为SPISPI传输完成的中断标志位。当一次传输完成的中断标志位。当一次SPISPI传输完成时,传输完成时,由硬件将由硬件将SPIFSPIF位置位置1 1,

24、并向,并向CPUCPU发出中断请求。发出中断请求。CPUCPU响应该响应该中断后不能通过硬件将中断后不能通过硬件将SPIFSPIF位清零,位清零,用户必须通过软件向用户必须通过软件向该位写该位写1 1而清零而清零。【重要】【重要】外部中断外部中断2 2、外部中断、外部中断3 3及外部中断及外部中断4 4只能在下降沿触发,且只能在下降沿触发,且这几个中断标志位对用户可不见。当对应的中断响应后或这几个中断标志位对用户可不见。当对应的中断响应后或在在EXn=0EXn=0(n=2n=2、3 3、4 4)时,这些中断请求标志位会自动被)时,这些中断请求标志位会自动被清零。清零。定时器定时器T2T2的中断

25、请求标志位对用户也是可不见的。当的中断请求标志位对用户也是可不见的。当T2T2的的中断被响应后或中断被响应后或ET2=0ET2=0时,该中断标志位会自动被清零。时,该中断标志位会自动被清零。6.2.6.2.2 2 中断允许的控制中断允许的控制1 1.中断允许寄存器中断允许寄存器IEIE 地址地址A8HA8H,可位寻址,复值为,可位寻址,复值为00H00H。如表如表6-106-10所示:所示:位号位号B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0位名称EAELVDEADCESET1EX1ET0EX0 中断允许寄存器中断允许寄存器IEIE EAEA:CPUCPU的总中断允许控制位

26、,的总中断允许控制位,EA=1EA=1,CPUCPU开放中断,开放中断,EA=0EA=0,CPUCPU屏蔽所有的中断申请。屏蔽所有的中断申请。EAEA的作用是使中断允的作用是使中断允许形成多级控制。即各中断源首先受许形成多级控制。即各中断源首先受EAEA控制;其次还受各控制;其次还受各中断源自己的中断允许控制位控制。中断源自己的中断允许控制位控制。ELVDELVD:低压检测中断允许位,:低压检测中断允许位,ELVD=1ELVD=1,允许低压检测中,允许低压检测中断,断,ELVD=0ELVD=0,禁止低压检测中断。,禁止低压检测中断。EADCEADC:A/DA/D转换中断允许位,转换中断允许位,

27、EADC=1EADC=1,允许,允许A/DA/D转换中转换中断,断,EADC=0EADC=0,禁止,禁止A/DA/D转换中断。转换中断。ESES:串行口:串行口1 1中断允许位,中断允许位,ES=1ES=1,允许串行口,允许串行口1 1中断,中断,ES=0ES=0,禁止串行口禁止串行口1 1中断。中断。中断允许寄存器中断允许寄存器IEIE ET1ET1:定时:定时/计数器计数器T1T1的溢出中断允许位,的溢出中断允许位,ET1=1ET1=1,允许,允许T1T1中断,中断,ET1=0ET1=0,禁止,禁止T1T1中断。中断。EX1EX1:外部中断:外部中断1 1中断允许位,中断允许位,EX1=1

28、EX1=1,允许外部中断,允许外部中断1 1中中断,断,EX1=0EX1=0,禁止外部中断,禁止外部中断1 1中断。中断。ET0 ET0:T0T0的溢出中断允许位,的溢出中断允许位,ET0=1ET0=1允许允许T0T0中断,中断,ET0=0ET0=0禁止禁止T0T0中断。中断。EX0 EX0:外部中断:外部中断0 0中断允许位,中断允许位,EX0=1EX0=1允许中断,允许中断,EX0=0EX0=0禁禁止中断。止中断。2.2.外部中断允许和时钟输出寄存器外部中断允许和时钟输出寄存器INT_CLKOINT_CLKO(AUXR2AUXR2)地址为地址为8FH8FH,复位值为,复位值为00H00H。

29、如表如表6-16-12 2所示:所示:位号位号B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0位名称-EX4EX3EX2MCKO_S2T2CLKOT1CLKOT0CLKO 外部中断允许和时钟输出寄存器外部中断允许和时钟输出寄存器INT_CLKOINT_CLKO(AUXR2AUXR2)EX4EX4:外部中断:外部中断4 4()中断允许位,()中断允许位,EX4=1EX4=1允许中断,允许中断,EX4=0EX4=0禁止中断。禁止中断。外部中断外部中断4 4()只能下降沿触发。()只能下降沿触发。EX3EX3:外部中断:外部中断3 3()中断允许位,()中断允许位,EX3=1EX3=

30、1允许中断,允许中断,EX3=0EX3=0禁止中断。禁止中断。外部中断外部中断3 3()也只能下降沿触发。()也只能下降沿触发。EX2EX2:外部中断:外部中断2 2()中断允许位,()中断允许位,EX2=1EX2=1允许中断,允许中断,EX2=0EX2=0禁止中断。禁止中断。外部中断外部中断2 2()同样只能下降沿触发。()同样只能下降沿触发。MCKO_S2MCKO_S2,T2CLKOT2CLKO,T1CLKOT1CLKO,T0CLKOT0CLKO与中断无关,在此不作介与中断无关,在此不作介绍。绍。I IAP15W4K58S4AP15W4K58S4单片机系统复位后,所有中断源的中断允许控制位

31、以单片机系统复位后,所有中断源的中断允许控制位以及及CPUCPU中断控制位(中断控制位(EAEA)均被清零,即禁止所有中断。)均被清零,即禁止所有中断。一个中断要处于允许状态,必须满足两个条件:一是总中断(一个中断要处于允许状态,必须满足两个条件:一是总中断(CPUCPU中中断)允许位断)允许位EAEA为为1 1,二是该中断允许位为,二是该中断允许位为1 1。3.3.中断优先级控制寄存器中断优先级控制寄存器IPIP 地址为地址为B8HB8H,可位寻址,复位值为,可位寻址,复位值为00H00H。其格式如表其格式如表6-136-13所示:所示:位号位号B7B7B6B6B5B5B4B4B3B3B2B

32、2B1B1B0B0位名称PPCAPLVDPADCPSPT1PX1PT0PX0 中断优先级控制寄存器中断优先级控制寄存器IPIP PPCAPPCA:PCAPCA中断优先级控制位。当中断优先级控制位。当PPCA=0PPCA=0时,时,PCAPCA中断为最低优先中断为最低优先级中断(优先级级中断(优先级0 0);当);当PPCA=1PPCA=1时,时,PCAPCA中断为最高优先级中断(优中断为最高优先级中断(优先级先级1 1)。)。PLVDPLVD:低压检测中断优先级控制位。当:低压检测中断优先级控制位。当PLVD=0PLVD=0时,低压检测中断为时,低压检测中断为最低优先级中断(优先级最低优先级中

33、断(优先级0 0);当);当PLVD=1PLVD=1时,低压检测中断为最高优时,低压检测中断为最高优先级中断(优先级先级中断(优先级1 1)。)。PADCPADC:A/DA/D转换中断优先级控制位。当转换中断优先级控制位。当PADC=0PADC=0时,时,A/DA/D转换中断为转换中断为最低优先级中断(优先级最低优先级中断(优先级0 0);当);当PADC=1PADC=1时,时,A/DA/D转换中断为最高优转换中断为最高优先级中断(优先级先级中断(优先级1 1)。)。PSPS:串口:串口 1 1中断优先级控制位。当中断优先级控制位。当PS=0PS=0时,串口时,串口 1 1中断为最低优先级中中

34、断为最低优先级中断(优先级断(优先级0 0);当);当PS=1PS=1时,串口时,串口 1 1中断为最高优先级中断(优先级中断为最高优先级中断(优先级1 1)。)。中断优先级控制寄存器中断优先级控制寄存器IPIP PT1PT1:定时器:定时器1 1中断优先级控制位。当中断优先级控制位。当PT1=0PT1=0时,定时器时,定时器1 1中断为最低优中断为最低优先级中断(优先级先级中断(优先级0 0);当);当PT1=1PT1=1时,定时器时,定时器1 1中断为最高优先级中断中断为最高优先级中断(优先级(优先级1 1)。)。PX1PX1:外部中断:外部中断1 1优先级控制位。当优先级控制位。当PX1

35、=0PX1=0时,外部中断时,外部中断1 1为最低优先级为最低优先级中断(优先级中断(优先级0 0);当);当PX1=1PX1=1时,外部中断时,外部中断1 1为最高优先级中断(优先为最高优先级中断(优先级级1 1)。)。PT0PT0:定时器:定时器0 0中断优先级控制位。当中断优先级控制位。当PT0=0PT0=0时,定时器时,定时器0 0中断为最低优中断为最低优先级中断(优先级先级中断(优先级0 0);当);当PT0=1PT0=1时,定时器时,定时器0 0中断为最高优先级中断中断为最高优先级中断(优先级(优先级1 1)。)。PX0PX0:外部中断:外部中断0 0优先级控制位。当优先级控制位。

36、当PX0=0PX0=0时,外部中断时,外部中断0 0为最低优先级为最低优先级中断(优先级中断(优先级0 0);当);当PX0=1PX0=1时,外部中断时,外部中断0 0为最高优先级中断(优先为最高优先级中断(优先级级1 1)。)。6.3 6.3 中断响应中断响应6.3.1 6.3.1 中断响应时间中断响应时间在中断允许的条件下,中断源发出中断请求后,在中断允许的条件下,中断源发出中断请求后,CPUCPU肯定会响应中断,肯定会响应中断,但若有下列任何一种情况存在,中断响应会受到阻断,会不同程度地但若有下列任何一种情况存在,中断响应会受到阻断,会不同程度地增加增加CPUCPU响应中断的时间。响应中

37、断的时间。(1 1)CPUCPU正在执行同级或高级优先级的中断正在执行同级或高级优先级的中断(2 2)正在执行)正在执行RETIRETI中断返回指令或访问与中断有关的寄存器指令,中断返回指令或访问与中断有关的寄存器指令,如访问如访问IEIE和和IPIP的指令。的指令。(3 3)当前指令未执行完。)当前指令未执行完。若存在上述任何一种情况,中断查询结果即被取消,若存在上述任何一种情况,中断查询结果即被取消,CPUCPU不响应不响应中断请求,而在下一指令周期继续查询;若条件满足,中断请求,而在下一指令周期继续查询;若条件满足,CPUCPU在下一指在下一指令周期响应中断。令周期响应中断。在每个指令周

38、期的最后时刻,在每个指令周期的最后时刻,CPUCPU对各中断源采样,并设置相应对各中断源采样,并设置相应的中断标志位;的中断标志位;CPUCPU在下一个指令周期的最后时刻按优先级顺序查询在下一个指令周期的最后时刻按优先级顺序查询各中断标志,如查到某个中断标志为各中断标志,如查到某个中断标志为“1”“1”,将在下一个指令周期按优,将在下一个指令周期按优先级的高低顺序进行处理。先级的高低顺序进行处理。6.3.2 6.3.2 中断响应过程中断响应过程中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。CPUCPU响应中断时,将相应的

39、优先级状态触发器置响应中断时,将相应的优先级状态触发器置“1”“1”,然后由硬件,然后由硬件自动产生一个长调用指令自动产生一个长调用指令LCALLLCALL。此指令首先把断点地址压入堆栈。此指令首先把断点地址压入堆栈保护,再将中断服务程序的入口地址送到程序计数器保护,再将中断服务程序的入口地址送到程序计数器PCPC,使程序转,使程序转向相应的中断服务程序。向相应的中断服务程序。IAP15W4K58S4IAP15W4K58S4单片机各个中断源中断响应的入口地址由硬件事先设单片机各个中断源中断响应的入口地址由硬件事先设定,如表定,如表6-166-16所示:所示:其中,中断号是在其中,中断号是在C

40、C语言程序中编写中断函数使用的。语言程序中编写中断函数使用的。在中断函数中,在中断函数中,中断号与各中断源是一一对应的中断号与各中断源是一一对应的,不能混淆。,不能混淆。6.3.3 6.3.3 中断请求标志的撤销问题中断请求标志的撤销问题CPUCPU响应中断请求后即进入中断服务程序。在中断返回前,应撤除响应中断请求后即进入中断服务程序。在中断返回前,应撤除该中断请求;否则,会重复引起中断而导致错误。该中断请求;否则,会重复引起中断而导致错误。IAP15W4K58S4IAP15W4K58S4单单片机各中断源中断请求撤除的方法不尽相同,如下所示:片机各中断源中断请求撤除的方法不尽相同,如下所示:(

41、1 1)定时器中断请求的撤除定时器中断请求的撤除:对于定时器:对于定时器/计数器计数器T0T0或或T1T1溢出中断,溢出中断,CPUCPU在响应中断后,即由硬件自动清除其中标志位在响应中断后,即由硬件自动清除其中标志位TF0TF0或或TF1TF1,无需无需采取其他措施。采取其他措施。定时器定时器T2T2、T3T3、T4T4中断的中断请求标志位被隐藏起来,对用户是不中断的中断请求标志位被隐藏起来,对用户是不可见的。当响应的服务程序执行后,这些中断请求标志位自动被清可见的。当响应的服务程序执行后,这些中断请求标志位自动被清零。零。(2 2)串行口串行口1 1中断请求的撤除中断请求的撤除:对于串行口

42、:对于串行口1 1中断,中断,CPUCPU在响应之后,在响应之后,硬件不会自动清除中断请求标志位硬件不会自动清除中断请求标志位TITI或或RIRI,必须在中断服务程序中,必须在中断服务程序中,在判别出是在判别出是TITI还是还是RIRI引起的中断后,再用软件将其清除。引起的中断后,再用软件将其清除。(3 3)外部中断请求的撤除外部中断请求的撤除:外部中断:外部中断0 0和外部中断和外部中断1 1的触的触发方式有发方式有ITxITx(x=0,1x=0,1)设置,但无论)设置,但无论ITxITx(x=0,1x=0,1)设置为)设置为“0”“0”还是还是“1”“1”,都属于,都属于边沿触发边沿触发。

43、CPUCPU在响应中断后,在响应中断后,由硬件自动清除其中断请求标志位由硬件自动清除其中断请求标志位IE0IE0或或IE1IE1,无需采取,无需采取其他措施。外部中断其他措施。外部中断2 2、外部中断、外部中断3 3、外部中断、外部中断4 4的中断请的中断请求标志虽然是隐含的,但同样属于边沿触发。求标志虽然是隐含的,但同样属于边沿触发。CPUCPU在响在响应中断后,由硬件自动清除其中断标志位,无需采取其应中断后,由硬件自动清除其中断标志位,无需采取其他措施他措施。注:。注:ITIT:Interrupt TriggerInterrupt Trigger(4 4)电源低电压检测中断电源低电压检测中

44、断:电源低电压检测中断的中断:电源低电压检测中断的中断请求标志位,在中断响应后,不会自动清零,需用软件请求标志位,在中断响应后,不会自动清零,需用软件清除。清除。6.4 6.4 中断服务与中断返回中断服务与中断返回 中断请求的识别、中断优先级的判断、响应中断的各种动作中断请求的识别、中断优先级的判断、响应中断的各种动作是由是由CPUCPU自动完成的,而自动完成的,而中断处理与中断返回需要由开发者中断处理与中断返回需要由开发者编写的中断服务程序来完成编写的中断服务程序来完成。在编写中断服务程序时要考虑下列问题:在编写中断服务程序时要考虑下列问题:(1 1)因为各中断源的中断服务程序入口地址仅相隔

45、)因为各中断源的中断服务程序入口地址仅相隔8 8个字节个字节,一般容纳不下中断服务程序的执行代码,所以通常在中断服务一般容纳不下中断服务程序的执行代码,所以通常在中断服务程序的入口处存放程序的入口处存放一条无条件转移指令一条无条件转移指令,在,在CPUCPU响应中断时转响应中断时转移到实际中断服务程序的入口去执行。移到实际中断服务程序的入口去执行。6.4 6.4 中断服务与中断返回中断服务与中断返回(2 2)如果在执行实际中断服务程序的过程中不允许高级别的中)如果在执行实际中断服务程序的过程中不允许高级别的中断打断程序的执行,需要在实际中断服务程序的断打断程序的执行,需要在实际中断服务程序的入

46、口处用软件入口处用软件屏蔽屏蔽CPUCPU的中断,而在中断返回前再用软件打开的中断,而在中断返回前再用软件打开CPUCPU中断中断。(3 3)如果在中断服务程序中要使用主程序(或能够被该中断源)如果在中断服务程序中要使用主程序(或能够被该中断源中断的其他程序)所用的寄存器或存储单元,就需要对它们进中断的其他程序)所用的寄存器或存储单元,就需要对它们进行保护,即保护现场。当然,行保护,即保护现场。当然,在保护现场之前应先屏蔽在保护现场之前应先屏蔽CPUCPU的的中断。中断。6.4 6.4 中断服务与中断返回中断服务与中断返回(4 4)因为在)因为在CPUCPU响应串行接口发送响应串行接口发送/接

47、收中断时接收中断时CPUCPU不能使中不能使中断标志位自动复位,因此要在断标志位自动复位,因此要在中断服务程序中使用软件将其中中断服务程序中使用软件将其中断标志位复位。断标志位复位。对电平型外部信号触发中断也要考虑类似的问对电平型外部信号触发中断也要考虑类似的问题。题。(5 5)如果在中断服务程序中进行了现场保护,)如果在中断服务程序中进行了现场保护,在中断返回前一在中断返回前一定要恢复现场定要恢复现场。如果如果CPUCPU的中断被屏蔽了,一定要用软件再打的中断被屏蔽了,一定要用软件再打开开CPUCPU中断中断。然后才是中断服务程序的最后一条语句。然后才是中断服务程序的最后一条语句RETIRE

48、TI,从,从中断服务程序返回主程序。中断服务程序返回主程序。6.4 6.4 中断服务与中断返回中断服务与中断返回(6 6)为了使应用系统能够及时响应各中断源的中断请求,)为了使应用系统能够及时响应各中断源的中断请求,中中断服务程序要尽可能简短断服务程序要尽可能简短,一些可以在主程序中完成的操作,一些可以在主程序中完成的操作,应安排在主程序中来完成,这样可以减少中断处理占用的时间,应安排在主程序中来完成,这样可以减少中断处理占用的时间,提高响应速度。提高响应速度。6.4 6.4 中断服务与中断返回中断服务与中断返回 中断服务函数定义的一般形式为中断服务函数定义的一般形式为:函数类型函数类型 函数

49、名(形式参数表)函数名(形式参数表)interrupt interrupt n nusing musing m 其中,关键字其中,关键字interruptinterrupt后面的后面的n n是中断号,是中断号,n n的取值范围为的取值范围为0-0-3131。编译器从。编译器从8n+38n+3处产生中断向量,具体的中断号处产生中断向量,具体的中断号n n和中断和中断向量取决于不同的单片机芯片。向量取决于不同的单片机芯片。关键字关键字usingusing用于选择工作寄存器组,用于选择工作寄存器组,m m为对应的寄存器组号,为对应的寄存器组号,m m取值为取值为0-30-3,对应,对应5151单片机

50、的单片机的0-30-3寄存器组。寄存器组。中断源中断源中断号中断号n中断向量中断向量8n+3外部中断000003H定时器/计数器中断T01000BH外部中断120013H定时器/计数器中断T13001BH串行口1中断40023HIAP15W4K58S4IAP15W4K58S4单片机常用的中断单片机常用的中断源的中断号如表源的中断号如表6-176-17所示所示6.5 6.5 中断服务函数中断服务函数对于汇编语言,通常在这些中断响应的入口地址处存放一条无条件转移对于汇编语言,通常在这些中断响应的入口地址处存放一条无条件转移指令,使程序跳转到用户安排的中断服务程序的起始地址上去。例如:指令,使程序跳

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片机原理及应用系统设计第6章-中断系统课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|