1.中断的基本概念
当单片机正在执行程序时,出现了某些特殊状况,例如定时时间到、有键盘信号输入等,此时CPU须要暂时停止当前的程序,而转去执行处理这些事件的程序,待执行完这些特定的程序之后,再返回到原先的程序去执行,这就形成了一次“中断”。“中断”加强了单片机处理突发事件的能力,如果没有中断功能,对可能发生的特殊状况的处理就必须采用定时查询,这样就会浪费大量的CPU时间。
因此,中断是单片机中很重要的一个概念,是提高工作效率的重要功能,中断系统功能的好坏是衡量单片机功能的重要指标。单片机的“中断源”与单片机包含的外围设备有很大的关系,所谓“中断源”就是引起中断的原因或根源,就是中断请求的来源。16F873/876内部集成了12个外围设备。
外围设备在工作过程中,都需要CPU参与控制、协调或交换数据等服务,而CPU正是通过中断技术使得这些外围设备协调工作的。PIC单片机作一次中断处理的过程如下,当某一中断源发出中断请求时:
①假如CPU正在执行更重要的任务,则可采用屏蔽的方法暂时不响应该中断请求;
②如果可以响应该中断请求,则CPU执行完当前指令后,必须把断点处的程序计数器PC的值(即下一条指令的地址)压入堆栈保存起来(断点保护),也可以把一些的重要寄存器内容也保护起来(现场保护)。然后再转移到相应的中断服务子程序中执行。
③在中断服务子程序中,首先必须确定发出中断请求的中断源,然后再跳转到与该中断源相对应的程序分支中去执行中断服务程序。
④当中断服务程序执行毕后,必须先恢复被保护的寄存器的值(现场恢复),再将程序计数器PC的值从堆栈中恢复(断点恢复) ,使CPU返回断点处继续执行被中断的程序。
|