STC15F2K60S2单片机中断系统.ppt

上传人:小飞机 文档编号:5449539 上传时间:2023-07-08 格式:PPT 页数:54 大小:1.15MB
返回 下载 相关 举报
STC15F2K60S2单片机中断系统.ppt_第1页
第1页 / 共54页
STC15F2K60S2单片机中断系统.ppt_第2页
第2页 / 共54页
STC15F2K60S2单片机中断系统.ppt_第3页
第3页 / 共54页
STC15F2K60S2单片机中断系统.ppt_第4页
第4页 / 共54页
STC15F2K60S2单片机中断系统.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《STC15F2K60S2单片机中断系统.ppt》由会员分享,可在线阅读,更多相关《STC15F2K60S2单片机中断系统.ppt(54页珍藏版)》请在三一办公上搜索。

1、第5章 STC15F2K60S2单片机中断系统,5.1 中断的概念5.2 STC15F2K60S2单片机的中断系统结构5.3 中断允许及其优先级管理5.4 单片机中断处理过程5.5 中断的应用举例,5.1 中断的概念,在单片机应用系统中,中断技术主要用于实时监测与控制,能对外界发生的事件进行及时的处理。中断系统是为使CPU具有对外界紧急事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急的事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方(断点),继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请求CPU中

2、断的请求源称为中断源。,单片机的中断系统有多个中断源,当几个中断源同时向CPU请求中断时,系统会根据其优先级来处理,即先响应中断优先级高的中断源,再响应优先级低的中断源。例如,若规定按键扫描处理优先于显示器输出处理,则CPU在处理显示内容的过程中,可以被按键的动作打断,转而处理键盘扫描问题,待扫描结束后再继续进行显示器处理过程。,图5-1 中断响应和处理过程,5.2 STC15F2K60S2单片机的中断系统结构,5.2.1 中断源 STC15F2K60S2单片机中断系统共有14个中断源,分别为外部中断0(INT0)、定时器T0中断、外部中断1(INT1)、定时器T1中断、串口1中断、A/D转换

3、中断、低压检测中断(LVD)、CCP/PWM/PCA中断、串口2中断、SPI中断、外部中断2()、外部中断3()、定时器T2中断、外部中断4()。除外部中断2()、外部中断3()、定时器T2中断、外部中断4()等4个中断源固定为最低优先级中断外,其它的中断源都具有2个中断优先级,可实现2级中断服务程序嵌套。,STC15F2K60S2单片机中断系统结构示意图如图5-2所示。这些中断源与特殊功能寄存器TCON、SCON、S2CON、CCON、PCON、ADC_CONTR、IE、IE2、INT_CLKO、IP等有关,下面首先介绍与中断源有关的寄存器功能。,STC15F2K60S2单片机中断系统结构示

4、意图,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

5、时运行,为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为串行

6、口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位数据,由硬件

7、置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工作且S

8、M2=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必须

9、由用户在中断服务程序中清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转

10、换控制寄ADC_CONTR中的其他位与中断无关,将在后续相关章节介绍。,4.PCON寄存器 PCON为电源控制寄存器,与低压检测中断有关,PCON格式如下:,LVDF:低压检测标志位,同时也是低压检测中断请求标志位。在正常工作和空闲工作状态时,如果内部工作电压VCC低于低压检测门槛电压,该位自动置1,与低压检测中断是否被允许无关。即在内部工作电压VCC低于低压检测门槛电压时,不管有没有允许低压检测中断,该位都自动为1。该位要用软件清0,清0后,如内部工作电压VCC继续低于低压检测门槛电压,该位又被自动设置为1。在进入掉电工作状态前,如果低压检测电路未被允许可产生中断,则在进入掉电模式后,该低压

11、检测电路不工作以降低功耗。如果被允许可产生低压检测中断,则在进入掉电模式后,该低压检测电路继续工作,在内部工作电压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计数器。

12、CCF2:PCA模块2中断标志。当出现匹配或捕获时该位由硬件置1。该位必须通过软件清0。CCF1:PCA模块1中断标志。与CCF2功能类似。CCF0:PCA模块0中断标志。与CCF2功能类似。,6.SPSTAT寄存器 SPSTAT寄存器是SPI状态寄存器,地址为CDH。SPIF:SPI传输完成标志。当一次串行传输完成时,SPIF置1,此时,如果SPI中断被打开(ESPI1,EA1),则产生中断。当SPI处于主模式且SSIG0时,如果为输入并被驱动为低电平,SPIF也将置1,表示“模式改变”。SPIF标志通过软件向其写入1而清0。WCOL:SPI写冲突标志。在数据传输的过程中如果对SPI数据寄存

13、器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单片机中的各中断源是

14、否开放或禁止,是由内部的中断允许寄存器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、

15、定时器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中断允许位。ET

16、2=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时,禁止外

17、部中断4中断,外部中断4只能下沿触发。EX3:外部中断3()中断允许位,EX3=1时允许外部中断3中断,EX3=0时,禁止外部中断3中断,外部中断3只能下沿触发。EX2:外部中断2()中断允许位,EX2=1时允许外部中断2中断,EX2=0时,禁止外部中断2中断,外部中断2只能下沿触发。T2CLKO、T1CLKO、T0CLKO是时钟输出控制位,与中断无关,将在后续章节中介绍。,3.INT_CLKO寄存器 INT_CLKO(AUXR2)为外部中断2、外部中断3、外部中断4中断允许和时钟输出控制寄存器,地址为8FH。其格式如下:,5.3.2 中断优先级管理寄存器 STC15F2K60S2单片机中除了

18、外部中断2()、外部中断3()、外部中断4()、定时器T2中断等4个中断源固定为最低优先级中断外,其它中断源(外部中断0、定时器T0中断、外部中断1、定时器T1中断、串口1中断、A/D转换中断、低压检测中断(LVD)、CCP/PWM/PCA中断、串口2中断、SPI中断等)都具有两个中断优先级,即高优先级和低优先级,可实现两级中断服务程序嵌套。中断源的优先级由特殊功能寄存器IP和IP2中相应的位进行设置。下面分别介绍这两个优先级管理寄存器。,PPCA:PCA中断优先级控制位。PPCA=0时,PCA中断为低优先级中断(优先级0);PPCA=1时,PCA中断为高优先级中断(优先级1)。PLVD:低压

19、检测中断优先级控制位。PLVD=0时,低压检测中断为低优先级中断(优先级0);PLVD=1时,低压检测中断为高优先级中断(优先级1)。PADC:A/D转换中断优先级控制位。PADC=0时,A/D转换中断为低优先级中断(优先级0);PADC=1时,A/D转换中断为高优先级中断(优先级1)。PS:串口1中断优先级控制位。PS=0时,串口1中断为低优先级中断(优先级0);PS=1时,串口1中断为高优先级中断(优先级1)。,1.IP寄存器IP为中断优先级控制寄存器,地址为B8H,可位寻址。,PT1:定时器1中断优先级控制位。PT1=0时,定时器1中断为低优先级中断(优先级0);PT1=1时,定时器1中

20、断为高优先级中断(优先级1)。PX1:外部中断1优先级控制位。PX1=0时,外部中断1为低优先级中断(优先级0);PX1=1时,外部中断1为高优先级中断(优先级1)。PT0:定时器0中断优先级控制位。PT0=0时,定时器0中断为低优先级中断(优先级0);PT0=1时,定时器0中断为高优先级中断(优先级1)。PX0:外部中断0优先级控制位。PX0=0时,外部中断0为低优先级中断(优先级0);PX0=1时,外部中断0为高优先级中断(优先级1)。,PSPI:SPI中断优先级控制位。PSPI=0时,SPI中断为低优先级中断(优先级0);PSPI=1时,SPI中断为高优先级中断(优先级1)。PS2:串口

21、2中断优先级控制位。PS2=0时,串口2中断为低优先级中断(优先级0);PS2=1时,串口2中断为高优先级中断(优先级1)。,2.IP2寄存器 IP2为中断优先级控制寄存器,主要对串行口2、SPI中断源的中断优先级设置,地址为B5H。其格式如下:,中断优先级控制寄存器IP、IP2的各位都可由用户程序置1和清0。但IP寄存器可位操作,所以可用位操作指令或字节操作指令更新IP的内容。而IP2寄存器的内容只能用字节操作指令来更新。STC15F2K60S2单片机复位后IP、IP2均为00H,各个中断源均为低优先级中断。STC15F2K60S2单片机高优先级的中断请求可以打断低优先级的中断,反之,低优先

22、级的中断请求不可以打断高优先级及相同优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来决定系统响应哪个中断。STC15F2K60S2单片机的各个中断的向量地址、查询次序、优先级、请求标志及中断允许位如表5-1所示。,表5-1 STC15F2K60S2单片机中断向量地址/优先级/请求标志/允许位,当单片机系统中有多个中断源同时向CPU请求中断时,CPU在响应中断源的中断请求时,必须遵循以下基本原则:(1)不同优先级中断源同时申请中断时,先高后低。当多个中断源同时发出中断请求时,优先级高的中断将首先被响应,只有优先级高的中断服务程序执行完毕后,才能响应低优先级的中断。(2)同一优先级的

23、多个中断源同时申请中断时,CPU则按自然优先级从高到低依次响应。其自然优先级顺序如下:,(3)一个正在执行的低优先级可被高优先级中断请求所中断,待高优先级中断处理完毕后再返回低优先级中断,实现中断的嵌套。而高优先级中断不能被低优先级中断所中断。,5.4 单片机中断处理过程,5.4.1 中断的响应条件 当中断源向CPU发出中断请求时,如果中断的条件满足,CPU将进入中断响应周期,STC15F2K60S2单片机响应中断的条件:(1)中断源有请求,相应的中断标志位为1;(2)CPU开放总中断(EA=1);(3)中断允许寄存器相应的中断允许位置1;(4)无同级或高级中断正在处理。满足以上条件,CPU一

24、般会响应中断。单片机CPU在每个指令周期的最后一个时钟周期按优先顺序查询各中断标志,如果查到某个中断标志为1,将在下一个指令周期按优先级的高低顺序进行处理。,在程序运行过程中,并不是任何时刻都可以响应中断,如出现下面情况之一时,单片机不响应中断请求。(1)CPU正在处理同级或高优先级中断;(2)正在执行的指令尚未执行完毕,即当前指令不能执行一半就响应中断;(3)正在执行的指令是中断返回指令RETI或是访问专用寄存器IE或IP的指令时,必须在执行完该指令后还要再执行一条指令才能响应中断。,5.4.2 中断的处理过程 1中断响应(1)将相应的优先级状态触发器置1(阻断其他同级或低级的中断请求)。(

25、2)执行一条硬件LCALL指令,即程序计数器PC的值压入堆栈保存,再将中断服务子程序的入口地址送入PC。2中断处理 执行相应的中断服务程序。3中断返回 执行完中断服务程序后,把中断响应时入堆栈保存的断点地址从堆栈栈顶弹出送回PC,CPU返回原来的断点继续往下执行程序。,5.4.3 中断请求的撤除 STC15F2K60S2单片机的14个中断源中有的中断标志可以由硬件自动撤消,有的必须由软件清除。中断源向CPU发出中断请求后,中断请求信号分别锁存在TCON、SCON、S2CON、ADC_CONTR、CCON、PCON、SPSTAT等特殊功能寄存器中。当某个中断源的请求被CPU响应后,应将相应的中断

26、请求标志位及时清除,否则CPU会再一次响应该中断。硬件自动清除中断标志位:外部中断0、外部中断1、外部中断2、外部中断3、外部中断4、定时器T0、定时器T1、定时器T2的中断请求标志位在响应中断后,硬件会自动清0,用户无须关心。需软件清除中断标志位:串行口1中断标志位TI和RI、串行口2中断标志位S2TI和S2RI、ADC中断标志位ADC_FLAG、SPI中断标志位SPIF、PCA中断标志位CF/CCF0/CCF1/CCF2、低压检测中断标志位LVDF,需要在中断服务程序中用软件将其清0。,注意:对于STC15F2K60S2单片机外部中断来说,由于系统每个时钟对外部中断引脚采样1次,所以为了确

27、保被检测到,输入信号应该至少维持2个时钟。不管是下降沿触发还是上升沿触发,要求必须在相应的引脚维持高电平和低电平至少1个时钟以上,才能确保该下降沿或上升沿被CPU检测到。,5.5 中断的应用举例,中断处理程序的编写 中断处理程序一般包括中断控制程序和中断服务程序(函数)两部分组成。1.中断控制程序 中断控制程序主要完成中断的初始化,一般放在主程序即可,主要完成以下几个任务:(1)根据需要设定相关变量或寄存器的初始值;(2)根据需要在IP、IP2寄存器中设定中断优先级;(3)在IE、IE2寄存中把相应中断源的对应位置1,开放相应的中断;(4)CPU开放总中断EA。,2中断服务程序(函数)中断服务

28、程序完成对具体中断源的处理,不同的应用系统的中断服务程序(函数)有所不同,一般包括以下几个内容:(1)根据需要选择需要保护和恢复现场 当CPU进入中断服务程序后,如果使用与主程序相同的寄存器时,必定会破坏该单元中原来的数据,如果不加以保护,则中断返时将导致主程序的混乱。因此,在进行中断服务程序后,应根据需要保护现场,中断返回前恢复现场。在C51语言编程中,则在中断函数中声明局部变量,也可以选择不同的寄存器组,保护和恢复现场不需要过多考虑。,(2)根据需要清除中断请求标志位,有的标志位不能通过硬件自动清除,如RI和TI等,因此,要在中断服务程序中用软件清除相应的标志位,以免造成CPU再次响应中断

29、。采用C51编写中断函数,其一般格式如下:返回值类型 函数名(形式参数表)interrupt n using n 其中,interrupt关键字后的n为对应中断源编号,告诉编译器中断程序的入口地址。using是可选项,其后面的n为选择寄存器组,可以是0、1、2、3,分别对应RAM中的4个寄存器组。STC15F2K60S2单片机各个中断源所对应的中断服务程序入口地址及中断号如表5-2所示。,如果使用C语言编程中断函数时,则以中断号来区分每一个中断。例如:void INT0_ISR(void)interrupt 0/外部中断0中断函数;void T0_ISR(void)interrupt 1/定时

30、器T0中断函数;void INT1_ISR(void)interrupt 2/外部中断1中断函数;void T1_ISR(void)interrupt 3/定时器T1中断函数;void UART1_ISR(void)interrupt 4/串行通信中断函数;void ADC_ISR(void)interrupt 5/ADC中断函数;void LVD_ISR(void)interrupt 6/ADC中断函数;void PCA_ISR(void)interrupt 7/PCA中断函数;void UART2_ISR(void)interrupt 8/串行通信2中断函数;void SPI_ISR(vo

31、id)interrupt 9/SPI中断函数;void INT2_ISR(void)interrupt 10/外部中断2中断函数;void INT3_ISR(void)interrupt 11/外部中断3中断函数;void T2_ISR(void)interrupt 12/定时器T2中断函数;void INT4_ISR(void)interrupt 16/外部中断4中断函数;,中断应用举例【例5-1】如图5-3所示,当按键K1按下时,P1口的8个LED灯闪烁5次,采用中断方式实现,试编程实现。分析:由于按键K1连接在INT0/P3.2口,采用外部中断0实现,LED灯闪烁一次,即亮一下又熄灭,共

32、循环5次,在中断函数中实现。,#include/包含头文件void delay(unsigned int i)/延时函数 while(-i0);void main()/主函数 EX0=1;/开放外部中断0 IT0=1;/设定外部中断0为下降沿触发方式 EA=1;/开放总中断 while(1);/等待 void INT0_ISR()interrupt 0/外部中断0函数 unsigned char i;for(i=0;i5;i+)/循环5次 P1=0 x00;delay(1000);P1=0 xff;delay(1000);,C51参考程序如下:,【例5-2】如图5-4所示,按键K1接在P3.2

33、口,按键K2接在P3.3口,当无按键按下时,LED灯闪烁,当K1按下时,使LED灯左循环两遍,当K2按下时,使LED灯右循环两遍。要求K2执行的优先权高于K1,即当K1按下时,如果此时K2按下,则先执行K2,K2执行完后再继续执行K1功能,试编程。分析:K1、K2分别接在外部中断0和外部中断1,根据题意,外部中断1的优先级要高于外部中断0的优先级,这就是中断源的嵌套。由于低优先级可被高优先级中断,但高优先级不能被低优先级中断,系统采用两个中断函数实现。,#include/包含头文件#include/包含_crol_()函数头文件void delay(unsigned int i)/延时函数 w

34、hile(-i);void main()/主函数 EX0=1;/开放外部中断0 IT0=1;/设定外部中断0为下降沿触发方式 EX1=1;/开放外部中断1 IT1=1;/设定外部中断1为下降沿触发方式 PX0=0;/设定外部中断0为低优先级 PX1=1;/设定外部中断1为高优先级 EA=1;/开放总中断 while(1)/循环等待 P1=0 x00;/LED灯亮 delay(10000);P1=0 xff;/LED灯灭 delay(10000);,参考程序如下:,void INT0_ISR()interrupt 0/外部中断0函数,LED灯循环左移 unsigned char i,led;le

35、d=0 xfe;for(i=0;i16;i+)/左循环2遍 P1=led;delay(10000);led=_crol_(led,1);/循环左移 void INT1_ISR()interrupt 2/外部中断1函数,LED灯循环右移 unsigned char j,led;led=0 xfe;for(j=0;j16;j+)/右循环2遍 P1=led;delay(10000);led=_cror_(led,1);/循环右移,【例5-3】如图5-4所示,按键K1接在INT0/P3.2口,利用外部中断0的上升沿和下降沿均可触发方式,统计INT0/P3.2口引脚输入脉冲的跳变次数,并在P1的LED显

36、示出来。,#include/包含头文件void main()/主函数 IT0=0;/设定外部中断0为上升沿和下降沿触发方式 EX0=1;/开放外部中断0 EA=1;/开放总中断 while(1);/循环等待 void INT0_ISR()interrupt 0/外部中断0函数 P1+;/统计脉冲跳变次数,参考程序如下:,习 题,5-1 什么是中断?中断有哪些作用?5-2 STC15F2K60S2单片机有几个中断源?并写出各中断源的入口地址和 对应的中断号?5-3 STC15F2K60S2单片机响应中断后,需要用软件清除中断标位的中源有哪些?5-4 STC15F2K60S2单片机外部中断0、外部中断1、外部中断2、外部中断3各有哪些触发方式?如何设置?5-5 如果在STC15F2K60S2单片机中要设置中断源的优先级为:定时器1串口中断1外部中断0 外部中断1,应如何设置?5-6 简述STC15F2K60S2单片机的中断响应条件?5-7 简述C51中断函数编写格式?试举例说明?,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号