本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用

Slides:



Advertisements
Similar presentations
5.1 中断的概述 5.2 MCS - 51中断系统 5.3 中断系统的应用
Advertisements

主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
KEIL C单片机设计与项目实践 课程主讲: 孙福成 张小义   王晓静 杨至辉 课件制作: 亢娟娜 王 淏.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
邵阳学院 信息工程系电子实践教学中心 江世明
第四章 指令系统及汇编语言程序设计.
8051 指令.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
本章小结 C51单片机指令系统概述 C51单片机寻址方式 C51单片机指令系统
单片机原理与应用.
第4章 智能仪器通信接口 4.1 GPIB通用接口总线 4.2 GPIB接口电路的设计 4.3 串行通信总线 4.4 串行通信接口电路的设计
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第十一章 复位、时钟和省电方式控制.
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
逻辑运算类指令 包括与、或、非、异或、清0及移位等共24条;一般不影响PSW中的标志位;助记符有:ANL、ORL、XRL、RL、RLC、RR、RRC、CLR和CPL共9种。 一、逻辑与指令 ANL A,Rn ;A←(A)∧( Rn) ANL A,direct;A←(A)∧(direct)
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
8051's UART mode0 output 通訊二甲 B 洪紹凱.
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第七章 定时/计数器.
第三章 指令系统.
第3章 指令系统及程序设计举例 3.1 指令格式与寻址方式 一、指令格式 1. 指令 操作码 目标操作数,源操作数
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
第九章 MCS-51串行接口 9.1 串行数据通信概述 通 信 并行 一、并行通信和串行通信 串行 串行通信 数据是一位一位传送的
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
5-6 串列埠模式0輸出埠擴充實習.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
单片机原理与应用.
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
第1章 微型计算机基础.
Presentation transcript:

本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用

4.1 中断的概念 4.1.1 中断的概念 主程序 (一)中断 在计算机系统中,中断是指CPU在执行某段程序的过程中,由于某一事件发生时,要求CPU暂时停止正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到原来程序停止处继续执行。 中断处理程序 中断源 处理程序 断点

4.1 中断的概念 4.1.1 中断的概念 (二)中断处理与子程序调用的区别 4.1 中断的概念 4.1.1 中断的概念 (二)中断处理与子程序调用的区别 调用哪个子程序、完成什么任务是用户设计程序时事先安排好的,是采用子程序调用指令实现的; 中断事件发生是随机的,哪个事件发生、何时调用中断处理程序是事先无法确定的,在程序中无法事先安排调用指令,调用中断处理程序的过程是由硬件自动完成的。

中断处理与子程序调用的区别 主程序 主程序 中断处理程序 子程序 中断源 调用 CALL SUB 断点 断点

4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断系统是指实现中断响应和处理的所有硬件和软件,它包括中断源的产生、中断判优、中断响应、中断查询、中断处理等过程。

4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断源: 4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断源: (1)计算机系统的外部设备某一事件发生,向CPU请求中断;被控设备某个参数超过限位阈值,向CPU请求中断等。 (2)计算机内部的某个事件发生,如定时/计数器溢出、串行口接收到或发送完一帧数据等。 (3)计算机发生了故障引起中断,如系统电源掉电、运算器运算溢出、系统出错等事件发生,向CPU申请中断。 (4)人为设置中断。用户在编程和调试时人为设置的中断事件,如单步执行、设置断点。

4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断触发及中断请求登记: 4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断触发及中断请求登记: 当一个事件发生了,该中断源触发了中断,中断系统通过硬件把这个中断源对应的中断触发器置1,以此向CPU发出请求,即中断登记。CPU通过检测中断触发器的状态是否为1来识别是哪一个中断源发出了请求。

4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断优先级: 4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断优先级: 在中断系统中,按照轻重缓急的原则给每一个中断源分配一个中断CPU的优先级。 当多个中断源同时向CPU发出请求,通过判断中断优先级——中断判优,优先响应中断优先级最高的中断源的请求,待CPU处理完优先级最高的中断请求后,再依次按优先级顺序响应其它中断源的中断请求。

4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 满足条件时,CPU响应中断之前需要做的准备: (1)关中断; (2)保护断点; 4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 满足条件时,CPU响应中断之前需要做的准备: (1)关中断; (2)保护断点; (3)取中断处理程序的入口地址,转入中断处理程序。

用户程序 4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 CPU进行中断处理: (1)保护现场; (2)中断处理 4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断处理程序的流程 CPU进行中断处理: 用户程序 (1)保护现场; (2)中断处理 (根据处理预案编写的程序); (3)恢复现场; (4)开中断,中断返回。

4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断嵌套处理 中断嵌套的处理

4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断嵌套时的低优先级中断处理程序 中断嵌套时的低优先级中断处理程序流程图

4.1 中断的概念 中断系统应具备以下功能: 4.1.2 CPU响应和处理中断的机制 (1)实现中断与返回; 4.1 中断的概念 4.1.2 CPU响应和处理中断的机制 中断系统应具备以下功能: (1)实现中断与返回; (2)能够对中断请求按优先级响应; (3)能实现中断嵌套处理。

4.1 中断的概念 中断处理过程示意 该中断源 允许中断CPU? 检查优先级 中断处理程序 登记 中断标志 中断源 CPU 开放中断? 4.1 中断的概念 中断处理过程示意 登记 中断标志 中断源 CPU 开放中断? 该中断源 允许中断CPU? 开放 允许 检查优先级 CPU不会响应 未开放 CPU不会响应 不允许 不满足 满足响应条件 ? 中断处理程序 响应中断 响应中断 保护断点 关中断

4.1 中断的概念 4.1.3 中断技术的作用 (1)解决了快速CPU和低速外部设备之间的速度匹配问题,使CPU和外设同时工作; 4.1 中断的概念 4.1.3 中断技术的作用 (1)解决了快速CPU和低速外部设备之间的速度匹配问题,使CPU和外设同时工作; (2)可以实现实时处理; (3)可以实现突发故障的及时自动处理; (4)可以实现多任务资源共享。

4.2 MCS-51中断系统的结构 硬 件 查 询 中 中 中 断 断 断 优 控 标 先 制 志 级 硬 件 查 询

4.2 MCS-51中断系统的结构 4.2.1 MCS-51单片机的中断标志 MCS-51单片机中断标志位分别由2个特殊功能寄存器存储: (1)定时/计数器控制寄存器(TCON)。 (2)串行口控制寄存器(SCON)。

4.2 MCS-51中断系统的结构 4.2.1 MCS-51单片机的中断标志 (一 ) 定时器控制寄存器(TCON) 定时/计数器控制寄存器TCON锁存外部中断请求标志以及定时/计数器的计数溢出标志。TCON的地址88H,寄存器中各位的位地址为88H~8FH。 TIMER 1 TIMER 0 INT1 INT0

4.2 MCS-51中断系统的结构 4.2.1 MCS-51单片机的中断标志 (1)外部事件中断请求标志位 IE0为外部事件中断 的中断请求标志位 IE1为外部事件中断 的中断请求标志位。 外部事件中断可以由电平触发或跳变触发, 中断触发的方式取决于TCON寄存器中IT0和IT1的设定。 (2)定时/计数器溢出标志位 TF0为定时/计数器T0的计数溢出标志位, TF1定时/计数器T1的计数溢出标志位。

4.2 MCS-51中断系统的结构 4.2.1 MCS-51单片机的中断标志 (二)串行口控制寄存器(SCON) 串行口控制寄存器SCON锁存串行口发送缓冲器的发送结束标志和接收缓冲器的接收到数据标志,不论哪个中断标志有效,都会触发串行口中断。SCON的地址98H,各位的位地址位:98H~9FH。 发送完 接收到

4.2 MCS-51中断系统的结构 4.2.1 MCS-51单片机的中断标志 (1)TI串行口发送中断请求标志位 当串行口发送缓冲器发送完一帧数据后,由硬件自动把TI置1,以此向CPU请求中断。 (2)RI串行口接收中断请求标志位 当串行口接收缓冲器接收完一帧串行数据后,由硬件把RI置1;以此向CPU请求中断。 注意:在CPU响应中断时,标志位TI 和RI不被自动清0,必须由用户在中断处理程序中用软件清0,否则,CPU将会陷入响应中断和中断处理当中,造成数据帧的丢失。

4.2 MCS-51中断系统的结构 4.2 MCS-51中断系统的结构 4.2.1 MCS-51单片机的中断标志 由于串行口接收和发送共享一个中断源,无论是发送结束标志TI还是接收到数据标志RI被置1,都会产生串行口中断请求。 在双工通信时,为了辨别哪一个触发了中断,必须首先在中断处理程序中检测TI和RI的状态,然后清除标志位(TI或RI),再进行相应的中断处理。

4.2 MCS-51中断系统的结构 4.2.2 MCS-51单片机的中断控制 MCS-51单片机的中断控制分为2级 第一级通过5个中断允许控制位来确定屏蔽或者允许某个中断源的中断请求。 第二级通过1个控制位来确定CPU开放或禁止中断。中断允许寄存器IE(Interrupt Enable Register)用来保存这些中断允许控制位。 IE寄存器的地址为0A8H,寄存器中各位的位地址为0A8H ~0AFH。

4.2 MCS-51中断系统的结构 4.2.2 MCS-51单片机的中断控制 (1)CPU中断控制位:EA (2)外部中断允许控制位: EX0、 EX1 (3)定时/计数器溢出中断允许控制位: ET0、ET1 (4)串行中断允许控制位:ES 当该位设置为1时,允许,指令 SETB BIT 当该位设置为0时,禁止, 指令 CLR BIT

4.2 MCS-51中断系统的结构 1 1 1 1 MCS-51单片机的中断控制由用户通过设定中断允许寄存器IE来实现,如单片机开放中断,允许外部事件INT1中断、定时/计数器T0溢出中断和串行口中断。 设定程序如下: MOV IE, #10010110B 或: SETB EA; CPU开放中断 SETB EX1; 允许中断 SETB ET0; 允许定时/计数器溢出中断 SETB ES; 允许串行口中断

4.2 MCS-51中断系统的结构 4.2.3 MCS-51单片机的中断优先级 当多个中断源同时请求中断,或者CPU正在处理一个中断,又有了新的中断请求,怎么办? MCS-51单片机的处理原则是: (1)多个中断源同时向CPU请求中断时,首先响应高优先级中断源的中断请求; (2)高优先级中断请求可以中断低优先级的中断处理,从而实现中断嵌套。低优先级中断请求不能中断高优先级或相同优先级的中断处理。

4.2 MCS-51中断系统的结构 4.2.3 MCS-51单片机的中断优先级 中断优先级寄存器IP寄存器的地址0B8H,寄存器中各位的位地址为0BFH~0B8H。 (1)PX0为外部事件中断的优先级设定位; (2)PT0为定时/计数器T0的溢出中断优先级设定位; (3)PX1为外部事件中断的优先级设定位; (4)PT1为定时/计数器T1的溢出中断的优先级设定位; (5)PS为串行口中断的优先级设定位。

4.2 MCS-51中断系统的结构 4.2.3 MCS-51单片机的中断优先级 相同优先级时的中断优先级 High Low

4.2 MCS-51中断系统的结构 MCS-51中断系统的中断响应条件 4.2.4 MCS-51单片机的中断响应及处理过程 MCS-51单片机的CPU响应中断请求是有条件的,如果此时不存在下列3种情形: (1)CPU正在处理相同优先级或高级优先级的中断。 (2)当前的机器周期不是指令的最后一个机器周期。 (3)正在执行的指令是RETI、或者是访问特殊功能寄存器IE或IP的指令。 CPU响应中断请求,立即产生一个硬件调用,使程序转移到相应的中断处理程序入口地址处,调用中断处理程序。 MCS-51中断系统的中断响应条件

4.2 MCS-51中断系统的结构 4.2.4 MCS-51单片机的中断响应及处理过程 CPU响应中断请求时,根据中断源的优先级,中断系统把相应的高优先级触发器或低优先级触发器置1,以封锁相同优先级和低级优先级的中断请求; 然后由硬件调用把当前程序计数器PC的内容(即断点)压入堆栈保护,并且把相应的中断处理程序入口地址装入程序计数器PC,使程序转移到这个中断处理处。MCS-51单片机各个中断源的中断处理程序入口地址是固定的。

MCS-51单片机各中断源的中断处理程序入口地址

4.2 MCS-51中断系统的结构 CPU自动完成 4.2.4 MCS-51单片机的中断响应及处理过程

INT0 T0 INT1 TI 串行口 1 IE0=1 0003H 000BH 0013H 001BH 0023H 中断处理程序

4.2 MCS-51中断系统的结构 4.2.4 MCS-51单片机的中断响应及处理过程 中断处理过程

4.2 MCS-51中断系统的结构 4.2.4 MCS-51单片机的中断响应及处理过程 (1)中断查询是在每个机器周期是重复进行的。当一个中断标志位置1,但没有被CPU响应,这个中断标志位是不会被保持的。每一个机器周期总是查询的是上一个机器周期新采样得到的中断标志位状态。

4.2 MCS-51中断系统的结构 4.2.4 MCS-51单片机的中断响应及处理过程 (2)由于2个中断入口地址之间只有8个单元,在实际应用时,通常在入口地址处安排一条无条件转移指令,把中断处理程序存放在程序存储器的其它区域。 另外,如果不使用中断处理,最好在中断入口地址所在单元放置RETI指令,以免由于干扰或其他因素意外触发中断导致程序“跑飞”的现象发生,使程序能够安全地返回到断点处继续运行。

4.2 MCS-51中断系统的结构 4.2.4 MCS-51单片机的中断响应及处理过程 (3)子程序返回RET指令也可以使中断处理程序返回到断点处,但是,它不能告知CPU中断处理已经结束。因此,CPU依然处于中断处理的状态。如果是处理高优先级中断,CPU只响应一次中断,而且屏蔽其它所有的中断请求。

4.2 MCS-51中断系统的结构 4.2.4 MCS-51单片机的中断响应及处理过程 (4)MCS-51单片机CPU响应中断时,自动进行了置位高或低优先级触发器、保护断点、装入中断入口地址到PC等操作,并没有关中断的操作。 为了防止高优先级中断响应干扰现场保护和恢复,中断嵌套处理时,低优先级中断处理程序应按下列顺序处理:关闭中断、保护现场、开中断、中断处理、关中断、恢复现场、开中断、中断返回。

4.2 MCS-51中断系统的结构 4.2.4 MCS-51单片机的中断响应及处理过程 MCS-51单片机中断嵌套处理 时的低优先级中断处理程序

4.3 外部事件中断及应用 4.3.1 外部事件中断 (一) 触发方式 4.3 外部事件中断及应用 4.3.1 外部事件中断 (一) 触发方式 MCS-51单片机提供2个外部事件中断源,外部事件中断的请求(触发)信号由INT0(或INT1 )引脚引入单片机的中断系统,中断触发方式既可以为电平触发方式,也可以为跳变触发方式,通过软件设置寄存器TCON中的触发方式控制位IT0和IT1实现。 若ITx(x=0,1)为0,则外部事件中断为电平触发方式,由INTx引脚上的低电平触发中断。 指令: CLR ITx 若ITx(x=0,1)为1,则外部事件中断为跳变触发方式,即在INTx引脚上出现负跳变时触发中断。 指令:SETB ITx

4.3 外部事件中断及应用 4.3.1 外部事件中断 (一) 触发方式 4.3 外部事件中断及应用 4.3.1 外部事件中断 (一) 触发方式 在使用外部事件中断源时,中断触发信号必须与触发方式协调一致,使产生中断触发信号的电路满足以下要求: (1)电平触发方式时,引脚上的中断请求信号必须保持足够长的时间,直到中断实际发生为止,否则,会丢失中断请求。中断触发信号低电平的维持时间也不能太长,在CPU响应中断,进入子程序后,即可撤除本次中断请求信号。 (2)跳变触发方式时,在中断引脚上的高电平和低电平保持时间必须不少于1个机器周期。

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 外部事件中断源的初始化及中断处理程序编程步骤: 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 外部事件中断源的初始化及中断处理程序编程步骤: 在主程序中断系统初始化时,完成以下设置 : (1)设置外部事件中断请求信号的触发方式: 电平触发:CLR ITx,跳变触发方式:SETB ITx (2)开放CPU中断:SETB EA (3)设置外部事件中断允许控制位:SETB EX0或 SETB EX1 (4)如果有中断嵌套处理,设置中断源的优先级。 设置外部事件中断源为高优先级:SETB PX0 或 SETB PX1

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 外部事件中断源的初始化及中断处理程序编程步骤 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 外部事件中断源的初始化及中断处理程序编程步骤 在主程序中,对中断系统初始化时,也可以采用下列形式设置中断允许控制位和中断源的优先级: MOV IE,#ENABLE MOV IP,# PRIORITY

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 外部事件中断源的初始化及中断处理程序编程步骤: 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 外部事件中断源的初始化及中断处理程序编程步骤: 要求中断处理是中断源请求中断CPU工作的目的, 中断处理程序是用户根据处理外部事件的具体要求而 设计的程序。 (1)若有1个中断优先级,中断处理程序结构图(P33) (2)若有2个中断优先级,低优先级中断源的中断处理程序结构图(P38),高优先级中断源的中断处理 程序结构图(P33)

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 例:P1口为输出口,外接8个指示灯L0~L7。系统工作时,指示灯L0~L7逐个被点亮。在逐个点亮L0~L7的过程中,当开关K被扳动时,则暂停逐个点亮的操作,L0~L7全部点亮并闪烁10次。闪烁完成后,从暂停前的灯位开始继续逐个点亮的操作。

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 (1)主程序 ORG 0000H 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 (1)主程序 ORG 0000H LJMP MAIN ;转移到主程序 ORG 0003H LJMP INT_PRO ;中断处理程序入口 ORG 0030H MAIN: MOV SP, #70H ;开辟堆栈区 SETB IT0 ;外部事件中断的触发方式 SETB EA ;开放CPU中断 SETB EX0 ;允许INT0中断CPU CLR PX0 ;设置优先级 MOV A, #01H ;显示控制码初值, ROT_DIS: MOV P1, A ;输出显示

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 (1)主程序 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 (1)主程序 ACALL DLY ;延时 RL A ;产生下1个显示控制码 AJMP ROT_DIS ;延时子程序 DLY: MOV R7, #100 DEL1: MOV R6, #200 DEL0: NOP NOP DJNZ R6, DEL0 DJNZ R7, DEL1 RET

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 (2)中断处理程序 ORG 0300H 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (三)外部事件采用跳变触发方式请求中断 (2)中断处理程序 ORG 0300H INT_PRO: PUSH ACC ;保护现场 PUSH PSW MOV R5, #10 ;闪烁次数 CONT: MOV A, #0FFH ;全部点亮 MOV P1, A ACALL DLY MOV A, #00H ;全部熄灭 MOV P1, A ACALL DLY DJNZ R5, CONT ;闪烁10次完否? POP PSW ;恢复现场 POP ACC RETI END

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 例:P1.0~P1.3为输出,外接指示灯L0~L3,P1.7~P1.4为输入,外接开关K0~K3,欲采用外部中断控制方式实现按开关K0~K3闭合状态分别控制指示灯L0~L3的状态,按钮开关每闭合1次,使外部中断触发一次,程序改变1次指示灯的显示状态。

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 (1)主程序: ORG 0000H 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 (1)主程序: ORG 0000H STAR: AJMP MAIN ORG 0003H ;外部事件0中断入口地址 AJMP ExtInt ;转到中断处理程序 ORG 0030H MAIN: MOV SP,#70H ;设置堆栈区 CLR IT0 ;电平触发方式 SETB EX0 ;允许外部事件0中断源中断 SETB EA ;开放CPU中断允许 CLR PX0 ;设置中断优先级,只有一个中断源,可以省略 HERE: AJMP HERE ;模拟执行很长的程序

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 (2)中断处理程序: 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 (2)中断处理程序: ORG 0200H ExtInt: PUSH ACC ;在程序中修改了累加器A的内容,入 ;栈保护,就本题可省略, CLR P3.1 ;产生置位D触发器的信号,Q输出高 ;电平1,撤除中断请求 MOV A, #0F0H MOV P1, A ;置P1.4~P1.7为输入 MOV A, P1 ;读P1.4~P1.7引脚状态,即开关状态 ANL A, #0F0H ;屏蔽低半字节,提取开关K0~K3 ;的闭合状态

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 (2)中断处理程序: 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (四)外部事件采用电平触发方式请求中断 (2)中断处理程序: CPL A ;以下2步为产生指示灯控制信息, ; P1.0~P1.3为1时,对应的指 SWAP A ;示灯亮,开关闭合时,引脚输入 ;为0,故取反 MOV P1, A ;输出控制信息, SETB P3.1 ;使P3.1变为1,使触发器输出Q受 ; CLK控制,新的外部中断请求信 ;号可向单片机申请中断。 POP ACC ;恢复现场 RETI ;中断返回

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (五)同时使用2个外部中断源 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (五)同时使用2个外部中断源 例:P1口为输出口,外接8个指示灯L0~L7。要求实现下面的要求: (1)系统工作时,指示灯L0~L7以3个指示灯为一组循环显示; (2)当S1按下时,暂时中断3灯循环方式,熄灭全部指示灯,从指示灯L0开始逐个点亮并保持,直至全部L0~L7全部点亮,然后熄灭,重复上述过程5次后退出,继续3灯循环显示模式。 (3)当S2按下时,暂时中断3灯循环方式,全部指示灯L0~L7闪烁显示10次后退出,继续3灯循环显示模式。

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (五)同时使用2个外部中断源 同时使用2个外部中断源的单片机应用系统

4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (五)同时使用2个外部中断源 (1)2个外部中断源具有相同的优先级 4.3 外部事件中断及应用 4.3.2 外部事件中断源的应用 (五)同时使用2个外部中断源 (1)2个外部中断源具有相同的优先级 (2) 2个外部中断源具有不同的优先级

主 程 序 2个外部中断源具有相同的优先级——主程序 ORG 0000H LJMP MAIN ORG 0003H LJMP Pint0 ;第一个中断源的中断处理程序入口 ORG 0013H LJMP Pint1 ;第二个中断源的中断处理程序入口 ORG 0030H MAIN: MOV SP,#60H SETB IT0; 跳变触发方式 SETB IT1; 跳变触发方式 MOV IE, #85H ;CPU开放中断,允许 和 中断 MOV IP, #00H ;2个中断源为低优先级 MOV A,#07H ;1组3个指示灯显示控制码初值 CONT: MOV P1,A ;输出控制LED ACALL DELAY ;延时 RL A ;显示控制码移位 SJMP CONT 主 程 序

2个外部中断源具有相同的优先级——中断处理1 程 序 1 ; 中断源的中断处理程序: ORG 0100 Pint0: PUSH ACC ; ;保护现场 PUSH PSW SETB RS0 ;把工作寄存器区切换到1区,避免中断处理程序影响主程序中工作寄存器R0~R7的内容 MOV R1, #05 ;设置循环次数 CONT1: CLR A ;产生显示控制码 MOV P1, A; ; LED全熄灭 ACALL DELAY ;延时 MOV R2,#01H ;循环初值 MOV R3,#01H ;显示控制码初值 CONT2: MOV A,R3 ;取显示控制码 MOV P1,A ;输出控制LED MOV A,R2 ;取循环码 RL A ;循环码移位 MOV R2,A ;循环码暂存 ORL A, R3 ;产生下次显示控制码 MOV R3,A ;暂存显示控制码 MOV A,R2 XRL A,#01;8个LED显示完,异或结果为0 JNZ CONT2 ;8个LED未显示完,继续 DJNZ R1,CONT1 ;该模式显示完否? POP PSW ;恢复现场 POP ACC RETI ;中断返回

2个外部中断源具有相同的优先级——中断处理2 ORG 0200H Pint1: PUSH ACC 保护现场 PUSH PSW SETB RS0 ;把工作寄存器区切换到1区,避免中断处理程序影响主程序中工作寄存器R0~R7的内容 MOV R1,#10 CONT3: CLR A ;产生LED全熄灭显示控制码 MOV P1, A ;输出控制 ACALL DELAY ;延时 MOV A,#0FFH ;产生LED全亮显示控制码 MOV P1,A ;输出控制 ACALL DELAY ;延时 DJNZ R1,CONT3 ;循环控制 POP PSW ;恢复现场 POP ACC RETI ;中断返回 中 断 处 理 程 序 2

2个外部中断源具有不同的优先级——主程序 ORG 0000H LJMP MAIN ORG 0003H LJMP Pint0 MAIN: MOV SP,#60H SETB IT0 ; 跳变触发方式; SETB IT1 ; 跳变触发方式 MOV IE, #85H ;CPU开放中断,允许 和 中断 MOV IP, #04H ;中断源为低优先级, 为高优先级 MOV A,#07H ; 1组3个指示灯显示控制码初值 CONT: MOV P1,A ;输出控制LED ACALL DELAY ;延时 RL A ;显示控制码移位 SJMP CONT

2个外部中断源具有不同的优先级——低优先级中断处理程序 ORG 0100 Pint0: CLR EA ;关中断 PUSH ACC ; PUSH PSW SETB EA ;开中断 SETB RS0 ;把工作寄存器区切换到1区,避免中断处理程序 ;影响主程序中工作寄存器R0~R7的内容 MOV R1,#05 ;设置循环次数 CONT1: CLR A ;产生显示控制码 MOV P1, A ;输出控制LED全熄灭 ACALL DELAY ;延时 MOV R2,#01H; ;循环初值 MOV R3,#01H ;显示码初值 CONT2: MOV A,R3 ;取显示控制码 MOV P1,A ;输出控制LED ACALL DELAY ;延时 MOV A,R2 ;取循环码 RL A ;循环码移位 MOV R2,A ;循环码暂存 ORL A,R3 ;产生下次显示控制码 MOV R3,A ;暂存显示控制码 MOV A,R2 XRL A,#01 ;8个LED显示完,异或结果为0 JNZ CONT2 ;8个未显示完,继续 DJNZ R1,CONT1 ;这种显示模式5次显示完否? CLR EA ; 关中断 POP PSW ;恢复现场 POP ACC SETB EA ;开中断 RETI ;中断返回

2个外部中断源具有不同的优先级——高优先级中断处理程序 ORG 0200H ; Pint1: PUSH ACC ;; PUSH PSW SETB RS1 ;把工作寄存器区切换到2区,避免中断处理程序影响主程序和低优先级程序中工作寄存器R0~R7的内容 CLR RS0 ; MOV R1,#10 ;设置循环次数 CONT3: CLR A ;产生LED全熄灭显示控制码 MOV P1, A ;输出控制 ACALL DELAY; 延时; MOV A,#0FFH ;产生LED全亮显示控制码 MOV P1, A ;输出控制 ACALL DELAY ;延时; DJNZ R1,CONT3 ;循环控制 POP PSW ;恢复现场 POP ACC RETI ;中断返回

4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 如果系统中有多个外部事件,可以采用中断源共享的方法,使多个中断源共同使用MCS-51单片机的2个外部事件中断源。

4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 例:在电梯运行过程中,有以下几种情况需要电梯控制系统立即处理: 4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 例:在电梯运行过程中,有以下几种情况需要电梯控制系统立即处理: (1)当测速传感器检测到电梯失速时,要求控制系统立即切断控制回路电源; (2)当电梯运行到接近底层和顶层时,安装在电梯轿箱上撞弓装置撞击到强迫减速开关时,控制系统应强制电梯强制减速运行。 (3)当电梯强制减速后仍然不能停车,当上限限位和下限限位开关有效时,应切断整个电梯系统的电源。

4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 例:在电梯运行过程中,有以下几种情况需要电梯控制系统立即处理: 4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 例:在电梯运行过程中,有以下几种情况需要电梯控制系统立即处理: (4)当发生意外情况时,按下紧急停止按钮,电梯紧急制动停车。 (5)当电路欠压时或电网电压波动时,为了避免控制回路误动作,应切断控制回路电源,电梯紧急制动停车。 (6)曳引电机过载时,应进行过载保护,应切断控制回路电源,电梯紧急制动停车。

4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 外部事件中断源的扩展电路

4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 主程序(中断处理初始化部分): ORG 0000H LJMP MAIN 4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 主程序(中断处理初始化部分): ORG 0000H LJMP MAIN ORG 0003H LJMP P_INT0 ORG 0013H LJMP P_INT1 ORG 0030H MAIN: MOV SP, #60H ;开辟栈区 CLR IT0 ;设置电平触发方式 CLR IT1 ;设置电平触发方式 SETB EA ;开放CPU中断 SETB EX0 ;允许中断 SETB EX1 ;允许中断 SETB PX0 ;置中断为高优先级 CLR PX1 ;置中断为高优先级 LOOP: …… ;主处理程序 LJMP LOOP

4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 中断处理程序 P_INT0: PUSH ACC 4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 中断处理程序 P_INT0: PUSH ACC PUSH PSW ;切断整个系统电源 POP PSW POP ACC RETI P_INT1: CLR EA;关中断 PUSH ACC ;保护现场 PUSH PSW SETB EA ;开中断 JNB P1.4, ForSwitch ;转强制换速处理 JNB P1.3, SpdSwitch ;失速处理 JNB P1.2, VoltSwitch ;电源故障处理 JNB P1.1, OvLodSwitch ;电机过载处理 JNB P1.0, EmSwitch ;急停按钮处理 RETURN: CLR EA ;关中断 POP PSW ;恢复现场 POP ACC SETB EA ;开中断 RETI ;中断返回

4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 中断处理程序 ForSwitch: 强制换速处理 AJMP RETURN 4.3 外部事件中断及应用 4.3.3 外部事件中断源的扩展 中断处理程序 ForSwitch: 强制换速处理 AJMP RETURN SpdSwitch: 失速处理 VoltSwitch: 电源故障处理 OvLodSwitch: 电机过载处理 EmSwitch: 急停按钮处理

4.4 总结 在CPU在执行某段程序的过程中,由于某种原因,要求CPU暂时停止正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到原来程序停止处继续执行,这个过程称为中断。 CPU响应中断请求调用中断处理程序的过程与主程序调用子程序主要区别在于:子程序调用是用户设计程序时事先安排好的,是采用子程序调用指令实现的;而中断事件发生是随机的,调用中断处理程序的过程是由硬件自动完成的。

4.4 总结 MCS-51单片机具有5个中断源:2个外部事件中断( 和 )、2个定时/计数器计数溢出中断和1个串行口中断。它们可以分为2个中断优先级,可以实现2级中断嵌套。CPU对中断采用2级管理,用户可以根据需要来设定CPU是否开放中断,而且每个中断源都可以独立地设定为允许和禁止中断请求。每个中断源的优先级可以独立地设定为高优先级或低优先级。

4.4 总结 CPU响应中断请求是有条件的,如果此时不存在下列3种情形: (1)CPU正在处理相同优先级或高级优先级的中断; (2)当前的机器周期不是指令的最后一个机器周期; (3)正在执行的指令是RETI、或者是对寄存器IE或IP的写入操作指令。 则CPU立即响应中断请求,直接转移到相应的中断处理程序入口地址处,进行中断处理。

4.4 总结 MCS-51单片机的外部事件中断的请求(触发)信号由 ( 或 )引脚引入单片机的中断系统,中断触发方式可以为电平触发方式,也可以为跳变触发方式,通过软件设置寄存器TCON中的触发方式控制位IT0和IT1实现。

4.4 总结 若外部事件中断为电平触发方式时, 引脚的低电平必须保持到CPU响应该中断时为止,并且必须在本次中断处理返回以前变为高电平,撤除本次中断请求信号,否则,如果中断请求信号没有撤除,中断返回后又再次响应该中断,CPU将陷入无休止的中断响应和中断处理当中。外部事件中断为跳变触发方式时,在 引脚上出现负跳变时,则硬件置位中断请求标志IE0或IE1,发出中断请求。CPU响应中断时,自动把中断请求标志清0,撤除本次中断请求。

本章内容介绍完毕! 谢谢大家!