首页 理论教育中断响应-单片机基础

中断响应-单片机基础

【摘要】:1.中断响应的条件1)当前机器周期还不是正在执行指令的最后一个机器周期,任何中断请求都得不到响应。2)同优先级或高优先级的中断已在进行中,此中断不会被响应。中断查询的机器周期正好是指令的最后一个机器周期时,查询占1个机器周期,响应中断执行隐指令LCALL需两个机器周期,则共需3个机器周期。

在每条指令执行结束后(不含一些特殊指令),系统都自动检测中断请求信号,如果有中断请求,且CPU处于开中断状态,则按照响应的条件和响应过程去响应中断。

1.中断响应的条件

1)当前机器周期还不是正在执行指令的最后一个机器周期,任何中断请求都得不到响应。

2)同优先级或高优先级的中断已在进行中,此中断不会被响应。

3)正在执行的是一条RET、RETI或者访问特殊功能寄存器IE或IP的指令(即在RET、RETI或读写IE或IP之后),不会马上响应中断请求,而须执行一条其他指令之后才会响应。

因为执行RET、RETI就从堆栈中取出保存的PC,马上响应其他中断则断点的保护就出现问题;如果是执行改变IE或IP的指令,马上响应其他中断会出现响应新IE不允许的中断或新IP优先级低的中断。

2.中断响应的过程

单片机一旦响应某一中断请求,就由硬件完成以下功能:

1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1。(www.chuimin.cn)

2)把当前程序计数器PC的内容压入堆栈自动完成断点保护。

3)清除被响应的中断请求标志位,即清除TCON中的TF0或TF1、TCON中的IE0或IE1,但不清除SCON中的RI和TI。

4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。

3.中断响应的时间

中断响应的时间是指从中断产生到执行中断处理程序所需要的时间,一般情况下不需考虑中断响应的时间,但在精确定时或在有些应用场合则必须考虑中断响应的时间。

1)最短的时间需要3个机器周期。中断查询的机器周期正好是指令的最后一个机器周期时,查询占1个机器周期,响应中断执行隐指令LCALL需两个机器周期,则共需3个机器周期。

2)最长的时间需要8个机器周期。中断查询正好是开始执行RET、RETI或访问IE、IP的指令,最长需要两个机器周期,接着再执行的是MUL、DIV指令需要4个机器周期,响应中断执行隐指令LCALL需要两个机器周期,则共需8个机器周期。