用软件方式灵活设置AT89系列单片机的多中断优先级并实现多级中断嵌套的一种方法(3)
作者:佚名; 更新时间:2014-12-05
SETBPX1
SETBES
SETBEX1
ICCRH:RETI
T1SP:CLR ES
LCALLICCRF
CLR PT1
……;定时/计数器T1中断服务程序
SETBPT1
SETBES
ICCRF:RETI
SRTSP:LCALL ICCRV
CLR PS
……;串行口中断服务程序
SETBPS
ICCRV:RETI
在利用上述中断优先级设置程序模式设置成的五级中断系统中,可实现五级中断嵌套,若有两个或两个以上的中断源同时产生中断请求,则按照原中断系统提供的同级中断检测顺序,即INT0、T0、INT1、T1、SRT的顺序进行处理。
4 中断响应的实时性分析
由于外中断INT0被响应后无需进行当前中断优先级的重置就可以直接执行相应的中断服务,所以,外部中断源INT0提出中断请求后,在3-8个机器周期内便可执行真正的中断服务程序[2]。若中断服务程序的字节数多于8个字节,则需要在0003H单元存放一条跳转指令转去执行真正的中断服务程序,而所有跳转指令的指令周期均为两个机器周期,因此,外部中断源INT0提出中断请求后在5~10个机器周期内便可转去执行符号地址为INT0SP的中断服务程序段。
定时/计数器T0中断源提出中断请求后,同样也在5~10个机器周期内转到符号地址为T0SP处,但此后还需进行低级中断屏蔽、模拟中断返回、当前中断(T0中断)优先级重置等工作,共需时间为6个机器周期,因此定时计数器T0提出中断请求后可在11~16个机器周期内转去执行真正的中断服务程序。
同理可知,外部中断INT1、定时计数器T1、串行口提出中断请求后,分别在10~15个机器周期、9~14个机器周期和8~13机器周期内便可转去执行真正的中断服务程序。
5 结束语
以上将AT89C51单片机的五个中断源用软件方式设置成五个中断优先级并实现多级中断嵌套的方法,具有简便易行且不增加任何硬件成本等优点。若将程序模式稍加改变即可实现中断优先级的三级或四级的灵活设置。这种多中断优先级设置方法也适合于具有中断屏蔽和优先级设置功能的其它系列微处理机。
参考文献:
[1] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2001.197-205.
[2] 李传鸿.单片机原理及应用基础教程[M].哈尔滨:东北林业大学出版社,2007.89-90.
上一篇:计算机病毒的技术分析及防范
热门论文