《单片机原理与应用》课程教学课件(PPT讲稿)第4章 AT89S52单片机的中断系统(2/2)

第4章AT89S52单片机 的 中断系统
1 第4章 AT89S52单片机 的 中断系统 1

4.8中断服务子程序的设计 中断系统的运行必须与中断服务子程序配合才能正确使 用。设计中断服务子程序需要首先明确以下几个问题。 1.中断服务子程序设计的任务 任务有下列4条: (1)设置中断允许控制寄存器IE,允许相应的中断请求源 中断。 (2)设置中断优先级寄存器IP,确定所使用的中断源的优 先级。 (3)若是外部中断源,还要设置中断请求的触发方式决定 采用电平触发方式还是跳沿触发方式。 (4)编写中断服务子程序,处理中断请求。 2
2 4.8 中断服务子程序的设计 中断系统的运行必须与中断服务子程序配合才能正确使 用。设计中断服务子程序需要首先明确以下几个问题。 1.中断服务子程序设计的任务 任务有下列4条: (1)设置中断允许控制寄存器IE,允许相应的中断请求源 中断。 (2)设置中断优先级寄存器IP,确定所使用的中断源的优 先级。 (3)若是外部中断源,还要设置中断请求的触发方式决定 采用电平触发方式还是跳沿触发方式。 (4)编写中断服务子程序,处理中断请求

前3条一般放在主程序的初始化程序段中。 【例5-3】假设允许外部中断0中断,设定为高级中断,采 用跳沿触发方式,其他中断源为低级中断。初始化程序如下: SETB EA;EA位置1,总中断开关位开放 SETB EX0;EX0位置1,允许外部中断0产生中断 SETB PXO ;PX0位置1,外部中断0为高优先级中断 SETB ITO ;T0位置1,外部中断0为跳沿触发方式 3
3 前3条一般放在主程序的初始化程序段中。 【例5-3】 假设允许外部中断0中断,设定为高级中断,采 用跳沿触发方式,其他中断源为低级中断。初始化程序如下: SETB EA ;EA 位置1,总中断开关位开放 SETB EX0 ;EX0位置1,允许外部中断0产生中断 SETB PX0 ;PX0位置1,外部中断0为高优先级中断 SETB IT0 ;IT0位置1,外部中断0为跳沿触发方式 3

2.采用中断时的主程序结构 程序必须先从主程序起始地址0000H执行。所以,在 0000H起始地址的几个字节中,用无条件转移指令,跳向主 程序。 另外,各中断入口地址之间依次相差8字节,中断服务子 程序稍长就超过8字节,这样中断服务子程序就占用了其他 的中断入口地址,影响其他中断源的中断处理。为此,一般 在进入中断后,用一条无条件转移指令,把中断服务子程序 跳转到远离其他中断入口的入口地址处。 常用的主程序结构如下: 4
4 2.采用中断时的主程序结构 程序必须先从主程序起始地址0000H执行。所以,在 0000H起始地址的几个字节中,用无条件转移指令,跳向主 程序。 另外,各中断入口地址之间依次相差8字节,中断服务子 程序稍长就超过8字节,这样中断服务子程序就占用了其他 的中断入口地址,影响其他中断源的中断处理。为此,一般 在进入中断后,用一条无条件转移指令,把中断服务子程序 跳转到远离其他中断入口的入口地址处。 常用的主程序结构如下: 4

0RG0000H LJMP MAIN ORG X:X2XaX.H :X:XXXH为某中断源的中断入口 LJMP INT ;INT为某中断源的中断入口标号 。eeae0 ORG Y:Y2YaY.H :Y:YYY4H为主程序入口 MAIN: 主程序 INT: 中断服务子程序 注意:如果有多个中断源,就有多个“ORG XX2X3X4H” 的入口地址,多个“中断入口地址”必须依次由小到大排列。 主程序MAN的起始地址YY2Y3Y4H,根据具体情况来安排。 5
5 注意:如果有多个中断源,就有多个“ORG X1X2X3X4H” 的入口地址,多个“中断入口地址”必须依次由小到大排列。 主程序MAIN的起始地址Y1Y2Y3Y4H,根据具体情况来安排。 5

3.中断服务子程序的流程 中断服务子程序的基本流程如图4-10所示。下面对有关中断 服务子程序执行过程中的一些问题进行说明。中断服务子程序入口 关中断 现场保护 开中断 中断处理 关中断 现场恢复 开中断 中断返回 图4-10 中断子服务程序的基本流程
6 3.中断服务子程序的流程 中断服务子程序的基本流程如图4-10所示。下面对有关中断 服务子程序执行过程中的一些问题进行说明

(1)现场保护和现场恢复 现场是指单片机中某些寄存器和存储器单元中的数据或状态。 为使中断服务子程序的执行不破坏这些数据或状态,因此要送 入堆栈保存起来,这就是现场保护。 现场保护一定要位于中断处理程序的前面。中断处理结束后, 在返回主程序前,则需要把保存的现场内容从堆栈中弹出恢复 原有内容,这就是现场恢复。 现场恢复一定要位于中断处理的后面。 堆栈操作指令:“PUSH direct”和“POP direct'”,是 供现场保护和现场恢复使用的。要保护哪些内容,应根据具体 情况来定
7 (1)现场保护和现场恢复 现场是指单片机中某些寄存器和存储器单元中的数据或状态。 为使中断服务子程序的执行不破坏这些数据或状态,因此要送 入堆栈保存起来,这就是现场保护。 现场保护一定要位于中断处理程序的前面。中断处理结束后, 在返回主程序前,则需要把保存的现场内容从堆栈中弹出恢复 原有内容,这就是现场恢复。 现场恢复一定要位于中断处理的后面。 堆栈操作指令:“PUSH direct”和“POP direct”,是 供现场保护和现场恢复使用的。要保护哪些内容,应根据具体 情况来定。 7

(2)关中断和开中断 现场保护前和现场恢复前关中断,是为防止此时有高一级的 中断进入,避免现场被破坏。 在现场保护和现场恢复之后的开中断是为下一次的中断做好 准备,也为了允许有更高级的中断进入。这样,中断处理可以 被打断,但原来的现场保护和现场恢复不允许更改,除了现场 保护和现场恢复的片刻外,仍然保持着中断嵌套的功能。 但有时候,一个重要的中断,必须执行完毕,不允许被其他 的中断嵌套。可在现场保护前先关闭总中断开关位,待中断处 理完毕后再开总中断开关位。这样,需把图4-10中的“中断处 理”步骤前后的“开中断”和“关中断”去掉
8 (2)关中断和开中断 现场保护前和现场恢复前关中断,是为防止此时有高一级的 中断进入,避免现场被破坏。 在现场保护和现场恢复之后的开中断是为下一次的中断做好 准备,也为了允许有更高级的中断进入。这样,中断处理可以 被打断,但原来的现场保护和现场恢复不允许更改,除了现场 保护和现场恢复的片刻外,仍然保持着中断嵌套的功能。 但有时候,一个重要的中断,必须执行完毕,不允许被其他 的中断嵌套。可在现场保护前先关闭总中断开关位,待中断处 理完毕后再开总中断开关位。这样,需把图4-10中的“中断处 理”步骤前后的“开中断”和“关中断” 去掉。 8

(3)中断处理 应用设计者根据任务的具体要求,来编写中断处理部分 的程序。 (4)中断返回 中断服务子程序最后一条指令必须是返回指令RET1。 CPU执行完这条指令后,把响应中断时所置1的不可寻址的 优先级状态触发器清0,然后从堆栈中弹出栈顶上的两个字 节的断点地址送到程序计数器PC,弹出的第一个字节送入 PCH,弹出的第二个字节送入PCL,从断点处重新执行主程 序
9 (3)中断处理 应用设计者根据任务的具体要求,来编写中断处理部分 的程序。 (4)中断返回 中断服务子程序最后一条指令必须是返回指令RETI。 CPU执行完这条指令后,把响应中断时所置1的不可寻址的 优先级状态触发器清0,然后从堆栈中弹出栈顶上的两个字 节的断点地址送到程序计数器PC,弹出的第一个字节送入 PCH,弹出的第二个字节送入PCL,从断点处重新执行主程 序。 9

【例4-4】根据图4-10流程,编写中断服务程序。设现场保 护只将PSW寄存器和累加器A的内容压入堆栈中保护。一个典 型的中断服务子程序如下: INT: CLR EA :CPU关中断 PUSH PSW ; 现场保护 PUSH Acc SETB EA ;总中断允许 中断处理程序段 CLR EA ;关中断 POP Acc :现场恢复 POP PSW SETB EA ;总中断允许 RETI :中断返回,恢复断点 10
10 【例4-4】 根据图4-10流程,编写中断服务程序。设现场保 护只将PSW寄存器和累加器A的内容压入堆栈中保护。一个典 型的中断服务子程序如下: 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《单片机原理与应用》课程教学课件(PPT讲稿)第5章 AT89S52单片机的定时器计数器(2/2).ppt
- 《单片机原理与应用》课程教学课件(PPT讲稿)第6章 AT89S52单片机的串行口(1/2).ppt
- 《单片机原理与应用》课程教学课件(PPT讲稿)第6章 AT89S52单片机的串行口(2/2).ppt
- 《单片机原理与应用》课程教学课件(PPT讲稿)ADDA电机(AT89S51单片机与DAC的接口).pptx
- 《单片机原理与应用》课程教学课件(PPT讲稿)DS18B20总线扩展技术.pptx
- 《单片机原理与应用》课程教学资源(学习资料)DS18B20测温头文件使用方法.docx
- 《单片机原理与应用》课程教学资源(授课教案)单片机定时/计数器模块.doc
- 《单片机原理与应用》课程教学资源(授课教案)AT89S52单片机的硬件组成、单片机的引脚功能(一).docx
- 《单片机原理与应用》课程教学资源(授课教案)3.7 8051汇编语言程序设计基础、3.8 汇编语言程序设计举例Keilc程序设计.docx
- 《单片机原理与应用》课程教学资源(授课教案)3.4 8051指令系统分类介绍、C语言中相关编程结构.docx
- 《单片机原理与应用》课程教学资源(授课教案)3.1 指令系统概述 3.2 指令格式 3.3 指令寻址方式 3.4 指令分类.docx
- 《单片机原理与应用》课程教学资源(授课教案)AT89S52单片机的硬件组成、单片机的引脚功能(二).docx
- 《单片机原理与应用》课程教学资源(授课教案)4.8 中断服务子程序的应用设计 4.9 多外部中断源的设计.docx
- 《单片机原理与应用》课程教学资源(授课教案)AT89S52定时计数器(1/4).docx
- 《单片机原理与应用》课程教学资源(授课教案)中断系统.docx
- 《单片机原理与应用》课程教学资源(授课教案)AT89S52定时计数器(2/4).docx
- 《单片机原理与应用》课程教学资源(授课教案)串口扩展技术.docx
- 《单片机原理与应用》课程教学资源(授课教案)AT89S52定时计数器(3/4).docx
- 《单片机原理与应用》课程教学资源(授课教案)AT89S52定时计数器(4/4).docx
- 《单片机原理与应用》课程教学资源(授课教案)DS18B20测温头文件使用方法.docx
- 《单片机原理与应用》课程教学课件(PPT讲稿)第5章 AT89S52单片机的定时器计数器(1/2).ppt
- 《单片机原理与应用》课程教学课件(PPT讲稿)第4章 AT89S52单片机的中断系统(1/2).ppt
- 《单片机原理与应用》课程教学课件(PPT讲稿)第2章 AT89S51单片机硬件结构(2/2).ppt
- 《单片机原理与应用》课程教学课件(PPT讲稿)第2章 AT89S51单片机硬件结构(1/2).ppt
- 《单片机原理与应用》课程教学课件(PPT讲稿)第3章 8051指令系统与编程基础.ppt
- 《电路》课程教学大纲 Electric Circuit A.doc
- 《电路》课程教学大纲 Electric Circuit B.doc
- 《电路》课程实验教学大纲 Experiment of Electric Circuit A.doc
- 《电路》课程实验教学大纲 Experiment of Electric Circuit B.doc
- 《电路》课程教学资源(实验指导)实验1 元件伏安特性.doc
- 《电路》课程教学资源(实验指导)实验5 RLC元件阻抗特性及交流等效参数的测定.doc
- 《电路》课程教学资源(实验指导)实验3 直流电路基本定理综合实验.doc
- 《电路》课程教学资源(实验指导)实验2 电源等效变换戴维南定理.doc
- 《电路》课程教学资源(实验指导)实验4 电路过渡过程的研究.doc
- 《电路》课程教学资源(实验指导)实验7 RLC串联谐振电路的研究.doc
- 《电路》课程教学资源(实验指导)实验6 日光灯电路及功率因数的提高.doc
- 《电路》课程教学资源(实验指导)实验8 RC选频网络特性的测试.doc
- 《电路》课程教学资源(实验指导)实验9 单相电度表的校验.doc
- 《电路》课程教学资源(实验指导)实验11 三相电路综合实验.doc
- 《电路》课程教学资源(实验指导)实验13 电阻温度计的制作.doc