单片机MCS-51的中断系统.ppt_第1页
单片机MCS-51的中断系统.ppt_第2页
单片机MCS-51的中断系统.ppt_第3页
单片机MCS-51的中断系统.ppt_第4页
单片机MCS-51的中断系统.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

第四章MCS 51的中断系统 4 1中断的概念4 2MCS 51中断系统的结构4 3中断请求源4 4中断控制4 5中断响应4 6外部中断的响应时间4 7外部中断的触发方式选择4 8中断请求的撤销4 9中断服务程序的设计4 10多外部中断源系统设计 教学目标1 介绍MCS 51中断系统及中断控制 2 介绍中断处理的过程 3 介绍中断应用程序的编程 重点难点1 熟悉中断 中断源 中断服务程序 保护现场 恢复现场 中断优先级 中断处理等概念 2 掌握51中断入口地址和各中断控制寄存器含义及应用 包括TCON SCON IE和IP 3 掌握中断初始化和中断服务程序的编制 MCS 51有很强的I O接口扩展能力 I O外设扩展后 单片机要与各种形式的外设相连 这些外设的结构形式 信号种类与大小 工作速度的快慢相差很大 这就需要研究单片机与外设交换数据的方法 目前CPU与外设交换信息通常有以下几种形式 输入 输出的控制方式 一 无条件传送方式 CPU总是认为外设在任何时刻都处于 准备好 的状态 这种传送方式不需要交换状态信息 只需在程序中加入访问外设的指令 数据传送便可以实现 此种方法很少使用 二 查询方式传送也称程序控制法 先查询I O设备当前状态 若准备就绪 则交换数据 否则循环查询状态 优点 通用性好 可以用于各类外设和CPU间的数据传送 缺点 CPU在完成一次数据传送后要等待很长时间才能进行下一次的传送 在等待过程中 CPU不能进行其他操作 所以效率比较低 三 中断方式传送大多数时间计算机与外设并行工作 计算机不必因等待而浪费资源 当外设准备就绪 向CPU发出中断请求信号 CPU暂停当前程序 执行I O操作 当I O操作结束 CPU仍继续被中断的工作 4 1中断的概念 执行主程序 主程序 继续执行主程序 断点 中断请求 中断响应 执行中断处理程序 中断返回 中断系统 实现中断功能的部件 中断服务程序 中断之后所执行的处理程序 原来运行的程序称为主程序 断点 主程序被断开的位置 地址 中断源 向CPU发出中断请求的来源 中断请求 中断源向CPU提出的处理请求 又称中断申请 中断的相关概念 实现实时控制处理 提高处理故障的能力 解决CPU和外设之间的速度匹配问题 提高CPU的效率 实现人机对话 一般由键盘 按钮等发出中断请求 当CPU响应中断后 在中断服务程序中实现人机对话 中断方式的特点 4 2MCS 51中断系统的结构 5个中断源 2个中断优先级 可实现两级中断嵌套 中断使能可编程控制 中断优先级可编程控制 复位后 所有中断被禁止 且为低优先级 MCS 51的中断系统结构框图 4 3中断请求源 1 外部中断类由外部原因引起的 INT0 外部中断0请求信号 由P3 2引脚输入 中断请求标志为IE0 INT1 外部中断1请求信号 由P3 3引脚输入 中断请求标志为IE1 MCS 51的中断源可分为三类 外部中断 定时 计数器溢出中断和串行口中断 2 定时 计数中断类定时 计数中断是为满足定时或计数溢出处理的需要而设置的 在定时方式下 脉冲信号在单片机芯片内部发生 无需在芯片上设置引入端 但在计数方式时 中断源由单片机芯片外部引入 定时器 计数器T0溢出中断请求 中断请求标志为TF0 定时器 计数器T1溢出中断请求 中断请求标志为TF1 3 串行口中断类串行口中断为串行通信的需要而设置的 RI或TI 串行口中断请求标志 各中断源对应的中断服务程序入口地址 中断源入口地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H 中断请求标志 中断源申请中断时 要将相应的中断请求标志置位 CPU查询这些中断标志位状态 以决定是否响应中断 MCS 51中断标志位锁存在定时器控制寄存器TCON和串行口控制寄存器SCON中 1 定时器控制寄存器TCON D7D6D5D4D3D2D1D0 TCON位地址 字节地址 88H IT0和IT1 外部中断请求信号触发方式控制位IT0 或IT1 0 电平触发 INT0 或INT1 低电平有效 IT0 或IT1 1 边沿触发 引脚INT0 或INT1 上的电平由高到低负跳变有效 IT0 或IT1 位可由用户软件置1或清0 各控制位的含义 IE0和IE1 外部中断请求标志位若IT0 0 或IT1 0 每个机器周期的S5P2采样INT0 或INT1 若INT0 0则IE0 或IE1 由片内硬件自动置1 当IT0 1 或IT1 1 时 第一个机器周期采样到INT0 或INT1 为高电平 第二个机器周期为低电平 则IE0 或IE1 1 IE0 或IE1 1表示外部中断正在向CPU申请中断 当CPU响应中断 转向中断服务程序时 由硬件自动清 0 IE0 或IE1 TF0和TF1 定时器 计数器溢出中断请求标志位T0 或T1 启动计数后 加1计数 当最高位发生计数溢出时 TF0 或TF1 由片内硬件自动置1 向CPU请求中断 当完成中断响应 并转向中断服务程序时 由片内硬件自动清0 该标志位也可用于查询方式 非中断方式 即用户程序查询该位状态 判断是否应转向对应的处理程序段 待转入处理程序后 必须由软件清0 注意 MCS 51复位后 TCON被清0 2 串行口控制寄存器SCON SCON的字节地址为98H 可以位寻址 位地址是9FH 98H SCON为串行口控制寄存器 其低2位锁存串行口的接收中断和发送中断标志RI和TI TI SCON 1 串行口发送中断请求标志位 当CPU通过串行口每发送完一帧数据 TI由硬件自动置1 CPU响应中断时 不能自动清除TI 在转向中断服务程序后必须由软件清0 RI SCON 0 串行口接收中断请求标志位 当允许串行口接收数据时 每接收完一帧数据 RI由硬件自动置1 同样 RI必须在中断服务程序中用软件清0 TI和RI为何必须软件清0 因为串行口无论是发送中断还是接收中断 中断向量地址是惟一的 即0023H 待转向中断服务程序后 必须用软件查询TI或RI的状态 方可判断是串行发送中断还是串行接收中断 从而转向不同的处理程序段 这就是TI和RI不能由片内硬件自动清0 而必须由软件清0的原因 4 4中断控制 1 中断允许寄存器IE CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的 IE的字节地址是A8H 可位寻址 位地址为AFH A8H 中断允许寄存器IE的格式 EA IE 7 中断允许总控制位 EA 1 CPU开放所有中断 对各中断源的中断请求是否允许 还要取决于各中断源的中断允许控制位的状态 这就是所谓的两级控制 EA 0 屏蔽所有的中断请求 ES IE 4 串行口中断允许位 ES 1 允许串行口中断 ES 0 禁止串行口中断 ET1 IE 3 定时器1中断允许位 ET1 1 允许定时器1中断 ET1 0 禁止定时器1中断 中断允许寄存器IE各位含义 EX1 IE 2 外部中断1中断允许位 EX1 1 允许外部中断1中断 EX1 0 禁止外部中断1中断 ET0 IE 1 定时器0中断允许位 ET0 1 允许定时器0中断 ET0 0 禁止定时器0中断 EX0 IE 0 外部中断0中断允许位 EX0 1 允许外部中断0中断 EX0 0 禁止外部中断0中断 单片机响应中断后不会自动关中断 因此在转到中断服务程序后 应用软件完成关闭或打开中断操作 8051单片机系统复位后 IE中各中断允许位均被清0 即禁止所有中断 IE寄存器的设置 位操作指令 SETBBITCLRBIT字节操作指令 MOVIE DATAANLIE DATAORLIE DATAMOVIE A 例 假设允许片内定时器 计数器中断 禁止其他中断 试根据假设条件设置IE的相应值 解 IE 10001010B 8AH a 用字节操作指令MOVIE 8AH或MOVA8H 8AH b 用位操作指令SETBET0 定时器 计数器0允许中断SETBET1 定时器 计数器1允许中断SETBEA CPU开中断 2 中断优先级控制寄存器IP MCS 51单片机具有高 低两个中断优先级 各中断源优先级由IP寄存器有关位设置 每个中断请求源均可编程为高优先级中断或低优先级中断 IP寄存器的字节地址为B8H 可以位寻址 位地址为BFH B8H 中断优先级控制寄存器IP的格式 中断优先级寄存器IP各控制位的含义 PS 串行口中断优先级控制位 PT1 定时器 计数器T1中断优先级控制位 PX1 外部中断1中断优先级控制位 PT0 定时器 计数器T0中断优先级控制位 PX0 外部中断0中断优先级控制位若某控制位为1 则相应的中断源规定为高级中断 反之为0 则相应的中断源规定为低级中断 当系统复位后 IP低5位全部清 0 将所有中断源设置为低优先级中断 中断优先级控制中的特殊情况 1 自然优先级 2 中断嵌套 1 自然优先级 当同时接收到几个同一优先级的中断请求时 响应哪个中断源则取决于内部硬件查询顺序 其优先级顺序排列如下图所示 中断优先级排列顺序 中断源同级内的中断优先级外部中断0中断高级定时器 计数器T0溢出中断外部中断1定时器 计数器T1溢出中断串行口中断低级 CPU在执行主程序 低级中断请求 响应低级中断请求 CPU执行低级中断服务程序 高级中断请求 响应高级中断请求 CPU执行高级中断服务程序 返回低级中断程序 返回主程序 2 两级中断嵌套 不同级中断源同时申请中断时 先高后低同一级的中断源同时申请中断时 事先规定处理低级中断又收到高级中断申请时 停低转高处理高级中断又收到低级中断申请时 高不睬低 MCS 51对中断的处理原则 为了实现上述原则 中断系统内部设有两个用户不能寻址的优先级生效触发器 高优先级生效触发器和低优先级生效触发器 例 设置IP初值 使8031的2个外部中断源为高优先级 其它中断源为低优先级 解 IP 00000101B 05H a 用字节操作指令MOVIP 05H或MOV0B8H 05H b 用位操作指令SETBPX0SETBPX1CLRPSCLRPT0CLRPT1 4 5中断响应及处理过程 一个完整的中断处理的基本过程应该包括 中断请求 中断响应 中断处理以及中断返回 中断请求是中断源向CPU发出请求中断的信号 一般单片机提供有多条中断请求线 当中断源有服务要求时 可通过中断请求线 向CPU发出信号 请求CPU中断 一 中断请求 1 CPU的中断响应条件有中断源发出中断申请 CPU开中断 即中断总允许位EA 1 申请中断的中断源的中断允许位为1 即此中断源可以向CPU申请中断 无同级或更高级中断正在被服务 二 中断响应 中断响应是在满足CPU的中断响应条件之后 CPU对中断源中断请求的回答 2 中断标志位的查询 单片机在每个机器周期的S5P2状态根据中断请求信号的状态置位各自的中断请求标志 在下一个机器周期的S6状态下 按中断优先级顺序对中断请求标志位进行查询 如果查询到有的标志位为1 则表明有中断请求发生 因此紧接着的下一个机器周期的S1状态开始进入中断响应周期 中断查询在每个机器周期都要重复执行 但如果遇到下列条件之一 虽然中断标志位为1 也不能立即产生中断 CPU正在处理同级或高一级的中断 查询周期不处于执行当前指令的最后一个机器周期 这样是为了使当前指令执行完毕后才响应中断 以确保当前指令的完整执行 当前正在执行返回 RETI 指令或访问寄存器IE或IP的指令 因为按中断系统的特性规定 在执行完这些指令之后 还应再继续执行一条指令 方可响应中断 由于存在中断阻断的情况而未被及时响应 待上述封锁中断的条件被撤消之后 由于中断标志还存在 仍会响应 中断响应操作 CPU响应周期完成如下操作 将相应的优先级生效触发器置1 硬件清除相应的中断请求标志 串行口中断标志需要用软件清除 执行一条硬件自动生成子程序调用指令 执行中断服务程序 LCALLaddr16 addr16 中断向量地址 中断处理程序 又称中断服务 从入口地址开始执行 直到返回指令 RETI 为止 这个过程称为中断处理 三 中断处理 一般包括保护现场和处理中断源的请求及恢复现场三部分内容 一般累加器A PSW寄存器和其它一些特殊功能寄存器的内容需要保护 将优先级生效触发器清0 从堆栈中弹出栈顶的两个字节内容送PC 恢复断点 CPU转到断点处继续执行原程序 四 中断返回 RETI执行后 4 6中断响应时间 中断响应时间是从查询中断标志位的那个机器周期到转向中断入口地址所需要的机器周期数 不同的情况下对中断响应的时间是不同的 对于顺利的中断响应 其最短响应时间为3个机器周期 若中断系统只有一个中断源 则响应时间为3 8个机器周期之间 对于受阻的中断响应 则响应时间会更长一些 一般情况下 可不考虑响应时间 只在精确定时控制的场合需要考虑此问题 4 7外部中断的触发方式选择 外部中断的触发方式 电平触发和边沿触发 1 电平触发方式 特点 中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化 这样能提高CPU对外部中断请求的响应速度 要求 外部中断源若有请求 必须把有效的低电平保持到请求获得响应时为止 不然就会漏掉 而在中断服务程序结束之前 中断源又必须撤消其有效的低电平 否则中断返回之后将再次产生中断 电平触发方式适合于外部中断请求信号以低电平输入且中断服务程序能清除外部中断请求源的情况 2 边沿触发方式 特点 CPU采样到下降沿 则在IE0或IE1中将锁存一个逻辑1 即便是CPU暂时不能响应 中断申请标志也不会丢失 直到CPU响应此中断时才清零 要求 为保证下降沿能被可靠地采样到 外部中断引脚上的高低电平 负脉冲的宽度 均至少要保持一个机器周期 若晶振为12MHz时 为1微秒 边沿触发方式适合于以负脉冲形式输入的外部中断请求 1 定时器0或1溢出中断 CPU在响应中断后 中断请求自动撤消 2 边沿触发的外部中断 CPU在响应中断后 硬件自动清除有关的中断请求 3 串行口中断 CPU响应中断后 靠软件来清除相应的标志 4 8中断请求的撤消 CPU响应某中断请求后 在中断返回前 应撤消该中断请求 避免重复响应 CLRTI 清TI标志位CLRRI 清RI标志位 电平方式外部中断请求的撤除方法较复杂 图4 8是撤除电平方式的中断请求的可行方案之一 用P1 0接在触发器的直接置位端S端作为应答线 当CPU响应中断后可使用如下两条指令 SETBP1 0 将P1 0置1CLRP1 0 将P1 0清0 图4 8电平方式外部中断请求的撤消电路 4 9中断程序的设计 包含中断初始化程序和中断服务程序两部分 一 中断初始化程序中断初始化程序实质上就是对TCON SCON IE和IP寄存器的管理和控制 中断初始化程序一般不独立编写 而是包含在主程序中 中断初始化程序需完成以下操作 1 IE设置 CPU开中断 2 某一中断源中断请求的允许与禁止 屏蔽 3 IP设置 确定各中断源的优先级 4 若是外部中断请求 则要设定触发方式是电平触发还是边沿触发 例 假设规定外部中断0为电平触发方式 高优先级 试写出有关的初始化程序 解 可用两种方法完成 方法1 用位操作指令完成 SETBEA 开中断允许总控制位SETBEX0 外中断0开中断SETBPX0 外中断0高优先级CLRIT0 电平触发 方法2 用其它指令也可完成同样功能 MOVIE 81H 同时置位EA和EX0ORLIP 01H 置位PX0ANLTCON 0FEH 使IT0为0 二 采用中断时的主程序结构 ORG0000HLJMPMAINORG0003HLJMPINT0SERORG000BHLJMPT0SER ORG0030HMAIN 主程序INT0SER 外部中断0中断服务程序T0SER 定时器0中断服务程序 三 中断服务程序 中断服务程序是为中断源的特定要求服务的独立程序段 以中断返回指令RETI结束 中断服务程序流程 工作寄存器的现场保护和恢复 压栈和出栈使用直接寻址方式 寄存器组的切换 设置PSW的RS1 RS0位 便可起到现场保护的目的 例 原程序运行中使用0组 即RS1RS0 00 中断服务程序使用1组 PUSHPSW 保护0组CLRRS1 使用1组SETBRS0 POPPSW 恢复0组RETI 中断返回 中断服务程序编制中的注意事项 视需要确定是否保护现场 及时清除那些不能被硬件自动清除的中断请求标志 以免产生错误的中断 中断服务程序中的压栈与弹栈指令必须成对使用 以确保中断服务程序的正确返回 主程序和中断服务程序之间的参数传递与主程序和子程序的参数传递方式相同 典型中断服务程序 INT CLREA CPU关中断PUSHPSW 现场保护PUSHACC SETBEA CPU开中断中断服务程序CLREA CPU关中断POPACC 现场恢复POPPSW SETBEA CPU开中断RETI 中断返回 恢复断点 MCS 51单片机有两个外部中断请求输入端 INT0和INT1 实际应用中 若外部中断源有两个以上 则需要扩展外部中断源 利用定时器扩展外部中断源中断加查询扩展外部中断源用优先权编码器扩展外部中断源 4 10多外部中断源系统设计 利用定时器扩展外部中断源 MCS 51单片机有两个定时器 具有两个内部中断标志和外部计数输入引脚 当定时器设置为计数方式时 计数初值设置为满量程FFH 一旦外部信号从计数器引脚输入一个负跳变信号 计数器加1产生溢出中断 从而转去处理该外部中断源的请求 方法 1 定时器 计数器输入信号端T0 T1作外部中断输入 2 选择计数方式 设置为工作方式2 初值0FFH 允许T0 T1中断 CPU开放中断 启动计数 数据自动加载方式 TL 计数器TH 预置计数器 例 T0设置为外部计数模式 工作在方式2 初值自动重装 计数器TH0 TL0初值均为0FFH 并允许T0中断 CPU开放中断 ORG0000HAJMPIINI 跳到T0初始化程序ORG000BHLJMPT0IR IINI MOVTMOD 06H 设置T0的工作方式寄存器MOVTL0 0FFH T0置初值MOVTH0 0FFHSETBETO 允许T0中断SETBEA CPU开中断SETBTRO 启动T0 开始计数 T0IR 外部中断服务程序 中断加查询扩展外部中断源 方法 用一个中断入口接受多个外部中断源 并加入中断查询电路 中断源由硬件产生 中断源的识别由程序查询处理 具体线路如图5 11所示 有关中断服务程序的片段 多个外部中断源连接法 INT0INT1P1 0P1 1P1 2P1 3 8051 装置1 装置2 装置3 装置4 5V DV1 装置1的中断服务程序AJMPEXITDV2 装置2的中断服务程序AJMPEXITDV3 装置3的中断服务程序AJMPEXITDV4 装置4的中断服务程序AJMPEXIT ORG0003HLJMPINTRP INT0中断服务

温馨提示

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

评论

0/150

提交评论