自动控制网移动版

自动控制网 > 自动化 > 单片机 >

单片机中断系统

单片机利用中断,使CPU和外设在同一时间内并行工作,当外设申请中断时,CPU放下自己手头的工作去处理外设请求,处理完后再返回继续原来的工作,大大提高了CPU的利用率和处理问题的灵活性。单片机中实现这种功能的部件称为中断系统,产生中断的请求源称为中断源。

中断类似于程序设计中的调用子程序,但二者之间又有一定的区别:中断是随机产生的,既保护断点又保护现场,它是为外设和为处理各种事件服务的;而调用子程序是程序中事先安排好的,可以只保护断点,它是为主程序服务的,与外设无关。

1.中断的响应与返回

当某一中断源发出中断请求时, CPU首先判断是否响应这个中断请求。如果  CPU能响应中断请求,则必须在现行指令执行完毕,将断点处的PC值、有关寄存器的内容、标志位的状态等信息压人堆栈,保存下来。然后,再转到需要处理的中断源的服务入口,执行中断服务程序。中断处理完毕,恢复保存的寄存器内容和标志位状态,恢复 PC ,返回到断点,继续执行被中断的程序。

2.中断优先级排队

通常,单片机系统允许有多个中断源,当几个中断源同时向 CPU 请求中断,要求为它们服务的时候,就存在 CPU 优先响应哪一个中断请求源的问题,于是便规定每一个中断源都有一个中断优先级别。当 CPU 正在处理一个中断请求的时候,又发生了另一个优先级更高的中断请求,CPU 能够暂时中止执行对原来中断源的处理程序,转而去处理优先级更高的中断请求,待处理完毕,再继续执行原来的低优先级中断处理程序,称为中断嵌套,这样的中断系统称为多级中断系统。没有中断嵌套功能的中断系统称为单级中断系统。

3.中断的处理过程

(1)关中断

在CPU响应某一个中断后,内部自动关闭中断,以免新的中断请求干扰本中断处理过程。若本中断允许CPU响应优先级更高的中断请求,则应在保护现场后,用软件打开中断。

(2)保护断点

CPU响应中断后把被中断程序的断点(即PC址)压人堆栈,保存下来,以备中断处理完毕返回到被中断的程序。

(3)中断入口

中断人口地址送PC,转到被响应的中断服务程序。

(4)保护现场

为了使中断服务程序执行时,不破坏被中断程序所使用的寄存器或存储单元的原有内容,以免在中断服务程序返回后影响被中断程序的执行,应将中断服务程序将要使用、被中断程序仍要继续使用的寄存器或存储单元的内容压入堆栈保存下来。

(5)执行中断服务程序

中断服务程序是中断处理的具体操作内容。设计者应根据要求编写中断服务程序。

(6)恢复现场

保护现场时保存下来的各个寄存器和存储单元的数据从堆栈中恢复出来,以便返回到被中断的程序后,继续正常执行。

(7)开中断

在返回中断服务程序前,用开中断指令把硬件关闭的中断打开以便CPU响应新的中断。

(8)中断返回

中断返回是把程序运行从中断服务程序转到被中断的程序中。中断返回是通过中断返回指令来RETI实现的。

    本文已影响
    最近关注
    0基础免费学PLC,扫描观看

    扫描上方二维码免费观看PLC视频课程