2.6 中断控制功能的作用
51单片机应用开发从入门到精通
2.6.1 什么是中断
所谓中断,就是打断正在进行的工作,转而去做另外一件事情。
比如说,会计正在记账,桌面上摆着摊开的账本和正在使用的计数器,这时候有人敲门叫他去办另一件事情,他暂时放下手头工作,并保存好账本和计数器以免被弄乱或丢失(在中断中称“保护现场”);等处理完事情后返回办公桌前再拿出帐本和计数器(在中断中称“恢复现场”),继续记账。这一过程就是中断以及中断处理的过程。
单片机的中断过程与上述过程类似,如图2-4所示。
2.6.2 实现中断的好处
1.提高了CPU的效率
CPU是计算机系统的指挥中心,它与外围设备(如按键、显示器等)联系沟通的方法有轮询和中断两种。
轮询的方法是指无论外围设备I/O是否需要服务,CPU每隔一段时间都要依次询问一遍,此种方法CPU需要花费一些时间来做询问服务工作。
而中断方法是指当外围设备需要服务时,外设会主动告诉CPU,CPU得知有外围设备需要服务时,才去执行中断处理子程序,所以省去了依次查询的时间,提高了CPU的利用率。
2.可实现实时处理
在实时控制中,利用中断技术,外围设备在任何时刻都可以发出中断请求,CPU接到请求后就能及时处理,以满足实时控制要求。
3.可及时处理故障
计算机系统在运行过程中难免会出现一些事先无法预料的故障,如电源掉电、存储器出错、外围设备工作不正常等,这时可以通过中断系统由故障源向CPU发送中断请求,由CPU及时转到相应的故障处理程序进行处理,提高了计算机的可靠性。
2.6.3 中断处理过程
中断处理过程如图2-5所示。
1.中断当前程序并保护断点
CPU响应中断后,把被中断程序的断点(即PC值)压入堆栈保存,以备中断处理完毕后能返回被中断的程序。
2.转入中断服务入口
给出中断入口地址,转入被响应的中断处理程序。
3.保护现场
为了使被中断的程序及其所使用的寄存器内容不被破坏,以免在中断返回后影响被中断程序的执行,要将被中断程序的有关信息及其所使用的寄存器内容保护起来,压入堆栈保存,这就是保护现场。
4.执行中断服务程序
中断服务程序是中断处理的具体内容。
5.恢复现场
把保护现场时所保存的中断程序的有关信息及其所使用的寄存器内容恢复原样,以便返回被中断的程序后能够正常执行。
6.中断返回
中断返回是把程序运行从中断处理程序转回到被中断的程序中去。中断返回是通过中断返回指令RETI完成的。
2.6.4 中断源及入口地址
1.中断源
80C51是一个多中断源的单片机,共有3类5个中断源,分别是两个外部中断、两个定时中断和一个串行中断,如表2-8所示。
在3类中断源中,外部中断类是指由外部原因引起的中断,共有两个中断源,即外部中断0(INT0)和外部中断1(INT1)。它们的中断请求信号分别由引脚INT0(P3.2)和INT1(P3.3)引入。
外部中断请求有两种信号方式:电平方式和脉冲方式。
电平方式是低电平有效。只要单片机在中断请求引入端(INT0和INT1)上采样到有效的低电平时,就激活外部中断。
脉冲方式是脉冲的下降沿有效。如在中断请求引入端采样到前一次为高,后一次为低,即为有效中断请求。上述两种信号方式可通过有关控制位进行设置。
定时中断类和串行中断类将在有关章节中介绍。
2.中断源入口地址
每一个中断源都有一个固定的中断处理程序入口,它们的地址如表2-9所示。
从表2-9可见,各中断源入口地址间只相隔8个单元。一些简单的中断处理程序可以直接安排在这些单元之内;复杂的中断处理程,则可在各中断入口地址处设置一条无条件转移指令,跳转到其他地址安排中断处理程序。