您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第5章-STC15F2K60S2单片机中断系统
第5章STC15F2K60S2单片机中断系统5.1中断的概念5.2STC15F2K60S2单片机的中断系统结构5.3中断允许及其优先级管理5.4单片机中断处理过程5.5中断的应用举例5.1中断的概念在单片机应用系统中,中断技术主要用于实时监测与控制,能对外界发生的事件进行及时的处理。中断系统是为使CPU具有对外界紧急事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急的事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方(断点),继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请求CPU中断的请求源称为中断源。单片机的中断系统有多个中断源,当几个中断源同时向CPU请求中断时,系统会根据其优先级来处理,即先响应中断优先级高的中断源,再响应优先级低的中断源。例如,若规定按键扫描处理优先于显示器输出处理,则CPU在处理显示内容的过程中,可以被按键的动作打断,转而处理键盘扫描问题,待扫描结束后再继续进行显示器处理过程。主程序继续执行主程序断点响应低级中断请求返回主程序中断服务程序断点低级中断服务程序响应高级中断请求返回低级中断程序继续执行图5-1中断响应和处理过程5.2STC15F2K60S2单片机的中断系统结构5.2.1中断源STC15F2K60S2单片机中断系统共有14个中断源,分别为外部中断0(INT0)、定时器T0中断、外部中断1(INT1)、定时器T1中断、串口1中断、A/D转换中断、低压检测中断(LVD)、CCP/PWM/PCA中断、串口2中断、SPI中断、外部中断2()、外部中断3()、定时器T2中断、外部中断4()。除外部中断2()、外部中断3()、定时器T2中断、外部中断4()等4个中断源固定为最低优先级中断外,其它的中断源都具有2个中断优先级,可实现2级中断服务程序嵌套。INT2INT3INT4INT2INT3INT4STC15F2K60S2单片机中断系统结构示意图如图5-2所示。这些中断源与特殊功能寄存器TCON、SCON、S2CON、CCON、PCON、ADC_CONTR、IE、IE2、INT_CLKO、IP等有关,下面首先介绍与中断源有关的寄存器功能。STC15F2K60S2单片机中断系统结构示意图5.2.2中断源标志寄存器1.TCON寄存器TCON寄存器为定时/计数器T0、T1的控制寄存器,该寄存器包括了T0和T1的溢出中断请求标志位TF0和TF1,也包括了外部中断0(INT0)和外部中断1(INT1)的中断请求标志位IE0和IE1,以及外部中断0和外部中断1的中断源的触发方式。TCON寄存器的字节地址为88H,可位寻址,其格式如下:TF1:定时/计数器T1的溢出中断标志位。当启动T1计数后,从初值开始计数,当产生溢出后由硬件将TF1置1,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清0,TF1也可由软件清0。TR1:定时/计数器T1的运行控制位。当TR1为1时运行,为0时停止运行。TF0:定时/计数器T0溢出中断标志。其功能与TF1类似。TR0:定时/计数器T0的运行控制位。其功能与TR1类似。IE1:外部中断1请求源(INT1/P3.3)标志位。IE1为1时,外部中断1向CPU请求中断,当CPU响应该中断时由硬件将IE1清0。IT1:外部中断1中断触发方式选择位,当IT1为0时,INT1/P3.3引脚上的上升沿或下降沿均可触发外部中断1。IT1为1时,为下降沿触发方式。IE0:外部中断0请求源(INT0/P3.2)标志位。与IE1功能类似。IT0:外部中断0中断触发方式选择位,功能与IT1类似。2.SCON和S2CON寄存器SCON为串行口1控制寄存器,包括了串行口发送和接收中断的请求标志位TI和RI。SCON寄存器的字节地址为98H,可位寻址,其格式如下:RI:串行口1接收中断标志。若串行口1允许接收且以方式0工作,则每当接收到第8位数据时置1;若以方式1、方式2或方式3工作且SM2=0时,则每当接收到停止位的中间时置1;当串行口以方式2或方式3工作且SM2=1时,则仅当接收到的第9位数据RB8为1后,同时还要接收到停止位的中间时置1。RI为1表示接收器已接收到一帧数据,串行口1正向CPU申请中断(接收中断),RI必须由用户的中断服务程序清0。TI:串行口1发送中断标志。串行口1以方式0发送时,每当发送完8位数据,由硬件置1;若以方式1、方式2或方式3发送时,在发送停止位的开始时置1。TI为1表示串行口已发送一帧数据,串行口1正在向CPU申请中断(发送中断)。值得注意的是,CPU响应发送中断请求,转向执行中断服务程序时并不将TI清0,TI必须由用户在中断服务程序中清0。SCON寄存器的其他位与中断无关,将在后续相关章节介绍。S2CON为串行口2控制寄存器,字节地址为9AH,S2CON中各位功能与串口1控制寄存器SCON类似,其中S2TI和S2RI为串口2的发送和接收中断标志位。S2RI:串行口2接收中断标志。若串行口2允许接收且以方式0工作,则每当接收到第8位数据时置1;若以方式1、方式2或方式3工作且SM2=0时,则每当接收到停止位的中间时置1;当串行口2以方式2或方式3工作且S2SM2=1时,则仅当接收到的第9位数据S2RB8为1后,同时还要接收到停止位的中间时置1。S2RI为1表示串行口2已接收到一帧数据,正向CPU申请中断(接收中断),S2RI必须由用户的中断服务程序清0。S2TI:串行口2发送中断标志。串行口2以方式0发送时,每当发送完8位数据,由硬件置1;若以方式1、方式2或方式3发送时,在发送停止位的开始时置1。S2TI=1表示串行口2已发送完一帧数据,正在向CPU申请中断(发送中断)。值得注意的是,CPU响应发送中断请求,转向执行中断服务程序时并不将S2TI清0,S2TI必须由用户在中断服务程序中清0。3.ADC_CONTR寄存器ADC_CONTR为A/D转换控制寄存器,字节地址为BCH,ADC_POWER:ADC电源控制位。当ADC_POWER为0时,关闭ADC电源;当ADC_POWER为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时,开始转换,转换结束后为0。A/D转换控制寄ADC_CONTR中的其他位与中断无关,将在后续相关章节介绍。4.PCON寄存器PCON为电源控制寄存器,与低压检测中断有关,PCON格式如下:LVDF:低压检测标志位,同时也是低压检测中断请求标志位。在正常工作和空闲工作状态时,如果内部工作电压VCC低于低压检测门槛电压,该位自动置1,与低压检测中断是否被允许无关。即在内部工作电压VCC低于低压检测门槛电压时,不管有没有允许低压检测中断,该位都自动为1。该位要用软件清0,清0后,如内部工作电压VCC继续低于低压检测门槛电压,该位又被自动设置为1。在进入掉电工作状态前,如果低压检测电路未被允许可产生中断,则在进入掉电模式后,该低压检测电路不工作以降低功耗。如果被允许可产生低压检测中断,则在进入掉电模式后,该低压检测电路继续工作,在内部工作电压VCC低于低压检测门槛电压后,产生低压检测中断,可将MCU从掉电状态唤醒。5.CCON寄存器CCON寄存器是可编程计数器阵列(PCA)模块控制寄存器,地址为D8H,可位寻址。CCON寄存器格式如下:CF:PCA计数器阵列溢出标志位。当PCA计数器溢出时,CF由硬件置1。如果CMOD寄存器的ECF位置1,则CF标志可用来产生中断。CF位可通过硬件或软件置1,但只可通过软件清0。CR:PCA计数器阵列运行控制位。该位为1时,启动PCA计数器阵列计数;该位为0时,关闭PCA计数器。CCF2:PCA模块2中断标志。当出现匹配或捕获时该位由硬件置1。该位必须通过软件清0。CCF1:PCA模块1中断标志。与CCF2功能类似。CCF0:PCA模块0中断标志。与CCF2功能类似。6.SPSTAT寄存器SPSTAT寄存器是SPI状态寄存器,地址为CDH。SPIF:SPI传输完成标志。当一次串行传输完成时,SPIF置1,此时,如果SPI中断被打开(ESPI=1,EA=1),则产生中断。当SPI处于主模式且SSIG=0时,如果为输入并被驱动为低电平,SPIF也将置1,表示“模式改变”。SPIF标志通过软件向其写入1而清0。WCOL:SPI写冲突标志。在数据传输的过程中如果对SPI数据寄存器SPDAT执行写操作,WCOL将置1,WCOL标志通过软件向其写入1而清0。使用单片机的外部中断0和外部中断1,当外部中断0发出中断请求后点亮蓝色LED灯,当外部中断1发出中断请求后点亮黄色LED灯。如果在信号同时到达的条件下,需要指定那个LED灯先亮,如何实现?如果两个中断的请求信号同时到达单片机,哪个LED灯先点亮?5.3中断允许及其优先级管理STC15F2K60S2单片机的中断允许控制及优先级控制分别由中断允许寄存器IE、IE2、INT_CLKO(AUXR2)以及中断优先级控制寄存器IP、IP2等控制。5.3.1中断允许寄存器STC15F2K60S2单片机中的各中断源是否开放或禁止,是由内部的中断允许寄存器IE、IE2、INT_CLKO控制。中断采用两级控制方式,即总中断和各中断源分别独立控制。EA:CPU的总中断允许控制位,EA=1,CPU开放总中断,EA=0,CPU屏蔽所有的中断申请。EA的作用是使中断允许形成两级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制。ELVD:低压检测中断允许位。ELVD=1,允许低压检测中断;ELVD=0,禁止低压检测中断。EADC:A/D转换中断允许位。EADC=1,允许A/D转换中断;EADC=0,禁止A/D转换中断。1.IE寄存器IE寄存器主要负责总中断允许控制和外部中断0、外部中断1、定时器T0、定时器T1、串口1、A/D转换、低压检测等中断源中断允许控制,IE的字节地址为A8H,可位寻址。ES:串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止串行口1中断。ET1:定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。EX1:外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。ET0:定时/计数器T0的溢出中断允许位。ET0=1,允许T0中断;ET0=0禁止T0中断。EX0:外部中断0中断允许位。EX0=1,允许外部中断0中断;EX0=0禁止外部中断0中断。ET2:定时器T2中断允许位。ET2=1时,允许T2中断;ET2=0,禁止T2中断。ESPI:SPI中断允许位。ESPI=1,允许SPI中断;SPI=0,禁止SPI中断。ES2:串行口2中断允许位。ES2=1,允许串行口2中断;ES2=0,禁止串行口2中断。STC15F2K60S2单片机复位以后,IE和IE2被清0,所有的中断被禁止。若要开放某些中断源,则可通过程序把IE和IE2中的相应控制位置1,同时还必须把总中断EA置1。2.IE2寄存器IE2寄存器主要负责定时器T2、SPI和串口2等中断源的中断允许控制,地址为AFH。其格式如下:EX4:外部中断4()中断允许位,EX4=1时允许外部中断4中断,EX4=0时,禁止外部中断4中断,外部中断4只能下沿触发。EX3:外部中断3()中断允许位,EX3=1时允许外部中断3中断,EX3=0时,禁止外部中断3中断,外部中断3只能下沿触发。EX2:外部中断2()中断允许位,EX2=1时允许外部中断2中断,EX2=0时,禁止外部中断2中断,外部中断2只能下沿触发。T2CLKO、T1CLKO、T0CLKO是
本文标题:第5章-STC15F2K60S2单片机中断系统
链接地址:https://www.777doc.com/doc-5853528 .html