TA的每日心情 | 难过 2024-5-26 18:39 |
---|
签到天数: 2 天 [LV.1]初来乍到
管理员
- 积分
- 2497
|
楼主 |
发表于 2012-10-21 23:58:45
|
显示全部楼层
假设指定A/D转换结束中断能够中断任何服务过程,则外中断的中断服务程序设计如下:
EXTINT:PUSHF ;关总中断
LDB INT_MASK, # 02H ;只允许A/D转换结束中断
EI ;开中断
.
.
.
POPF
RET
###NextPage###
3.4 任意安排各中断源的优先级别
可根据系统的实际需要,重新安排各中断源的优先级,使之不同于硬件所规定的中断优先级。具体做法是在每一中断服务程序的开始即关中断,然后对INT-MASK进行设置,只开放预定的高级别的中断。假设需设定优先级由高至低的顺序依次为:定时器溢出中断、外中断、A/D转换结束中断,则对应的三个中断服务程序可设计如下:
TIMERV:PUSHF ;定时器溢出的中断服务程序
.
.
.
POPF
RET
EXTINT:PUSHF ;外中断的中断服务程序
LDB INT_MASK, # 01H ;只开放定时器溢出中断
EI
.
.
.
POPF
RET
AD-INT:PUSHF ;A/D转换结束中断服务程序
LDB INT_MASK, # 81H ;开放定时器溢出中断及外中断
EI
.
.
.
POPF
RET
在A/D转换结束的中断服务程序中开放了定时器溢出中断和外中断,则这两类中断均可打断该程序的运行;在外中断的中断服务程序中只开放了定时器溢出中断;而在定时器溢出的中断服务程序的运行中则禁止任何中断,这样便保证了预定的中断嵌套的实现。
4、MCS—96系列单片机中断
优先级控制小结
如前所述,MCS—96系列单片机具有与众不同的中断结构,其中断优先级的控制极具灵活性。硬件排队电路虽为各类中断源规定了优先级,但由于正在被服务的中断源不参加有新的中断申请时的优先级的比较,这就造成了高级别的服务过程可能会被低级别的申请所打断的结果。但正如前面所讨论的,可采取一定的软件措施实现预定的优先级排队方案,即根据不同的情况在中断的服务程序中通过关、开中断及设置中断屏蔽寄存器INT-MASK来达到目的。显然这种方法可使用户随心所欲地安排中断源的优先级顺具有很大的灵活性,为中断系统的设计、软件编程带来了方便。
5、参考文献
[1]金磐石,王永明.INTEL96系列单片微型机应用详解.北京:电子工业出版社,1992
[2]张振安,张培仁.MCS—96系列单片微机原理与实践.合肥:中国科技大学出版社,1993
[3]朱晓强,姚志石.8096/8098单片机原理及应用.上海:复旦大学出版社,1993 |
|