中断服务子程序的最后一条指令应是RETI(中断返回)。RETI指令将清除“优先级激活”触发器(该触发器在响应中断时被置位)。然后由堆栈弹出两个字节(下一条指令地址)装入到PC中。
5. 外部中断
外部中断的激活方式分为两种:一种是电平激活.另一种是边沿激活。这两种方式可以靠TCON寄存器中的中断方式位ITI或IT0来控制。若 =0(X为0或l,后文中用到类同的符号,其含意相似),则采用电平激活方式:在 引脚上检测到低电平,将触发外部中断。若 =1,则采用边沿激活方式:在相继的两个周期中,对 引脚进行连续两次采样,若第一次采样值为高,第二次为低,则TCON寄存器中的中断请求标志IEx被置1,以请求中断。
由于外部中断引脚每个机器周期被采样一次,为确保采样,由引脚 输入的信号应至少保持一个机器周期,即12个振荡器周期。如果外部中断为边沿激活方式,则引脚处的高电平和低电平值至少各保持一个机器周期,才能确保CPU检测到电平的跳变,而把中断请求标志IEx置1。
如果采用电平激活外部中断方式,外部中断源应一直保持中断请求有效,直至所请求的中断得到响应时为止。
6 . 中断请求的撤除
CPU响应某中断请求后,在中断返回(RETI)前,该中断请求应该撤除,否则会引起另一次中断。
对于定时器0或1溢出中断,CPU在响应中断后,就用硬件清除了有关的中断请求标志TF0(TCON.5)或TFl(TCON.?),即中断请求是自动撤除的,无需采取其他措施。
对于边沿激活的外部中断,CPU在响应中断后,也用硬件清除了有关的中断请求标志IE0(TCON.1),或IEl(TCON.3), 自动撤除了中断请求。
对于电平激活的外部中断,由于在硬件上,CPU对 和 引脚的信号完全没有控制(在专用寄存器中,没有相应的中断请求标志),也不像某些微处理机那样.响应中断后会自动发出一个应答信号。因此在MCS-5l的用户系统中,要另外采取撤除外部中断的措施。例如,可以利用单稳态触发器对中断源信号进行整形,使之符合要求。
7. 中断响应时间
现以外部中断为例,说明中断响应的最短时间。在每个机器周期的S5P2, 和 端的电平被锁到内部保持寄存器中,而实际上在下一个周期才会查询这些值。如果中断请求有效,一般情况下,下一条要执行的指令将是一条硬件子程序调用指令,调用所要求的服务程序。调用本身要花费两个机器周期。这样,从外部中断请求有效到开始执行服务程序的第一条指令,中间要隔3个周期,这是最短的响应时间。
如果发生了第3节所述的3种情况之一,那么中断请求受阻,中断响应时间会更长些。如果一个同级的或高优先级的中断已经在进行,则很显然,附加的等待时间将取决正在进行的中断服务程序。若正在执行的一条指令还没有进行到最后一个周期,那么附加的等待时间不会超过3个周期,因为一条指令的最长执行时间为4个周期(MUL和DIV)。如果正在执行的是RETI指令或者是访问IE或IP的指令,则附加的等待时间不会超过5个周期(为完成正在执行的指令,还需要一个周期,加上为完成下一条指令所需要的最长时间——4个周期,故最长为5个周期)。若系统中只有一个中断源,则响应时间在3个同期到8个周期之间。
2.6 单片机的工作方式
单片机的工作方式包括:复位方式、程序执行方式、单步执行方式、低功耗操作方式以及EPROM编程和校验方式。
1. 复位方式
RST引脚是复位信号的输入端。复位信号是高电平有效。高电平有效的持续时间应为24个振荡周期以上。若时钟频率为6MHz,则复位信号至少应持续4us以上,才可以使单片机复位。复位以后,07H写入栈指针SP,
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>