
第5章中断系统 本章要点: 中断相关概念 MCS-51系统中断源、中断系统控制寄存器 中断程序的编写 外部中断源的扩展
第5 章 中断系统 本章要点: 中断相关概念 MCS-51系统中断源、中断系统控制寄存器 中断程序的编写 外部中断源的扩展

5.1中断系统概述 5.1.1中断相关概念 1.什么是中断 中断系统是计算机的重要指标之一。现代计算机中毫无例外地都采用了中断技 术,什么是中断呢? 举一个日常生活中的例子来说明中断的概念。假如你正在阅读文件,这时有 人敲门,此时,你暂停阅读(即暂停执行程序),在文件中作记号,去开门和来人 交谈,谈话完毕,继续接着做记号处阅读。这就是一个中断及中断处理的例子,整 个过程用计算机术语可描述为正在执行程序时(阅读文件),有中断信号发出中断 请求(有人敲门),此时响应中断,保护断点(做记号),执行中断服务程序(和 来人谈话),中断服务程序执行完后(谈话完毕),恢复断点继续执行原来的程序 (接着记号处继续阅读)。 像这样计算机在执行程序的过程中,由于CPU之外的某种原因,有必要尽快 地中止该程序的执行,而转去执行相应的处理程序,待处理程序结束后,再返回来 继续执行从断点处开始的源程序的情况称为“中断
5.1中断系统概述 5.1.1中断相关概念 1. 什么是中断 中断系统是计算机的重要指标之一。现代计算机中毫无例外地都采用了中断技 术,什么是中断呢? 举一个日常生活中的例子来说明中断的概念。假如你正在阅读文件,这时有 人敲门,此时,你暂停阅读(即暂停执行程序),在文件中作记号,去开门和来人 交谈,谈话完毕,继续接着做记号处阅读。这就是一个中断及中断处理的例子,整 个过程用计算机术语可描述为正在执行程序时(阅读文件),有中断信号发出中断 请求(有人敲门),此时响应中断,保护断点(做记号),执行中断服务程序(和 来人谈话),中断服务程序执行完后(谈话完毕),恢复断点继续执行原来的程序 (接着记号处继续阅读)。 像这样计算机在执行程序的过程中,由于CPU之外的某种原因,有必要尽快 地中止该程序的执行,而转去执行相应的处理程序,待处理程序结束后,再返回来 继续执行从断点处开始的源程序的情况称为“中断

2.为何使用中断 中断是CPU处理外部突发事件的重要技术之一,它能使CPU在 运行过程中对外部事件发出的中断请求及时地进行处理。微型机引 进中断后,有如下优点: (1)实现分时操作,提高CPU效率。有了中断系统以后,CPU 可以和外设同步工作。在启动外设后,CPU可继续执行主程序, 同时外设也开始工作。当外设需要CPU服务时,便向CPU发出中断 申请,此时CPU可中断原程序的执行而转去为外设服务,服务完毕 后又返回断点处继续执行原程序,外设也继续工作,这样CPU可以 和多个外设同时工作,大大地提高了CPU的利用率。例如打印输出, CPU可高速传输数据,而打印机的速度却较低,若不采用中断技术, CPU将经常处于效率较低的等待状态。若使用中断,CPU便可只在 打印机发出中断请求后,才暂时中断当前工作转去执行向缓冲区传 送数据,传送完成后又返回执行原来的程序,这样就提高了CPU的 效率
2.为何使用中断 中断是CPU处理外部突发事件的重要技术之一,它能使CPU在 运行过程中对外部事件发出的中断请求及时地进行处理。微型机引 进中断后,有如下优点: (1)实现分时操作,提高CPU效率。有了中断系统以后,CPU 可以和外设同步工作。 在启动外设后,CPU可继续执行主程序, 同时外设也开始工作。当外设需要CPU服务时,便向CPU发出中断 申请,此时CPU可中断原程序的执行而转去为外设服务,服务完毕 后又返回断点处继续执行原程序,外设也继续工作,这样CPU可以 和多个外设同时工作,大大地提高了CPU的利用率。例如打印输出, CPU可高速传输数据,而打印机的速度却较低,若不采用中断技术, CPU将经常处于效率较低的等待状态。若使用中断,CPU便可只在 打印机发出中断请求后,才暂时中断当前工作转去执行向缓冲区传 送数据,传送完成后又返回执行原来的程序,这样就提高了CPU的 效率

(2)实现实时处理。微机测控系统一般对实时性要求较高, 要求计算机对外来信号的响应要及时,即要在规定的时间内进行 处理,否则可能会造成信息丢失,产生错误的处理。采用中断技 术后,现场的各种参数、状态信息在任何时刻均可以发出中断请 求,要求CPU及时进行处理,CPU响应中断,便能迅速做出处理。 所以通常中断是实现实时任务的重要手段之一。 (3)快速发现和处理故障。微型机在运行过程中,有时会出 现一些无法预料的故障,如电源掉电,运算出错等。若采用中断 技术,计算机便可以自行诊断处理,而不必停机检查。可将故障 设为中断信号,当故障发生时,故障源作为中断源向CU发出中 断请求,从而使CPU马上执行相应的故障服务程序,保证计算机 不会因故障而造成停机
(2)实现实时处理。微机测控系统一般对实时性要求较高, 要求计算机对外来信号的响应要及时,即要在规定的时间内进行 处理,否则可能会造成信息丢失,产生错误的处理。采用中断技 术后,现场的各种参数、状态信息在任何时刻均可以发出中断请 求,要求CPU及时进行处理,CPU响应中断,便能迅速做出处理。 所以通常中断是实现实时任务的重要手段之一。 (3)快速发现和处理故障。微型机在运行过程中,有时会出 现一些无法预料的故障,如电源掉电,运算出错等。若采用中断 技术,计算机便可以自行诊断处理,而不必停机检查。可将故障 设为中断信号,当故障发生时,故障源作为中断源向CPU发出中 断请求,从而使 CPU马上执行相应的故障服务程序,保证计算机 不会因故障而造成停机

3.中断源及其分类 引起中断的原因或者说能发出中断请求信号的各种事件来源称为中 断源,如I0设备、定时时钟、系统故障、软件设定等。根据中断 源的不同,可以把中断分为两大类。 (1)硬件中断。 ①外部中断。由计算机系统各组成部分的外部设备(如输入输出 设备)发出中断申请请求引起的中断,称为外部中断或I/O中 断。一般有键盘中断、打印机中断、定时器中断等。如定时器中 断即定时提出中断申请。通常在定时控制或定时数据采集系统中, 有外部时钟电路定时,一旦到达规定的时间时钟电路就会向CPU发 出中断申请。外部中断是可以屏蔽的中断,也就是说,利用中断 控制器可以屏蔽这些外部设备的中断请求
3.中断源及其分类 引起中断的原因或者说能发出中断请求信号的各种事件来源称为中 断源,如I/O设备、定时时钟、系统故障、软件设定等。根据中断 源的不同,可以把中断分为两大类。 (1)硬件中断。 ①外部中断。由计算机系统各组成部分的外部设备(如输入输出 设备)发出中断申请请求引起的中断,称为外部中断或I/O中 断。一般有键盘中断、打印机中断、定时器中断等。如定时器中 断即定时提出中断申请。通常在定时控制或定时数据采集系统中, 有外部时钟电路定时,一旦到达规定的时间时钟电路就会向CPU发 出中断申请。外部中断是可以屏蔽的中断,也就是说,利用中断 控制器可以屏蔽这些外部设备的中断请求

②内部中断。由计算机硬件异常或故障引起的中断。内部中断通常 是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为 零、运算溢出、单步中断等)所引起的中断。例如,目前微型机的内 存RAM主要是采用半导体存储器,所以在电源掉电时,需要接入备用 电源供电,以保护AM中的信息。一般的做法是,在直流电源上并联 容,当电容电压因电源掉电下降到一定值时就发出中断申请,CPU 向应中断执行保护中断现场的操作。内部中断是不可屏蔽的中断。 (2)软件中断 由于程序中执行了中断指令引起的中断,称为软件中断。软件中断其 实并不是真正的中断,它们只是一些程序性中断。例如,为调试程序 而设定断点、单步工作等
②内部中断。由计算机硬件异常或故障引起的中断。内部中断通常 是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为 零、运算 溢出、单步中断等)所引起的中断。例如,目前微型机的内 存RAM主要是采用半导体存储器,所以在电源掉电时,需要接入备用 电源供电,以保护RAM中的信息。一般的做法是,在直流电源上并联 电容,当电容电压因电源掉电下降到一定值时就发出中断申请,CPU 响应中断执行保护中断现场的操作。内部中断是不可屏蔽的中断。 (2)软件中断 由于程序中执行了中断指令引起的中断,称为软件中断。软件中断其 实并不是真正的中断,它们只是一些程序性中断。例如,为调试程序 而设定断点、单步工作等

根据中断是否可以禁止,又分为可屏蔽中断和非屏蔽中断两类。 可屏蔽中断是指通过软件设置相应的中断屏蔽位,允许/禁止CPU 响应某个中断。这样做的目的,是保证在执行一些重要的程序中不响 应中断,以免造成迟缓而引起错误。例如,在系统启动执行初始化程 序时,就屏蔽键盘中断,使初始化程序能够顺利进行。这时,敲任何 键,都不会响应。 非屏蔽中断是指不能通过设置中断屏蔽位而禁止中断的响应。有 中断请求信号,CPU必须响应。例如重新启动、电源故障、内存出错 等内部中断是不可屏蔽的
根据中断是否可以禁止,又分为可屏蔽中断和非屏蔽中断两类。 可屏蔽中断是指通过软件设置相应的中断屏蔽位,允许/禁止CPU 响应某个中断。这样做的目的,是保证在执行一些重要的程序中不响 应中断,以免造成迟缓而引起错误。例如,在系统启动执行初始化程 序时,就屏蔽键盘中断,使初始化程序能够顺利进行。这时,敲任何 键,都不会响应。 非屏蔽中断是指不能通过设置中断屏蔽位而禁止中断的响应。有 中断请求信号,CPU必须响应。例如重新启动、电源故障、内存出错 等内部中断是不可屏蔽的

5.1.2中断系统的功能 1.响应中断 当中断源发出中断申请时,若CPU允许响应该中断请求, CU将在现行指令执行完后,及时响应中断,首先将保护现场, 即把某些有关寄存器的内容、标志位的状态及断点后的PC值压 入堆栈保存,然后再转到相应的中断服务程序的入口执行中断 服务程序,同时清除中断请求触发器
5.1.2 中断系统的功能 1.响应中断 当中断源发出中断申请时,若CPU允许响应该中断请求, CPU将在现行指令执行完后,及时响应中断,首先将保护现场, 即把某些有关寄存器的内容、标志位的状态及断点后的PC值压 入堆栈保存,然后再转到相应的中断服务程序的入口执行中断 服务程序,同时清除中断请求触发器

2.实现中断返回 当中断服务程序执行完以后,中断响应时保留的寄存器的内容和标 志位的状态应被弹出堆栈恢复原值,断点地址也从堆栈弹出到PC, 使CPU能够返回断点处继续执行原程序。整个过程见图5-1所示。 响应中断 序 断点 执行中断服务程序 中断返回 图5-1中断过程示意图
2.实现中断返回 当中断服务程序执行完以后,中断响应时保留的寄存器的内容和标 志位的状态应被弹出堆栈恢复原值,断点地址也从堆栈弹出到PC, 使CPU能够返回断点处继续执行原程序。整个过程见图5-1所示。 中断返回 主 程 序 断点 响应中断 执 行 中 断 服 务 程 序 图5-1中断过程示意图

3.中断优先级排队 通常一个系统有多个中断源,有时会出现这样的情况,即同一 时刻有两个或多个中断源同时发出中断请求,或者,CPU正在响应 一个中断,执行中断处理的过程中,又有新的中断事件发生而发出 中断请求,此时应如何处理取决于中断源的优先级,CPU应能根据各 个中断源的优先级别确定首先为哪个中断源服务。在计算机中,中 断事件的优先级是根据事件处理的紧迫性、实时性、重要性和软件 处理的方便性来安排的。不同情况的中断源可享有先后不同的中断 优先权,CU按照中断优先权的高低逐次响应中断,这个过程称为中 断优先级排队。当出现多个中断源并发请求中断时,CU能够识别出 优先权高的中断源,并响应它的中断请求,待该中断处理完后,再 响应优先权低的中断源
3.中断优先级排队 通常一个系统有多个中断源,有时会出现这样的情况,即同一 时刻有两个或多个中断源同时发出中断请求,或者,CPU正在响应 一个中断,执行中断处理的过程中,又有新的中断事件发生而发出 中断请求,此时应如何处理取决于中断源的优先级,CPU应能根据各 个中断源的优先级别确定首先为哪个中断源服务。在计算机中,中 断事件的优先级是根据事件处理的紧迫性、实时性、重要性和软件 处理的方便性来安排的。不同情况的中断源可享有先后不同的中断 优先权,CPU按照中断优先权的高低逐次响应中断,这个过程称为中 断优先级排队。当出现多个中断源并发请求中断时,CPU能够识别出 优先权高的中断源,并响应它的中断请求,待该中断处理完后,再 响应优先权低的中断源