MCS-51系统中断优先级的软扩展
单片机论文MCS-51系统中断优先级的软扩展摘要:鉴于MCS-51系统只提供“二级中断嵌套”,提出扩展51系统中断优先级的纯软件方法。其利用51系统内建的中断允许寄存器IE和中断优先级寄存器IP,通过屏蔽字机制来实现;以C51的形式,给出这种扩展方法的函数库实现,为该方法的使用赋予友好、简洁的用户接口。关键词:MCS-51单片机中断优先级软扩展C51引言众所周知,MCS-51系统只提供“二级中断嵌套”,而大多数嵌入式系统希望有多于两级的优先级别。因为一般来说,系统都有掉电中断,且应置为最高优先级,这样所有其它中断只能共用一个最低优先级,如此,往往不能满足实际的逻辑需求。为了使系统具有多于两级的中断优先级别,可以利用8259A之类的中断控制芯片实现中断优先级的硬扩展,但却增加了系统的造价和复杂性。因复杂性的提高,系统的可靠性将受到影响。本文提出一种扩展MCS-51系统中断优先级的纯软件方法,不需增加任何硬件,且所需的额外资源消耗也很小。实际应用表明这种方法是可行的和有效的。1MCS-51的中断系统简介MCS-51系列单片机允许有五个中断源,提供两个中断优先级,可实现二级中断嵌套。这两级优先级遵循下述规则:仅高优先级中断源可中断嵌套低优先级中断源。为实现这一规则,中断系统内部包含两个不可寻址的优先级状态触发器。当特定优先级的某中断源被响应时,相应的触发器即被置位,直到执行了RETI指令后,这个触发器才复位。在此期间,同级和低级中断将被防止。中断源的中断请求能否得到响应,受中断允许寄存器IE的控制。每个中断源的优先级可通过对中断优先级寄存器IP编程来设定:或最低,或最高。同一优先级中的各中断源同时请求中断时,由内部查询逻辑确定响应次序。查询次序依次为:外部中断0(X0)、定时器中断0(T0)、外部中断1(X1)、定