第六章 微型计算机的输入输出与中断.ppt_第1页
第六章 微型计算机的输入输出与中断.ppt_第2页
第六章 微型计算机的输入输出与中断.ppt_第3页
第六章 微型计算机的输入输出与中断.ppt_第4页
第六章 微型计算机的输入输出与中断.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6 1接口电路概述6 2I O传送方式6 3中断概述6 4中断处理过程6 5MCS 51系统及其控制 1 第六章微型计算机的输入输出与中断 引言 2 回顾计算机系统的组成 接口电路 引言 3 什么是输入 输出设备 计算机有各种用途 但不论用于何种场合 都离不开信息处理 所处理的信息 均要由输入设备提供 而处理后的结果数据 则要送给输出设备 以各种形式报告给用户 例如 键盘 鼠标器 磁盘和扫描仪等是大家熟悉的输入设备 而磁盘 显示器 打印机 绘图仪等则是最常见的输出设备 亦即能够完成输入 输出操作的设备就叫输入 输出设备 简称外设或I O设备 外部设备种类繁多 从工作原理来讲 可分为机械式 电动式 电子式和其它形式等几类 它们对所传输的信息的要求也各不相同 外部设备及其信号 4 1 外部设备 PeripheralDevice 按照与CPU数据传输的方向划分 1 输入设备键盘 鼠标 光笔 输入图形信息的扫描仪 数码相机 检测现场信息的数字化测试仪表 模拟量采集和模拟量 数字量转换装置等 5 2 输出设备显示器 打印机绘图仪现场控制的数字量 模拟量转换装置和执行元件 3 复合输入 输出设备外存储设备是典型的复合输入 输出设备 磁带机 TapeDriver 软磁盘驱动器 FloppyDriver 硬磁盘驱动器 HardDiskDriver 光盘驱动器 CompactDiskDriver 许多光盘只能读出信息 称为CD ROM CompactDisk ReadOnlyMemory 只读光盘只能用作输入设备 6 2 外部设备的信号 1 数据信号按照信号的物理形态 可分为以下几种 数字量 以二进制形式表述的数据 图形或文字信息 模拟量 现场的物理量通过传感器件 转换为大小与之对应的电压或电流信号 这些量呈连续变化的形态 称为模拟量 Analog 开关量 开关量是只有二种状态 0 1 的量 如开关的接通 ON 与断开 OFF 电机的启停等脉冲量 计数脉冲 定时脉冲和控制脉冲对于输入设备 数据信号从外设送往CPU对于输出设备 数据信号从CPU发往外部设备 7 2 状态信号状态信号表明外部设备当前的工作状态 用来协调CPU与外部设备之间的操作 典型的状态信号 READY BUSY有的设备有指示出错状态的信号 如打印机的纸尽 PaperOut 故障 Fault 不同的外设可以有不同的状态信号 状态信号总是从外部设备发往CPU 8 3 控制信号控制信号是CPU向外设发出的命令 它指定设备的工作方式 启动或停止设备控制信号的格式因设备而异控制信号从CPU发往外部设备数据信号 状态信号 控制信号都是以 数据 的形式 通过数据总线在CPU和外部设备之间进行传输的 6 1接口电路概述 9 为什么需要I O接口 电路 计算机的外部设备多种多样 工作原理 驱动方式 信息格式 以及工作速度方面彼此差别很大 它们不能与CPU直接相连 必须经过中间电路再与系统相连 这部分电路被称为I O接口电路 6 1接口电路概述 10 I O接口 interface 输入 输出接口 I O接口 I O接口是指把外设同计算机连接起来实现数据传送的中间控制电路 多种外设 6 1 1I O接口电路的主要作用 11 1 信息传输功能 设备被 选中 时 从CPU或数据总线接收数据或控制信息 外部设备的数据或状态信息发往数据总线或CPU 2 速度匹配 CPU的速度很高 而外设的速度要低得多 而且不同的外设速度差异甚大 3 信号转换 电平 格式 CPU所使用的信号一般是TTL电平 而外设大多是复杂的机电设备 往往不能用TTL电平所驱动 外设使用的信息格式各不相同 有些设备上用的是模拟量 而有些是数字量或开关量 有些设备上是电流量 而有些却是电压量 有些设备采用串行方式传送数据 而有些则用并行方式 6 1 2I O接口电路中的端口及信息 12 接口电路的内部结构 13 CPU与外设主要有数据 状态和控制 命令 信息需要相互交换 于是从应用角度看内部 数据寄存器保存外设给CPU和CPU发往外设的数据 状态寄存器保存外设或接口电路的状态 控制寄存器保存CPU给外设或接口电路的命令 6 1 2I O接口电路中的端口及信息 14 CPU与外设之间不是直接交换数据 状态和命令 而是通过接口间接传送的 三种信息在形式上都是二进制代码 它们都是通过DB来传递的 分别放在接口内的不同寄存器 端口 中 CPU通过访问不同的地址端口 从而获取不同的端口内的信息 访问外设是通过访问其端口来实现的 6 1 2I O接口电路中的端口及信息 15 端口 接口内的寄存器 用来暂存CPU和外设之间传输的数据 状态和命令 端口地址 每一个端口有一个独立的地址 外部设备地址 设备接口内各端口的地址 一台外部设备可以拥有几个通常是相邻的端口地址 端口种类 数据端口 命令端口 控制端口 和状态端口 6 1 3外设的编址方式 16 准确的说是I O端口的编址方式 有两类编址形式 I O端口单独编址I O地址空间独立于存储地址空间I O端口与存储器统一编址它们共享一个地址空间 1 I O端口单独编址 17 优点 I O端口的地址空间独立 控制和地址译码电路相对简单 专门的I O指令使程序清晰易读 缺点 I O指令没有存储器指令丰富 需要增加I O读和I O写的控制信号引脚 例如 在8086CPU中 内存地址是连续的1M字节 从00000H FFFFFH 而外设的地址范围从0000H FFFFH 它们相互独立 互不影响 2 I O端口与存储器统一编址 18 优点 不需要专门的I O指令I O数据存取与存储器数据存取一样灵活缺点 I O端口要占去部分存储器地址空间程序不易阅读 不易分清访存和访问外设 51单片机采用的是外设I O端口与片外数据存储器统一编址 MOVX指令 说明1 接口电路的外部特性 19 主要体现在引脚上 分成两侧信号面向CPU一侧的信号 用于与CPU连接 主要是数据 地址和控制信号 大都是相似的 面向外设一侧的信号 用于与外设连接 提供的信号五花八门 功能定义 时序及有效电平等差异较大 说明2 接口电路芯片的分类 20 接口电路核心部分往往是一块或数块大规模集成电路芯片 接口芯片 通用接口芯片支持通用的数据输入输出和控制的接口芯片 并行接口8255 串行接口8250 8251 面向外设的专用接口芯片针对某种外设设计 与该种外设接口 键盘 显示器芯片8279 面向微机系统的专用接口芯片与CPU和系统配套使用 以增强其总体功能 中断控制器8259 定时器8253 8254 说明3 接口电路的可编程性 21 许多接口电路具有多种功能和工作方式 可以通过编程的方法选定其中一种 接口需要进行物理连接 还需要编写接口软件 接口软件有两类 初始化程序段 设定芯片工作方式等 数据交换程序段 管理 控制 驱动外设 负责外设和系统间信息交换 6 2I O传送方式 22 在微型计算机与外设之间交换数据时 由于外设的多样性 特别是工作速度的差异 数据传送可以有多种方式 归纳起来有如下4种不同控制方式 无条件传送查询式传送中断传送方式直接存储器存取方式 讲述的是计算机与外设之间数据传送的控制方式 1 无条件传送 23 外设在任何时刻都是处于 准备好 就绪 的状态 因此 这种传送方式中不需要查询状态信息 根据需要 只要在程序中加入访问外设的指令 数据传送便可以实现 可以随时进行数据传送 也称立即传送 同步传送 主要用于简单的外部设备 无条件传送 24 在无条件传送方式下 CPU和外设端口之间也要有接口电路 一般在输出端口上会有一个输出锁存器 CPU将要输出的信息存入输出锁存器 外设从锁存器读取信息 在输入端口上会有一个输入缓冲器 在不做输入操作的时候 缓冲器处于高阻状态 CPU实际上和输入的外设没有连接 需要做输入操作时 地址译码器的输出使缓冲器正常工作 输入设备的信息就可以通过缓冲器读入到CPU 适于无条件传送的设备 25 任何时刻都是处于 准备好 就绪 的状态 输入设备 按键或按纽 数字拨码盘等 输出设备 LED七段码显示器 发光二极管 数模D A转换器等 2 查询式传送 26 查询传送也称条件方式传送 用查询方式传送时 CPU通过执行程序不断读取并测试外设的状态 来决定是否进行数据传递 如果外设处于 准备好 状态 输入设备 或者 不忙 状态 输出设备 则CPU执行输入指令或输出指令与外设交换信息 因此 接口电路除了有传送数据的端口 还要求有传送状态的端口 2 查询式传送 27 对于查询传送来说 一个数据传送过程由3个环节组成 CPU从接口的状态端口中读取状态字 CPU检测状态字的对应位是否满足 就绪 的条件 如果不满足 则回到前一步读取状态字 如状态字表明外设已处于 就绪 状态 则开始传送数据 查询式传送的简易流程 28 查询也可以不采用循环等待 而用软件插人固定延时的方法来完成 在用查询方式传送数据时 CPU和外设接口之间要规定好两件事 1 查询信号是从数据线的哪一位引入的 2 查询信号的有效是用高电平1还是低电平0表示 查询式传送的完整流程 29 查询方式输入 查询方式输出 外设 CPU CPU 外设 当系统中有多个外设时查询方式如何工作 30 由图可见 CPU逐个对外设进行查询 若发现那个外设准备就绪 就对该外设实施数据传送 然后再对下一外设查询 依次循环 导致的后果 1 在查询过程中 CPU不能做别的事情 降低了CPU的效率 2 假如某一外设处于就绪状态 那么它必须等到CPU查询完它前面的所有外设 才能发现它处于就绪状态 这样就不能与外设进行实时数据交换 查询传送方式 结论 31 采取以CPU的程序控制为主的设计思路 外设是被动的 降低了CPU的效率 不能与外设进行实时数据交换 6 2 3中断传送方式 32 查询传送方式 由于是CPU主动要求传送数据 而它又不能控制外设的工作速度 因此只能用等待的方式来解决配合问题 中断 计算机系统根据需要 可以中断正常的工作程序 改去处理外部需要处理的事件 当外部事件处理完后再回到正常的工作程序中 中断传送方式 33 外设把数据准备好 需要和CPU进行交换时 外设主动向CPU发出中断请求 请求被接受后 CPU暂停正在执行的程序 转去为外设服务 执行中断服务程序 完成服务后再转回原程序继续执行 在采用中断方式时 外设具有某种主动申请的 权利 CPU在启动外设工作后继续执行主程序 同时外设也在工作 每当外设做完一件事就发出中断申请 请求CPU中断它正在执行的程序 转去执行中断服务程序 一般情况是处理输入 输出数据 中断处理完之后 CPU恢复执行主程序 外设也继续工作 CPU不必反复查询该设备的状态 在一定程度上实现了CPU和外设的并行工作 34 中断传送方式 若某一时刻有几个外设同时发中断请求信号 CPU可以根据预先安排好的优先级顺序 分轻重缓急分别处理每个外设的数据传送 这样也可以提高各个外设之的工作效率 在实时控制中 现场的各种参数 信息均随时间和现场的变化而变化 这些外界变量可根据要求随时向CPU发出中断申请 请求CPU及时处理 条件满足 CPU就会响应 实现了实时处理 针对难以预料的情况或故障 如掉电 存储出错 运算溢出等 可通过中断系统由故障源向CPU发出中断请求 再由CPU转到相应的故障处理程序进行处理 35 6 2 4直接存贮器存取 DMA 方式 为了提高外设和存贮器之间的数据传送速度 充分发挥高速外部设备的潜力 可以采用DMA方式 采用DMA方式时 外设和存贮器的数据交换不需要CPU的控制 也不需要任何程序的执行 而是在一种硬件DMA控制器的控制下直接进行的 这样传送速度可以大大地加快 用DMA方式传送数据 一次数据传输一般只要几个时钟周期就可以完成 例如 计算机进行大量的文件复制 就是由DMA控制器来控制数据的传递 而CPU此时可以从事其它工作 DMA DirectMemoryAccess 系统中应有一个专门的控制器来负责 外设和内存 外设和外设 之间的数据传递 这种控制器称为DMA控制器 36 6 3中断概述 中断 是CPU与外设交换信息的一种方式 计算机引入中断技术以后 不仅解决了CPU和外设之间的速度配合问题 还提高了CPU的效率 有了中断功能 计算机可以实时控制处理现场瞬息万变的信息 参数 也提高了计算机实时处理的能力 因此 计算机中断系统的功能也是鉴别它的性能的重要标志之一 中断系统是计算机的重要指标之一 某人看书执行主程序日常事务电话铃响中断信号如INT 0中断请求暂停看书暂停执行主程序中断响应书中作记号当前PC入栈保护断点电话谈话执行中断程序中断服务继续看书返回主程序中断返回 日常生活中的中断与计算机中断的比较 38 图解 中断 的概念 执行主程序 主程序 继续执行主程序 断点 中断请求 中断响应 执行中断处理程序 中断返回 39 中断处理与子程序调用的区别 中断处理与子程序调用的区别 调用哪个子程序 完成什么任务是用户设计程序时事先安排好的 是采用子程序调用指令实现的 而中断事件发生是随机的 哪个事件发生 何时调用中断处理程序是事先无法确定的 在程序中无法事先安排调用指令 调用中断处理程序的过程是由硬件自动完成的 中断的作用 中断系统应具有如下功能 1 实现中断与返回2 能实现优先权排队3 高级中断能中断低级中断优点实现高速CPU与慢速外设之间的配合 实现实时处理 实现故障的紧急处理 便于人机联系 41 二 中断源 中断源 引起中断的原因 或是能发出中断申请的来源 软件中断 硬件中断 软中断 是通过指令引起中断 例如8086中的INTn软中断指令n为中断类型号 0 255 51单片机没有软中断 硬件中断源就是发出中断请求信号的硬件电路或外设 例如 键盘 打印机 磁盘驱动器 定时计数器 串行通讯 模数转换器 外部实时测量控制过程等 硬件中断一般分为非屏蔽中断和可屏蔽中断 42 四 中断的开放与关闭 指的是可屏蔽中断的开放与关闭 与非屏蔽中断没有关系 中断的开放与关闭 亦称为开中断和关中断 CPU具有开中断和关中断状态 和CPU是否接受可屏蔽中断申请是一致的 当CPU处于关中断时 也就是对外实现了中断的屏蔽 CPU只有在开中断的状态下 才可以接受可屏蔽中断申请 开中断和关中断可以通过编写程序指令来实现 如对某一控制位的置1和请0 一般对中断源的管理采用二级控制 除了cpu的开中断和关中断 每一个中断源的申请也能单独控制 屏蔽或允许 和居民家中的用电管理很类似 43 五 中断源的识别 问题 系统有多个中断请求 CPU如何识别不同的中断源 1 cpu只有一个中断申请输入线 单线中断 软件查询 44 问题 系统有多个中断请求 CPU如何识别不同的中断源 2 CPU有多条中断申请输入线 多线中断 可结合软件查询 即CPU有若干条中断申请线 这时 中断源的判别就很简单 哪条中断申请线上信号有效 就知道是哪个外设发出了中断申请 MCS 51系统就有两条外部中断申请输入线 如果系统中只有两个中断源 中断源的识别就非常简单 如果中断源的数目超过了申请线的数目 对每条申请线 仍然可以便用软件查询的方法来确定中断源 45 问题 系统有多个中断请求 CPU如何识别不同的中断源 3 向量中断 矢量中断 向量中断也是一种单线中断 但不是完全通过软件方式来确定中断源 外设在申请中断时 通过接口电路向CPU发出一个称为中断类型号 中断向量 的8位二进制代码 每个不同的中断源具有不同的中断类型号 因此 CPU可以按照收到的不同中断类型号来判定究竟是哪个中断源发出了申请 然后 根据中断类型号来确定中断服务程序的入口地址 向量中断可以接入的中断源很多 在采用8位中断类型号的情况下 CPU可以区别256个中断源 因此在安排中断源时有很大的灵活性 快速 链式中断优先权排队电路 46 六 中断优先级与中断嵌套 在中断系统中 按照轻重缓急的原则给每一个中断源分配一个中断CPU的优先级 当多个中断源同时向CPU发出请求 通过判断中断优先级 中断判优 优先响应中断优先级最高的中断源的请求 待CPU处理完优先级最高的中断请求后 再依次按优先级顺序响应其它中断源的中断请求 47 六 中断优先级与中断嵌套 中断优先级的一般处理原则如下 不同优先级的中断同时申请 先高后低 很难遇到 相同优先级的中断同时申请 按序执行 很难遇到 正处理低优先级中断又接到高级别中断 高打断低 正处理高优先级中断又接到低级别中断 高不理低 当CPU正在处理某一中断源的请求时 若有优先级比它高的中断源发出中断申请 则CPU暂停正在进行的中断服务程序 并保留这个程序的断点 在高级的中断处理完毕后 再回到原被中断的源程序执行中断服务程序 此过程称为 中断嵌套 嵌套的深度 51单片机两级嵌套 49 6 4中断处理过程 6 4 1中断请求6 4 2中断响应中断响应的条件中断响应的基本操作中断入口地址的获得6 4 3中断处理保护现场处理开 关中断执行中断服务程序恢复现场结束中断服务程序6 4 4中断返回 50 6 4 1中断请求 申请 中断请求 中断源 或者通道接口电路 向CPU发出信号 要求CPU中断原来执行的程序并为它服务 中断请求信号可以是电平信号 也可能是脉冲信号 不同的CPU会有差别 要求中断源 能发中断请求信号请求信号与cpu设定的中断请求触发方式要一致 51 6 4 2中断响应 一 中断响应的条件 CPU是开中断的 当前正在执行的指令要执行完毕 没有同级或更高级的中断正在服务中 不同cpu的其它附加规定 52 6 4 2中断响应 二 中断响应的基本操作 当满足以上中断响应条件时 CPU响应中断的操作应包括识别中断源 且转去执行相应的中断服务程序 1 中止正在执行的程序 并保存断点地址 以便在中断服务结束时 恢复断点的地址 入栈保存 2 确定中断服务程序的人口地址 入口地址送程序计数器 从而转去执行中断服务程序 对多个中断源 确定中断服务程序人口地址就成为中断响应的一件主要工作 不同的CPU 方式并不相同 以上的中断响应基本操作是CPU自动完成的 不需要用户的干预 53 6 4 3中断处理 保护现场 和子程序类似 处理开 关中断 一般的中断系统在响应中断后是自动关中断的 在退出中断服务程序前 一般都要恢复到开中断的状态 不同的cpu差别可能较大 执行中断服务的处理程序 核心 恢复现场 和子程序类似 结束中断服务程序 中断处理也称中断服务 实际上就是执行中断服务程序 CPU通过执行中断服务程序来和外设交换数据 在中断服务程序中 一般要完成以下操作 54 6 4 4中断返回 中断返回是在中断服务程序的最后 用一条返回指令来实现的 此时 CPU将压入堆栈中保护起来的断点地址弹出到程序计数器PC 从而使CPU继续执行中断了的主程序 除了实现子程序返回的功能之外 还做一些与中断结束有关的工作 55 中断处理全过程 56 中断技术的作用 对突发事故 做出紧急处理 根据现场随时变化的各种参数 信息 做出实时监控 CPU与外部设备并行工作 以中断方式相联系 提高工作效率 解决快速CPU与慢速外设之间的矛盾 在多项外部设备同时提出中断请求情况下 CPU能根据轻重缓急响应外设的中断请求 57 6 5MCS 51的中断系统及其控制 CPU的中断系统完成对于中断过程的控制 不同的CPU的中断系统会有很大的不同 MCS 5l的中断系统相对简单 但是很有典型性 MCS 51中断系统中的特殊功能寄存器SFR定时器控制寄存器TCON中断允许寄存器IE中断优先级寄存器IP串行口控制寄存器SCON SFR都是以 位 作为单位来对中断过程进行各种控制的 从另一个角度来看 就是通过指令对这些寄存器的控制位进行清0或置1 就可以实现各种中断控制功能 MCS 51中断系统内部结构 MCS 51单片机的中断系统 四 中断源及其中断服务程序入口地址 1 MCS 51单片机有5个中断源 2个中断优先级 它的中断处理程序可实现两级嵌套 有较强的中断处理能力 单片机对中断系统的管理是通过相关的专用寄存器来实现的 中断入口地址 外中断0 INT0 0003H定时器0 T0 000BH外中断1 INT1 0013H定时器1 T1 001BH串行口 RI TI 0023H 二 与中断有关的SFR 1 中断允许控制寄存器IE0A8H 位地址是0A8H 0AFH IE 0 IE 7 各位为 1 表示允许中断 为 0 表示禁止中断 EA 中断允许的总控制位 IE 7EX0 外部中断0 INT0 允许控制位 IE 0EX1 外部中断1 INT1 允许控制位 IE 2ET0 定时计数器0 T0 允许控制位 IE 1ET1 定时计数器1 T1 允许控制位 IE 3ES 串行口 RI TI 允许控制位 IE 4 IE复位值是00H 即总中断开关关闭 禁止所有中断 单片机在响应中断后不能自动关中断 若想禁止中断嵌套 必须用软件关闭 软件关闭可以用字节寻址也可位寻址 例 开放外部中断0 MOVIE 81H或MOV0A8H 81H或SETBEASETBEX0 1 中断允许控制寄存器IE0A8H 2 定时器控制寄存器TCON88H 位地址是88H 8FH TCON 0 TCON 7 IT0 外中断0 INT0 请求信号方式控制位 ICON 0 IT0 0 低电平有效 即低电平引起中断 IT0 1 负跳变有效 即高电平跳变到低电平时引起中断 IT1 外中断1 INT1 请求信号方式控制位 ICON 2 作用同IT0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 8FH8EH8DH8CH8BH8AH89H88H位地址 64 外部中断请求的触发方式进一步解释 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON 88H IT1 外部中断1的中断触发方式控制位 IT1 0时 为电平触发方式 低电平有效 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平 若外部中断1请求为低电平 则使IE1置1 若为高电平 则使IE1 中断请求的标志位 清0 65 外部中断请求的触发方式进一步解释 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON 88H IT1 外部中断1的中断触发方式控制位 IT1 1时 为边沿触发方式 下降沿有效 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平 如果在相继的两个机器周期采样过程中 一个机器周期采样到外部中断1请求引脚为高电平 接着的下一个机器周期采样到为低电平 则使IE1置1 直到CPU响应该中断时 才由硬件使IE1清0 IE0 外中断0申请标志位 TCON 1 IE1 外中断1申请标志位 TCON 3 TF0 定时计数器T0溢出标志位 TCON 5 TF1 定时计数器T1溢出标志位 TCON 7 以上各位等于1时即申请中断 在中断响应后转向中断服务程序时 均有硬件自动清0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 8FH8EH8DH8CH8BH8AH89H88H位地址 67 TI RI SCON 98H 9FH9EH9DH9CH9BH9AH99H98H RI 串行口接收中断请求标志 在串行口每接收完一帧串行数据 硬件置位RI 以此向CPU请求中断 但CPU响应中断时 并不清零TI TI 串行口发送中断请求标志 CPU将一个数据写入发送缓冲器SBUF时 就启动发送 每发送完一帧串行数据后 硬件置位TI 但CPU响应中断时 并不清零TI 3 串行口控制寄存器SCON98H 注 RI TI的中断入口都是0023H 所以CPU响应后转入0023H开始执行服务程序 首先必须判断是RI中断还是TI中断 然后进行相应服务 在返回主程序之前必须用软件将RI或TI清除 否则会出现一次请求多次响应的错误 68 51单片机有两个中断优先级 每个中断请求源均可编程为高优先级中断或低优先级中断 中断优先级寄存器IP PS 串行口中断优先级控制位 PT1 定时器 计数器T1中断优先级控制位 PX1 外部中断1中断优先级控制位 PT0 定时器 计数器T0中断优先级控制位 PX0 外部中断0中断优先级控制位若某控制位为1 则相应的中断源规定为高级中断 反之 为0 则相应的中断源规定为低级中断 4 中断优先级寄存器IPB8H 中断优先权 当5个中断源在同一个优先级的情况下 由硬件顺序排列了优先权 INT0 T0 INT1 T1 串行口在开放中断的条件下 IE 使用中断优先级的原则 非中断服务程序可被任一个中断申请所中断 若干中断同时申请中断时 CPU先选择优先级高的进行中断响应 CPU同时接收到几个优先级相同的中断申请时 先响应中断优先权高的 低优先级可被高优先级的中断申请所中断 但同级不能嵌套 中断优先级的控制 70 中断嵌套 当CPU正在处理一个中断请求时 又出现了另一个优先级比它高的中断请求 这时 CPU就暂时中止执行对原来优先级较低的中断源的服务程序 保护当前断点 转去响应优先级更高的中断请求 并为它服务 待服务结束 再继续执行原来较低级的中断服务程序 该过程称为中断嵌套 51单片机有二级中断嵌套 中断系统中有两个不可寻址的 优先级状态 触发器 分别指出CPU正在执行的高 低优先级的中断服务程序 当其为1时则分别屏蔽同级的中断请求 71 51单片机二级中断嵌套 中断嵌套处理 中断系统中有两个不可寻址的 优先级状态 触发器 分别指出CPU正在执行的高 低优先级的中断服务程序 高级的置1 表示正在响应高优先级的中断 它将阻断后来所有的中断请求 低级的置1 表示正在响应低优先级中断 它将阻断后来所有的低优先级中断请求 73 七 中断响应 中断响应有两个问题需要首先关心 一是在什么条件下CPU可以响应中断 二是响应中断后如何确定中断服务程序的入口地址 51单片机各中断源的中断处理程序入口地址是固定的 74 中断响应条件 有中断源发出中断请求 中断总允许位EA 1 即CPU中断 申请中断的中断源的中断允许位为1 即中断没有被屏蔽 响应中断请求的条件如下 无同级或更高级中断正在被服务 当前的指令周期已经结束 若现行指令为RETI或是访问IE或IP指令时 该指令以及紧接着的另一条指令已执行完 CPU在每个机器周期的S5P2都对中断源进行检测 并对其排列顺序 在满足下列条件时才响应中断 无同级或更高级中断正在服务 当前指令周期已经结束 如当前查询的机器周期不是所执行指令的最后一个机器周期 即在完成所执行指令前 不会响应中断 从而保证指令在执行过程中不被打断 在执行的指令为RET RETI或任何访问IE或IP的指令 即只有在这些指令后面至少再执行一条指令时才能接受中断请求 CPU将在下一个机器周期S1响应中断 若中断申请已置1 但因上述条件封锁未被立即响应 且当封锁解除后申请已复位 则中断不再被响应 2 外部中断响应时间 从产生外部中断请求到开始执行中断服务程序的第一条指令的时间 最短需要三个周期 一个用于查询中断请求标志位 且这个周期恰好是指令的最后一个周期 则在这个机器周期结束后 中断请求被CPU响应 产生一条硬件自动生成的长调用指令LCALL 以使CPU转到相应的服务程序入口 这条指令需两个机器周期 故最少需三个机器周期 最长需8个机器周期 若在中断查询时正好开始执行RET RETI或访问IE IP 则需当前指令完成后再继续执行一条指令 才进行中断响应 RET RETI用2个机器周期 MUL DIV4个机器周期 LCALL2个机器周期 8个机器周期 3 外中断的采样 INT0 INT1只有外中断源才有采样问题MCS 51单片机在每个机器周期的S5P2对外中断请求引脚 P3 2 P3 3 采样 若有中断请求 则置位IE0和IE1 由于每个机器周期只采样一次 故为确保采样 在P3 2 P3 3引脚上的信号电平至少保持1个机器周期 电平触发方式 ICON 0 IT0 0 或ICON 2 IT1 0 时若CPU采样到INT0或INT1为低电平 该电平来自外部硬件 CPU无法控制 即可申请中断 在CPU响应前引脚必须保持低电平 但若低电平保持时间过长 在执行了一次中断程序后仍未撤销 还会引起中断 故在采用电平触发情况时 在这次中断服务程序执行完之前 引脚上必须变成高电平 一般很少使用电平触发方式边沿触发方式 ICON 0 IT0 1 或ICON 2 IT1 1 时CPU在S5P2采样 如果在相邻的两次采样中 第一次采到引脚 1 第二次采样引脚 0则置位IE0或IE1 申请中断 IE0和IE1状态可一直保持 直到CPU响应中断 进入中断服务程序后 IE0和IE1有硬件自动清0 九 中断请求的撤销 79 某一中断请求一旦得到响应 CPU必须把它相应的中断标志位清 0 否则 CPU可能因中断标志未及时撤除而重复响应同一中断请求 a 定时器T0和T1的溢出中断标志TF0和TF1 b 下降沿触发方式外部中断INT0和INT1的中断请求标志IE0和IE1 1 响应中断时 硬件自动撤除中断标志 a 串行口中断请求标志RI TI 原因是两个请求标志共用一个入口 b 低电平触发方式下的外部中断请求标志IE0和IE1 2 不能自动撤除的中断标志 5 堆栈的应用 保护断点 保护现场 在中断服务程序开始 就需要保护现场 由PUSH入栈 在中断服务程序最后 由POP出栈 注 入栈 出栈的顺序相反 入栈和出栈数目相同 PUSH和POP必须成对出现 设为堆栈区的字节单元不能再做数据缓冲区 SP初始值为07H 在初始化程序必须对SP置初值 在发生中断嵌套时 为防止入栈错误 可以 主程序只使用工作寄存器0区 第一个中断服务程序使用1区 第二个中断服务程序使用2区 81 十 中断系统的初始化 MCS 5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论