单片机原理及应用(C语言版)5.ppt_第1页
单片机原理及应用(C语言版)5.ppt_第2页
单片机原理及应用(C语言版)5.ppt_第3页
单片机原理及应用(C语言版)5.ppt_第4页
单片机原理及应用(C语言版)5.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及应用 C语言版 第5章MCS 51单片机中断系统 主编 周国运本章制作 仝选悦中国水利水电出版社 第5章MCS 51单片机中断系统 目录5 1中断概述5 2中断系统结构及控制5 3中断响应过程及处理过程5 4中断应用举例 本章主要讨论MCS 51单片机中断系统 内容主要有 MCS 51单片机中断系统结构 中断控制 中断优先级 中断处理过程 以及中断的应用 通过本章的学习 应该理解中断系统结构 中断响应的条件和中断处理过程 掌握中断控制 中断优先级 灵活的应用中断解决实际问题 第5章MCS 51单片机的中断系统 5 1中断概述 主要内容5 1 1微机的输入 输出几种控制方式5 1 2中断的相关概念 5 1 1微机的输入 输出几种控制方式 单片机系统中 CPU和外部设备之间不断进行信息的传输 通常CPU和外设之间的信息传送方式有以下几种 程序控制方式中断方式直接存储器存取 DMA 方式 5 1 1微机的输入 输出方式 1 程序控制方式可以分为以下两种方式 1 无条件传送方式外设始终处于就绪状态 CPU不必查询外设的状态 直接进行信息传输 称为无条件传送方式 此种信息传送方式只适用于简单的外设 如开关和数码段显示器等 5 1 1微机的输入 输出方式 2 条件传送方式CPU通过执行程序不断读取并测试外部设备状态 如果输入设备处于准备好状态或输出设备为空闲状态时 则CPU执行传送信息操作 由于条件传送方式需要CPU不断地查询外部设备的状态 然后才进行信息传送 所以也称为 查询式传送 5 1 1微机的输入 输出方式 2 中断方式外部设备与CPU之间以中断信号作为数据交换的控制信号 当外部设备需要与CPU进行数据交换时 由接口部件向CPU发出一个请求信号 CPU响应这一中断请求后 在中断服务程序中完成一个字节或多个字节的信息交换 中断方式具有并行工作 实时传输 充分利用CPU效率等特点 5 1 1微机的输入 输出方式 中断传送仍由CPU通过程序来传送 每次都要执行指令进行断点 现场的保护和恢复 对于高速I O 就显得速度太慢了 3 DMA方式 直接存储器存取 DMA控制方式主要用于存储器和外设之间直接传送 块传输 DMA请求总线 当某一外部设备需要输入 输出一批数据时 向DMA控制器发出请求 DMA控制器接收到这一请求后 向CPU发出总线请求信号 5 1 1微机的输入 输出方式 DMA控制数据传输 CPU响应DMA的请求 把总线使用权交给DMA控制器 DMA将外设数据读入 并直接写入存储器 或将数据从存储器读出并直接送给外设 传送过程不需要CPU参与 DMA释放总线 当一批数据传送后 DMA控制器再向CPU发出 结束总线请求 CPU响应请求 收回总线使用权 DMA方式速度高 效率高 可以与CPU并行工作 1 中断的概念CPU在正常运行的时候 外部或者内部发生了请求CPU迅速去处理的事件 CPU暂时中断当前的程序 去处理所发生的事件 处理完事件后 再返回到原来被中断的程序继续运行 此过程称为中断 5 1 2中断的相关概念 2 中断源引起CPU中断的设备和事件就是中断源 3 中断请求中断源向CPU发出的请求处理信号 即中断请求或中断申请 4 中断响应CPU暂时中止正在处理的事情 转去处理突发事件的过程 称为中断响应 5 1 2中断的相关概念 5 其他概念中断系统 实现中断功能的部件称为 又称中断机构 中断服务程序 CPU响应中断后 处理中断事件的程序 断点 CPU响应中断请求 转去执行中断服务程序时的PC值 即为断点地址 中断返回 CPU执行完中断服务程序后回到断点的过程 5 1 2中断的相关概念 6 中断的功能中断是计算机的一项重要技术 计算机引入中断后 大大提高了它的工作效率和处理问题的灵活性 主要功能有以下几个方面 使CPU与外设同步工作实现实时处理故障及时处理 5 1 2中断的相关概念 5 2中断系统的结构及控制 主要内容5 2 1MCS 51的中断结构5 2 2MCS 51的中断源 5 2 1MCS 51单片机的中断结构 中断系统构成 增强单片机主要由5个特殊功能寄存器 相关硬件电路等组成 有6个中断源 两个中断优先级 特殊功能寄存器主要用于 控制中断的开放和关闭 保存中断信息 设置中断的优先级别 硬件查询电路主要用于 判定6个中断源的优先级别 MCS 51增强型单片机的中断结构如图5 2所示 图5 2增强型单片机的中断系统结构 5 2 2MCS 51的中断源 MCS 51中断系统主要是对6个中断源进行管理 依次为 外部中断0 P3 2 外部中断1 P3 3 定时器 计数器0溢出中断定时器 计数器1溢出中断定时器 计数器2溢出中断串行口中断CPU主要是通过标志寄存器 控制寄存器 优先级寄存器对中断源进行管理 5 2 2MCS 51单片机的中断源 1 与中断标志相关的SFR主要有 定时器 计数器T0 T1控制寄存器TCON串行口控制寄存器SCON定时器 计数器2控制寄存器T2CON 第6章介绍 2 中断控制寄存器 TCON IE 3 中断优先级寄存器 IP 5 2 2MCS 51单片机的中断源 1 串行口控制寄存器SCON字节地址98H 可以位寻址 格式如下 TI SCON 1 串行口发送中断标志 串行口发送完一帧 由硬件置位 响应中断后 必须用软件清0 RI SCON 0 串行口接收中断标志 5 2 2MCS 51单片机的中断源 串行口接收完一帧 由硬件置位 响应中断后 必须用软件清0 例如 CLRTI 5 2 2MCS 51单片机的中断源 2 T0 T1的控制寄存器TCONTCON格式如下 TCON可位寻址 复位后TCON 00H TF1 TCON 7 T1溢出标志位当T1计满溢出时 由内部硬件置位 中断响应后自动清0 5 2 2MCS 51单片机的中断源 TF0 T0溢出标志位功能同TF1 IT1 外中断1触发方式设置位IT1 0 外中断1为低电平触发CPU在每一个机器周期的S5P2期间对P3 3引脚采样 若P3 3为低电平 则使IE1置1 否则IE1清0 5 2 2MCS 51单片机的中断源 IT1 1 外中断1为下降沿触发采样 CPU在每一个机器周期的S5P2期间对P3 3引脚采样 若上一个机器周期检测为高电平 紧挨着的下一个机器周期为低电平 则使IE1置1 IT0 外中断0触发方式控制位 功能同IT1 5 2 2MCS 51单片机的中断源 IE1 外中断1中断请求标志位外部中断1引脚有请求信号置1 IE1的清0方式问题 与外中断的触发方式有关 1 低电平触发 则P3 3引脚为高电平自动对IE1清0 2 下降沿触发 则CPU响应中断由硬件自动对IE1清0 IE0 外部中断0中断请求标志位功能同IE1 5 2 2MCS 51单片机的中断源 3 中断允许寄存器IE可以位寻址 其格式如图5 5所示 5 2 2MCS 51单片机的中断源 EA IE 7 中断允许总控位 EA 0 屏蔽所有的中断请求 EA 1 开放中断总控制位 ET2 IE 5 定时器 计数器2的中断允许位ET2 0 禁止T2中断 ET2 1 允许T2中断 ES IE 4 串行口中断允许位 5 2 2MCS 51单片机的中断源 ES 0 禁止串行口中断 ES 1 允许串行口中断 ET1 IE 3 定时器 计数器1中断允许ET1 0 禁止T1中断 ET1 1 允许T1中断 EX1 IE 2 外部中断1中断允许位EX1 0 禁止外部中断1中断 EX1 1 允许外部中断1中断 5 2 2MCS 51单片机的中断源 ET0 IE 1 定时器 计数器0中断允许位ET0 0 禁止T0中断 ET0 1 允许T0中断 EX0 IE 0 外部中断0的中断允许位EX0 0 禁止外部中断0中断 EX0 1 允许外部中断0中断 例5 1假设允许INT0 INT1 T0 T1中断 试设置IE的值 解 1 用C语言字节操作 IE 0 x8f 5 2 2MCS 51单片机的中断源 2 用C语言位操作指令EX0 1 允许外部中断0中断ET0 1 允许定时 计数器0中断EX1 1 允许外部中断1中断ET1 1 允许定时 计数器1中断EA 1 开总中断控制汇编语言 1 用字节操作指令 MOVIE 8FH 2 用位操作指令 5 2 2MCS 51单片机的中断源 SETBEX0 允许外部中断0中断SETBET0 允许定时 计数器0中断SETBEX1 允许外部中断1中断SETBET1 允许定时 计数器1中断SETBEA 开总中断控制位4 中断优先级控制寄存器IPMCS 51单片机有6个中断源 每个中断源有两级优先级控制 高优先级和低优先级 以便CPU对所有的中断实现两级中断嵌套 对IP设置可让中断源处于不同的优先级 5 2 2MCS 51单片机的中断源 IP复位后为00H 其格式如下图所示 PT2 IP 5 T2中断优先级控制位PT2 0 设置为低优先级 PT2 1 设置为高优先级 5 2 2MCS 51单片机的中断源 PS IP 4 串行口中断优先级控制位PS 0 设置为低优先级 PS 1 设置为高优先级 PT1 IP 3 T1的中断优先级控制位功能同PT2 PX1 IP 2 外中断1中断优先级控制位PX1 0 设置为低优先级 PX1 1 设置为高优先级 5 2 2MCS 51单片机的中断源 PT0 IP 1 T0中断优先级控制位功能同PT1 PX0 IP 0 外中断0中断优先级控制位功能同PX1 89C52单片机的中断优先级采用了自然优先级和人工设置高 低优先级的策略 中断处于同一级别时 就由自然优先级确定 开机时 每个中断都处于低优先级 中断优先级可以通过程序来设定 由中断优先级寄存器IP来统一管理 如下图所示 5 2 2MCS 51单片机的中断源 系统优先级规则图 5 2 2MCS 51单片机的中断源 中断优先级规则 1 对同时发生多个中断申请不同优先级的中断同时申请 先高后低相同优先级的中断同时申请 按序执行 2 不同时发生多个中断申请正处理低优先级中断又接到高级别中断 高打断低正处理高优先级中断又接到低级别中断 高不理低 5 2 2MCS 51单片机的中断源 在上述规则中 当CPU正在处理一个中断请求时 又出现了另一个优先级比它高的中断请求 就暂时中止执行优先级较低的中断源的服务程序 保护当前断点 转去处理更高的中断请求 服务完毕 回到原来被中止的中断程序继续执行 此过程为中断嵌套 两级中断嵌套的处理过程如图5 7所示 5 2 2MCS 51单片机的中断源 思考 当系统正在处理定时器0中断的过程中 定时器1和外部中断0有中断请求 描述CPU的中断处理过程 5 2 2MCS 51单片机的中断源 例5 2设定时器和串行口中断为高优先级 两个外部中断为低优先级 试设置IP的值 解 C语言程序IP 0 x3a 汇编语言程序 1 使用字节操作指令 MOVIP 3AH 2 使用位操作指令 CLRPX0 设置外部中断0为低级中断 5 2 2MCS 51单片机的中断源 CLRPX1 置外部中断1为低级中断SETBPT0 置定时器 计数器0为高级中断SETBPT1 置定时器 计数器0为高级中断SETBPS 置串行口中断为高优先级SETBPT2 置定时器 计数器2为高级中断由于复位后IP 00H 外部中断在此可以不设置 5 3中断响应及处理过程 主要内容5 3 1中断响应的过程5 3 2中断的处理和返回过程 5 3 1中断响应的过程 一 中断响应条件 1 中断源有中断请求 2 中断总允许位EA 1 3 发出中断请求的中断源的中断允许控制位为1 在满足以上条件的基础上 若有下列任何一种情况存在 硬件生成的长调用指令 LCALL 将被封锁 5 3 1中断响应的过程 1 CPU正在执行一个同级或高优先级的中断服务程序 2 正在执行的指令尚未执行完 3 正在执行中断返回指令RETI或者对寄存器IE IP进行读 写的指令 CPU在执行完上述指令之后 要再执行一条指令 才能响应中断请求 5 3 1中断响应的过程 二 中断响应过程从中断请求发生直到被响应 准备去执行中断服务程序 此过程即中断响应过程 中断响应过程一般包括如下几个阶段 1 中断采样并置位中断采样过程 CPU在每个机器周期S5P2期间顺序对中断源采样 置中断标志 2 查询标志在中断采样后的下一个周期的S6按优先级顺序查询中断标志 5 3 1中断响应的过程 3 响应中断在满足中断响应条件情况下 若中断标志为1 在接下来周期S1开始按优先级顺序进行中断处理 中断响应过程的操作步骤 硬件自动生成长调用指令LCALLaddr16 addr16为各中断源的中断程序入口地址 PC的内容 即断点地址 压入堆栈 先低位地址 后高位地址 并修改堆栈指针SP 将中断源的中断入口地址装入程序计数器PC 执行中断服务程序 5 3 1中断响应过程 三 中断响应的时间一般来说 中断的响应时间最短为3个机器周期 最长为8个机器周期 一般中断请求标志位查询占1个机器周期 而机器周期又恰好是指令的最后一个机器周期 执行此指令后 CPU将响应中断 产生硬件长调用指令 长调用LCALL指令需要2个机器周期 这样 中断响应时间为3个机器周期 5 3 1中断响应过程 响应时间最长的情况 8周期 CPU正在执行的是RETI指令 或访问IP IE指令 其后恰好是4个机器周期的指令MUL 或DIV 加上执行长调用指令LCALL所需2个机器周期 则需要8个机器周期 如果中断请求被前面所列三个条件之一所阻止 则所需的响应时间就更长 对于实时性要求高的系统 应该考虑中断响应的时间 5 3 2中断处理和返回过程 一 中断处理过程当CPU响应中断后 做中断处理 首先获得中断服务程序的入口地址 其次 执行中断服务程序 5 3 2中断处理和返回过程 中断服务程序一般包括三部分内容 保护现场中断处理程序恢复现场现场 是指中断发生时单片微机中存储单元 寄存器 特殊功能寄存器中的数据或标志位等 例如A B Rn PSW DPTR等 5 3 2中断的处理和返回过程 保护的方法可以有以下几种 进栈 使用PUSH POP 切换工作寄存器 暂存内部存储器单元多使用堆栈方法 PUSH POP成对使用 5 3 2中断处理和返回过程 二 中断返回使用RETI指令RETI指令包含两个功能 首先将相应的优先级状态触发器清0 以开放同级别中断源的中断请求 其次 从堆栈区把断点地址弹出给程序计数器PC 注意 不能用RET指令代替RETI指令 5 4中断应用举例 主要内容1 中断程序的组织结构2 中断的初始化过程3 中断服务程序的设计4 中断程序举例 5 4中断应用举例 一 中断程序安排1 主程序MCS 51单片机复位后 PC 0000H 主程序只分配0000H 0002H共3个单元 经常在0000H单元设置一条LJMP指令 转向主程序的入口处 而真正的主程序一般安排在中断区域之后 2 各中断服务程序每个中断服务程序在固定的位置由系统分配相邻的8个单元用于存储程序 5 4中断应用举例 程序组织的一般结构 ORG0000HLJMPMAINORG0003HLJMPINT 0 ORG0030HMAIN 主程序区 进行初始化SJMP 等待中断INT 0 外部中断0服务子程序 RETI 5 4中断应用举例 二 中断初始化步骤89C52单片机中 共有6个中断源 中断的初始化主要是对由5个特殊功能寄存器TCON T2CON SCON IE和IP的设置 中断初始化部分一般放在主程序中 5 4中断应用举例 三 中断服务程序流程设计MCS 51结束到中断请求后 在条件满足的情况下 响应中断并转到对应的中断服务程序入口处执行 中断程序主要由如下所示几部分组成 1 保护现场中断响应后 系统已自动将断点进行保护 保护现场 主要针对中断程序中的寄存器和存储单元 其位置在中断服务程序前段 5 4中断应用举例 2 关中断和开中断89C52允许中断嵌套 为了在保护现场或恢复现场时 由于CPU响应其它中断请求 而使现场破坏 一般在保护和恢复现场时 CPU不响应外界的中断请求 即关中断 在保护现场和恢复现场前 关中断 在保护现场和恢复现场后 再根据需要使CPU开中断 思考 如果允许中断嵌套 什么时间关中断和开中断 5 4中断应用举例 3 中断请求撤除CPU响应某中断请求后 在中断返回前 应该撤消该中断请求 中断请求撤除方法如下 定时器0 1溢出中断请求的撤除 允许中断的情况下 响应中断后 硬件会自动清除中断请求标志TFx 定时器 计数器2请求的撤除 T2中断请求标志位TF2和EXF2不能自动复位 须软件复位 串行口中断的撤除 串行口中断请求标志位TI和RI 必须软件复位 5 4中断应用举例 外部中断的撤除 外部中断为边沿触发方式时 响应中断后 硬件自动清除IE0或IE1 外部中断为电平触发方式时 响应中断后 硬件会自动清除IE0或IE1 但由于加到或引脚的外部中断请求信号并未撤除 中断请求标志IE0或IE1会再次被置1 所以在CPU响应中断后应立即撤除或引脚上的低电平 一般采用加一个D触发器和几条指令的方法来解决这个问题 5 4中断应用举例 4 中断源的识别串行口中断 接收请求标志RI和发送中断请求标志位TI共用中断入口地址 0023H 中断允许位ES和中断优先级选择位PS 定时器 计数器2 中断请求标志TF2和EXF2 共用一个中断矢量地址 002BH 中断允许位ET2和中断优先级选择位PT2 在中断服务程序中注意区分是哪种中断引起的中断请求 并清除其中断请求标志 5 4中断应用举例 5 恢复现场在结束中断服务程序 返回断点处前要恢复现场 6 中断返回当CPU执行到RETI指令时 将当前栈顶内容弹出到PC 恢复断点 注意 中断服务程序的最后一条指令 必须为RETI返回指令 不能为RET指令 5 4中断应用举例 例5 3如图5 9所示 将P1口的P1 4 P1 7作为输入位 P1 0 P1 3作为输出位 要求利用89C52将开关所设的数据读入单片机内 并依次通过P

温馨提示

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

评论

0/150

提交评论