第5章89C51的中断系统_第1页
第5章89C51的中断系统_第2页
第5章89C51的中断系统_第3页
第5章89C51的中断系统_第4页
第5章89C51的中断系统_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 CPU处理事件的过程称为处理事件的过程称为CPU的的中断响应过中断响应过程程。 对事件整个处理过程称为对事件整个处理过程称为中断处理(或中断中断处理(或中断服务)服务)。 能够实现中断处理的功能部件称为能够实现中断处理的功能部件称为中断系统。中断系统。 产生中断请求的源称为产生中断请求的源称为中断请求源中断请求源。 中断源向中断源向CPU提出的处理请求称为提出的处理请求称为中断请求中断请求(或(或中断申请中断申请)。)。 CPU完成中断服务程序,继续执行被中断的完成中断服务程序,继续执行被中断的主程序称为主程序称为中断返回中断返回。 89C51的中断系统:的中断系统: 五个中断源五个中断源

2、两个中断优先级两个中断优先级 可实现两级中断服务程序嵌套可实现两级中断服务程序嵌套 每一个中断源可由软件独立地控制为允许中断或关每一个中断源可由软件独立地控制为允许中断或关中断状态;每一个中断源的中断级别可由软件来设置。中断状态;每一个中断源的中断级别可由软件来设置。CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断源中断标志位中断标志位 单片机中有两个中断优先级,即高优先级中断和单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(低优先级中断,前者优先权高于后者(可软件设置可软件设置,在程序中设置,相应位在程序中设置,相应位=1=1,为

3、高优先级);,为高优先级); 同一优先级别的中断源按照自然优先级顺序确定同一优先级别的中断源按照自然优先级顺序确定优先级别(优先级别(硬件形成硬件形成,无法改变)。,无法改变)。中断允许中断允许ESET0EX0EX1ET1EA自然优先级自然优先级高低优先控制优先控制PSPT0PX0PX1PT1 89C51的中断系统结构图的中断系统结构图中断标中断标志位志位中断源中断源允许允许总允许总允许中断优中断优先级先级89C51单片机有单片机有5个个中断请求源中断请求源: 外部输入中断源外部输入中断源INT0(P3.2),中断请求标志为,中断请求标志为IE0 外部输入中断源外部输入中断源INT1(P3.3

4、),中断请求标志为中断请求标志为IE1 定时器定时器T0的溢出的溢出,中断请求标志为,中断请求标志为TF0 定时器定时器T1的溢出的溢出,中断请求标志为,中断请求标志为TF1 串行口发送或接收中断源串行口发送或接收中断源,中断请求标志为发送中断,中断请求标志为发送中断TI或接收中断或接收中断RI中断请求源的中断请求标志位分别由中断请求源的中断请求标志位分别由TCON和和SCON的相应位锁定的相应位锁定 TCON为定时器为定时器/计数器的控制寄存器,字节地址为计数器的控制寄存器,字节地址为88H SCON为串口控制寄存器,字节地址为为串口控制寄存器,字节地址为98H TCONlIT0:外部中断:

5、外部中断0的中断触发方式控制位。的中断触发方式控制位。lIT0=0时,外部中断时,外部中断0程控为电平触发方式。程控为电平触发方式。lIT0=1时,外部中断时,外部中断0程控为边沿触发方式。程控为边沿触发方式。 TCONlIE0:外部中断:外部中断0的中断请求标志。的中断请求标志。 INT1(P3.2)l当当IT0=0,CPU在每一个机器周期在每一个机器周期S5P2期间采样外期间采样外部中断请求引脚的输入电平。若外部中断部中断请求引脚的输入电平。若外部中断0请求为低请求为低电平,则使电平,则使IE0置置1;若为高电平,则使;若为高电平,则使IE0清清0l当当IT0=1,如果在相继的两个机器周期

6、采样过程中,如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断一个机器周期采样到外部中断0请求引脚为高电平,请求引脚为高电平,接着的下一个机器周期采样到为低电平(负脉冲宽度接着的下一个机器周期采样到为低电平(负脉冲宽度只是保持只是保持12个时钟周期),则使个时钟周期),则使IE0置置1。直到。直到CPU响应该中断时,才由硬件使响应该中断时,才由硬件使IE1清清0lSETB IT0 TCONlTF0:定时器:定时器0的溢出中断标志。的溢出中断标志。lT0被启动计数后,从初值做加被启动计数后,从初值做加1计数,计满溢出后由计数,计满溢出后由硬件置位硬件置位TF0,同时向,同时向CPU发

7、出中断请求,此标志一发出中断请求,此标志一直保持到直保持到CPU响应中断后才由硬件自动清响应中断后才由硬件自动清0。也可由。也可由软件查询该标志,并由软件清软件查询该标志,并由软件清0。l当单片机复位后,当单片机复位后,TCON被清被清0,则,则CPU关中断,关中断,所有中断请求被禁止。所有中断请求被禁止。 SCONlTI串行口发送中断请求标志位串行口发送中断请求标志位l当当CPU将一个要发送的数据写入串行口发送缓冲器时,将一个要发送的数据写入串行口发送缓冲器时,就启动发送。每发送完一个串行帧,硬件使就启动发送。每发送完一个串行帧,硬件使TI自动置自动置1l注意:当注意:当CPU响应中断时,响

8、应中断时,TI不能由硬件清不能由硬件清0,必须由,必须由软件清软件清0。 SCONlRI串行口接收中断请求标志位串行口接收中断请求标志位l当允许串行口接收数据时,每接收完一个串行帧,硬当允许串行口接收数据时,每接收完一个串行帧,硬件使件使RI自动置自动置1。同样,。同样,RI必须由软件清必须由软件清0l串行中断请求由串行中断请求由TI和和RI的逻辑或得到,即无论是发送的逻辑或得到,即无论是发送标志标志TI还是接收标志还是接收标志RI,都会产生串行中断请求。,都会产生串行中断请求。l中断优先级管理遵循的基本原则是:中断优先级管理遵循的基本原则是:l(1)低优先级可被高优先级中断,反之不能低优先级

9、可被高优先级中断,反之不能l(2)任何一种中断,一旦得到响应,不会被它的同任何一种中断,一旦得到响应,不会被它的同级中断源中断级中断源中断l中断系统内部设置了两个用户不可访问的优中断系统内部设置了两个用户不可访问的优先级状态触发器先级状态触发器l一个是高优先级状态触发器,置一个是高优先级状态触发器,置1 1时表示当前服务时表示当前服务的中断是高优先级的,以阻止其他中断申请;的中断是高优先级的,以阻止其他中断申请;l另一个是低优先级状态触发器,置另一个是低优先级状态触发器,置1 1时表示当前服时表示当前服务的中断是低优先级的,它允许被高优先级的中断务的中断是低优先级的,它允许被高优先级的中断申请

10、所中断。申请所中断。l当系统复位时,当系统复位时,IP寄存器被清寄存器被清0,将,将5个中个中断源均设置为低优先级中断。断源均设置为低优先级中断。l如果同一级的几个中断源同时向如果同一级的几个中断源同时向CPU申请申请中断,中断,CPU便通过内部硬件查询逻辑按自便通过内部硬件查询逻辑按自然优先级决定响应顺序。然优先级决定响应顺序。中断控制允许寄存器中断控制允许寄存器IE:IE字节地址为字节地址为A8H。通过对。通过对IE的编程写入,控制的编程写入,控制CPU对中断源的开放或禁止,以及对每一中断源是否允许中对中断源的开放或禁止,以及对每一中断源是否允许中断。断。lEACPU中断允许总控制位。中断

11、允许总控制位。lEA=1,CPU开放中断开放中断.lEA=0,CPU屏蔽所有的中断请求,即关中断。屏蔽所有的中断请求,即关中断。lEX0外部中断外部中断0允许位;允许位;lET0定时定时/计数器计数器T0中断允许位;中断允许位;lEX1外部中断外部中断1允许位;允许位;lET1定时定时/计数器计数器T1中断允许位;中断允许位;lES串行口中断允许位串行口中断允许位;lMOV IE,#82H;1000 0010Bl也可以用下面的位操作指令实现:也可以用下面的位操作指令实现:SETB EASETB ET0中断优先级寄存器中断优先级寄存器IP:中断系统具有两级中断优先级管理。每一个中断源均可中断系统

12、具有两级中断优先级管理。每一个中断源均可通过对中断优先级寄存器通过对中断优先级寄存器IP的设置,选择高优先级中断或的设置,选择高优先级中断或低优先级中断,并可实现二级中断嵌套。低优先级中断,并可实现二级中断嵌套。IP的字节地址为的字节地址为0B8H,通过对,通过对IP的编程,可实现将的编程,可实现将l个个中断源分别设置为高优先级中断或低优先级中断。中断源分别设置为高优先级中断或低优先级中断。lPS串行口中断优先级设定位。串行口中断优先级设定位。lPS=1,高优先级,高优先级lPS=0,低优先级,低优先级lPX0 外部中断外部中断0优先级设定位;优先级设定位;lPT0 定时定时/计数器计数器T0

13、优先级设定位优先级设定位;lPX1 外部中断外部中断1优先级设定位;优先级设定位;lPT1 定时定时/计数器计数器T1优先级设定位;优先级设定位;例例: :设置设置IPIP寄存器的初始值,使寄存器的初始值,使2 2个外中断请求个外中断请求为高优先级,其它中断请求为低优先级。为高优先级,其它中断请求为低优先级。(1)用位操作指令)用位操作指令 SETB PX0 ;2个外中断为高优先级个外中断为高优先级 SETB PX1 CLR PS ;串口为低优先级中断;串口为低优先级中断CLR PT0 ;2个定时器个定时器/计数器低优先级中断计数器低优先级中断CLR PT1(2)用字节操作指令)用字节操作指令

14、 MOV IP,#05H或:或:MOV 0B8H,#05H ;B8H为为IP寄存器的寄存器的字节地址字节地址例:例:假设允许外部中断假设允许外部中断0中断,并设定它为高级中断,并设定它为高级中断,其它中断源为低级中断,采用跳沿触中断,其它中断源为低级中断,采用跳沿触发方式。发方式。在主程序中编写如下程序段:在主程序中编写如下程序段: SETB EA ;CPU开中断开中断 SETB ET0 ;允许外中断;允许外中断0产生中断产生中断 SETB PX0 ;外中断;外中断0为高级中断为高级中断 SETB IT0 ;外中断;外中断0为跳沿触发方式为跳沿触发方式CPU响应中断的基本条件如下:响应中断的基

15、本条件如下:有中断源发出中断申请;有中断源发出中断申请;中断总允许位中断总允许位EA=1,即,即CPU开放中断;开放中断; 无同级或更高级的中断正在被服务;无同级或更高级的中断正在被服务;请求中断的中断源的中断允许位置请求中断的中断源的中断允许位置1,即该中断源可以,即该中断源可以向向CPU发中断申请。发中断申请。中断响应过程:中断响应过程: 将相应的优先级状态触发器置将相应的优先级状态触发器置1; 由硬件清除相应的中断请求标志;由硬件清除相应的中断请求标志; 执行一条由硬件生成的长调用指令执行一条由硬件生成的长调用指令LCALL。该指令。该指令将自动把断点地址将自动把断点地址(PC值值)压入

16、堆栈保护起来。然后将对压入堆栈保护起来。然后将对应的中断入口地址送入程序计数器应的中断入口地址送入程序计数器PC,使程序转向该中,使程序转向该中断入口地址去执行中断服务程序。断入口地址去执行中断服务程序。 中断返回:中断返回:中断服务程序的最后一条是返回指令中断服务程序的最后一条是返回指令RETI。RETI指令指令的执行标志着中断服务程序的结束,该指令自动将断点的执行标志着中断服务程序的结束,该指令自动将断点地址从栈顶弹出,装入程序计数器地址从栈顶弹出,装入程序计数器PC,使程序返回到被,使程序返回到被中断的程序断点处,继续向下执行。中断的程序断点处,继续向下执行。中断响应封锁:中断响应封锁:

17、CPU正在执行同级或高一级的中断服务程序;正在执行同级或高一级的中断服务程序;现行机器周期不是正在执行的指令的最后一个机器周期,现行机器周期不是正在执行的指令的最后一个机器周期,即现行指令完成前不响应任何中断请求;即现行指令完成前不响应任何中断请求;当前正在执行的是中断返回指令当前正在执行的是中断返回指令RETI或访问特殊功能寄或访问特殊功能寄存器存器IE或或IP的指令。也就是说,在执行的指令。也就是说,在执行RETI或是访问或是访问IE、IP的指令后,至少需要再执行的指令后,至少需要再执行条其他指令,才会响应条其他指令,才会响应中断请求。中断请求。若要在执行当前中断程序时禁止更高优先级中断,

18、可先若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭用软件关闭CPU中断,或禁止某中断源中断,在中断返中断,或禁止某中断源中断,在中断返回前再开放中断回前再开放中断。中断响应请求的撤销:中断响应请求的撤销:1.定时器定时器/计数器中断请求,自动撤销。计数器中断请求,自动撤销。2.外部中断请求撤销外部中断请求撤销(1)跳变沿外部中断请求是自动撤销的。跳变沿外部中断请求是自动撤销的。(2)电平方式外部中断请求的撤销是需要外部电路的。电平方式外部中断请求的撤销是需要外部电路的。3.串行口中断请求的撤销只能使用软件方法撤销。串行口中断请求的撤销只能使用软件方法撤销。CLR TI ;清;清TI

19、标志位标志位CLR RI ;清;清RI标志位标志位外部中断响应时间:外部中断响应时间:从查询中断请求标志位到转向中从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。断服务入口地址所需的机器周期数。(1)最快响应时间)最快响应时间-以外部中断的电平触发为最快。以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期从查询中断请求信号到中断服务程序需要三个机器周期l 1个周期(查询)个周期(查询)2个周期(长调用个周期(长调用LCALL)外部中断响应时间:外部中断响应时间:从查询中断请求标志位到转向中从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。断服务入

20、口地址所需的机器周期数。在一个单一中断的系统中,在一个单一中断的系统中,89C51单片机对外部中断请单片机对外部中断请求的响应时间总是在求的响应时间总是在3-8个机器周期之间个机器周期之间(2)最长时间)最长时间l若当前指令是若当前指令是RET、RETI和和IP、IE指令,紧接着下一指令,紧接着下一条是乘除指令发生,则最长为条是乘除指令发生,则最长为8个周期:个周期:l2个周期执行当前指令(其中含有个周期执行当前指令(其中含有1个周期查询)个周期查询)4个周期乘除指令个周期乘除指令2个周期长调用个周期长调用8个周期。个周期。lSETB EA ; 总中断允许总中断允许lSETB EX1 ;INT

21、1允许允许lSETB ET1 ;TF1允许允许lSETB ES ;TI 和和RI允许允许lSETB PS ; TI 和和RI高优先级别高优先级别lSETB PT1 ;TF1高优先级别高优先级别l SETB PX0 ;INT0高优先级别高优先级别则则: _可以被响应可以被响应. A. CPU 正在执行正在执行INT1中断中断,TF1请求请求. B. CPU正在执行正在执行TF1中断中断, TI请求请求. C. CPU正在执行正在执行INT1中断中断, INT0请求请求 . D. CPU正执行主程序正执行主程序, TF1出现请求出现请求(2)设置中断优先级寄存器)设置中断优先级寄存器IP。(1)设

22、置中断允许控制寄存器)设置中断允许控制寄存器IE (4)编写中断服务程序,处理中断请求。)编写中断服务程序,处理中断请求。(3)对外中断源,是采用电平触发还是跳沿触发。)对外中断源,是采用电平触发还是跳沿触发。前前3 3条一般放在主程序的初始化程序段中条一般放在主程序的初始化程序段中中断服务程序设计的任务:中断服务程序设计的任务:有有5个中断源,两个中断优先级,可以实现个中断源,两个中断优先级,可以实现两级中断服务程序嵌套。两级中断服务程序嵌套。中断源中断源中断入口地址中断入口地址 外部中断外部中断0 /INT0 0003H 定时器定时器0 T0 000BH 外部中断外部中断1 /INT1 0

23、013H 定时器定时器1 T1 001BH 串行口串行口 0023H中断源中断源常用的主程序结构如下:常用的主程序结构如下:ORG 0000HLJMP MAINORG X3X2X1X0 ; X3X2X1X0为某中断源中断入口为某中断源中断入口LJMP INT ;为某中断源的入口标号为某中断源的入口标号 ORG Y3Y2Y1Y0H;主程序入口地址;主程序入口地址MAIN:主:主 程程 序序INT:中断服务程序:中断服务程序采用中断时的主程序结构:采用中断时的主程序结构:若有多个中断源,则按地址由小到大排列多个中断入口若有多个中断源,则按地址由小到大排列多个中断入口中断服务子程中断服务子程序的流程

24、:序的流程:例例:根据图中中断服务程序流程,编出中断服务程序。:根据图中中断服务程序流程,编出中断服务程序。假设,现场保护只需将假设,现场保护只需将PSW和和A的内容压入堆栈中的内容压入堆栈中保护。保护。 INT:CLR EA;CPU关中断关中断PUSH PSW;现场保护;现场保护PUSH ACC; SETB EA;CPU开中断开中断 中断处理程序段中断处理程序段 CLR EA;CPU关中断关中断POP ACC;现场恢复;现场恢复POP PSWSETB EA;CPU开中断开中断RETI;中断返回,恢复断点;中断返回,恢复断点几点说明:几点说明:(1)现场保护仅涉及到)现场保护仅涉及到PSW和和

25、A的内容,如还有其的内容,如还有其它需保护的内容,只需要在相应的位置再加几条它需保护的内容,只需要在相应的位置再加几条PUSH和和POP指令即可。指令即可。(2) “中断处理程序段中断处理程序段”,应根据任务的具体要求,应根据任务的具体要求,来编写。来编写。(3)如果本中断服务程序不允许被其它的中断所中)如果本中断服务程序不允许被其它的中断所中断。可将断。可将“中断处理程序段中断处理程序段”前后的前后的“SETB EA”和和“CLR EA”两条指令去掉。两条指令去掉。(4)中断服务程序的最后一条指令必须是返回指令)中断服务程序的最后一条指令必须是返回指令RETI。l在如图所示的电路中,用在如图

26、所示的电路中,用P1口输出控制的口输出控制的8只发光二极管,实现只发光二极管,实现8位二进制计数器,对位二进制计数器,对INT0上出现的脉冲进行计数。上出现的脉冲进行计数。脉冲产生电路脉冲产生电路显示电路显示电路 ORG 0000H AJMP MAIN ;转主程序;转主程序 ORG 0003H ;外中断入口地址;外中断入口地址 AJMP SER ;中断服务程序;中断服务程序 MAIN: SETB IT0 ;设定外中断;设定外中断0为边沿触发为边沿触发 SETB EX0 ;开外中断;开外中断0允许允许 SETB EA ;开;开CPU中断允许中断允许 CLR A ;计数单元清;计数单元清0 MOV P1,A ;清显示;清显示HERE: SJMP $ ;等待中断;等待中断SER: INC A ;计数单元加;计数单元加1 MOV P1,A ;显示;显示 RETI ;中断返回;中断返回 END l在如图所示的电路中,在如图所示的电路中,P1口输出控制口输出控制8只发光二只发光二极管以极管以20HZ呈现循环灯状态,当开关按下时,呈现循环灯状态,当开关按下时,发光二极管全部熄灭发光二极管全部熄灭0.5S,然后回到原来的状态。,然后回到原来的状态。 ORG 0000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论