介绍

  • 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。
  • 当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前 的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中 断源。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它 服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU总是先响应优先级别最高的中断请求。
  • 当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个 优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。 这样的中断系统称为多级中断系统,没有中断嵌套功能的中断系统称为单级中断系统。
  • STC89C52系列单片机提供了8个中断请求源,它们分别是:外部中断0(INTO)、定时器0中断、外部中断1(INTT)、定时器1中断、串口(UART)中断、定时器2中断、外部中断2(INT2)、 外部中断3(INT3)。所有的中断都具有4个中断优先级。用户可以用关总中断允许位(EA/IE.7)或相应中断的允许位来屏蔽所有的中断请求,也可以用打开相应的中断允许位来使CPU响应相应的中断申请;每一个中断源可以用软件独立地控制为开中断或关中断状态;每一个中断的优先级别均可用软件设置。高优先级的中断请求可以打断低优先级的中断,反之,低优先级的中断 请求不可以打断高优先级及同优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来决定系统先响应哪个中断。

中断查寻次序图

通过设置新增加的特殊功能寄存器IPH中的相应位,可将中断优先级设为四级,如果只设置IP或XICON,那么中断优先级就只有两级,与传统8051单片机两级中断优先级完全兼容。

如果使用C语言编程,中断查寻次序号就是中断号,例如:
void   Int0_Routine(void)     interrupt 0;
void  Timer0_Rountine(void)   interrupt 1;
void   Int1_Routine(void)     interrupt 2;
void   Timer1_Rountine(void)   interrupt 3;
void   UART_Routine(void)     interrupt 4;
void   Timer2_Routine(void)    interrupt 5;
void   Int2_Routine(void)     interrupt 6;
void   Int3_Routine(void)    interrupt 7;

中断结构

STC89C52系列单片机的中断系统结构示意图

参考资料

51单片机入门教程-2020版 程序全程纯手打 从零开始入门\_哔哩哔哩\_bilibili

最后修改:2023 年 10 月 21 日
如果觉得我的文章对你有用,请随意赞赏