中断
前置概念¶
中断系统是为使CPU具有对外界 紧急事件的实时处理能力 而设置的。
当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为 中断 。实现这种功能的部件称为中断系统,请示CPU中断的请求源称为 中断源 。
中断源 :有N个中断源,也就是有N种情况发生会使单片机去处理中断系统。
每个中断源有一个优先级别。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,优先处理优先级最高的中断请求源。
当CPU正在处理一个中断源请求的时候(执行相应的 中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为 中断嵌套。这样的中断系统称为 多级中断系统,没有中断嵌套功能的中断系统称为 单级中断系统。
中断的分类¶
-
外部中断
- 这类中断通常由外部设备或事件触发,如按钮按下、传感器信号变化等。
- 外部中断可以进一步细分为电平触发和边沿触发两种类型,具体取决于中断信号的触发方式
-
定时器/计数器中断
- 用于周期性或计数达到特定值时触发
- 定时器中断常用于实现定时任务,如延时、周期性任务调度等。
- 计数器中断则用于计数特定事件的发生次数,如脉冲计数等。
-
串行口中断
- 这类中断由串行通信接口产生,如UART(通用异步收发传输器)。
- 当串行口接收到数据或发送数据完成时,可能会触发中断,用于处理数据通信。
中断允许寄存器与中断优先级寄存器¶
单片机使用中断功能时,通常需要设置以下两个寄存器:
- 中断允许寄存器IE:Interrupt Enable Register
- 中断优先级寄存器IP:Interrupt Priority Register