中断系统课件盛党红.ppt

上传人:max****ui 文档编号:8325791 上传时间:2020-03-28 格式:PPT 页数:73 大小:506KB
返回 下载 相关 举报
中断系统课件盛党红.ppt_第1页
第1页 / 共73页
中断系统课件盛党红.ppt_第2页
第2页 / 共73页
中断系统课件盛党红.ppt_第3页
第3页 / 共73页
点击查看更多>>
资源描述
14 06 6 1中断传送方式当CPU正在处理某事件的时候 外部发生的某一事件请求CPU迅速去处理 于是CPU暂时中止当前的工作 转去处理所发生的事件 中断服务处理完该事件后 再返回到原来被中止的地方继续原来的工作 这样的过程称为中断 第六章中断系统 中断流程如图所示 返回 14 06 主程序 响应中断请求 中断服务程序 返回主程序 继续执行主程序 断点 中断流程 中断请求 返回 14 06 5 2中断的概念 一 中断系统二 中断源三 中断请求四 中断响应过程五 中断服务六 中断返回七 中断方式的特点 返回 14 06 一 中断系统 实现中断功能的部件称为中断系统 又称中断机构 返回 14 06 二 中断源 产生中断的请求源称为中断源 返回 14 06 三 中断请求 中断源向CPU提出的处理请求 称为中断请求或中断申请 返回 14 06 四 中断响应过程 CPU暂时中止自身的事物 转去处理事件的过程 称为CPU的中断响应过程 返回 14 06 五 中断服务 对事件的整个处理过程 称为中断服务 或中断处理 返回 14 06 六 中断返回 中断处理完毕 在返回到原来被中止的地方 称为中断返回 返回 14 06 七 中断方式的特点 2 将从现场采集的数据通过中断方式及时传送给CPU 经过处理后可立即作出反应 实现现场控制 采用查询方式很难做到及时采集 实时控制 1 中断方式消除了CPU在查询方式中的等待现象 大大提高了CPU的工作效率 返回 14 06 6 3MCS 51中断系统结构及中断控制 6 3 1MCS 51中断系统结构 6 3 2MCS 51中断源 6 3 3中断控制 返回 14 06 6 3 1MCS 51中断系统结构 一 中断系统结构二 中断技术实现的功能 返回 14 06 一 中断系统结构 MCS 51的中断系统的结构如图所示 返回 14 06 二 中断技术实现的功能 1 分时操作2 实时处理3 故障处理 返回 14 06 1 分时操作 计算机的中断系统可以使CPU与外设同时工作 CPU在启动外设后 便继续执行主程序 而外设被启动后 开始进行准备工作 当外设准备就绪时 就向CPU发出中断请求 CPU响应该中断请求并为其服务完毕后 返回原来的断点处继续运行主程序 外设在得到服务后 也继续进行自己的工作 因此 CPU可以使多个外设同时工作 并分时为各外设提供服务 从而提高了CPU的利用率和输入和输出的速度 返回 14 06 2 实时处理 当计算机用于实时控制时 请求CPU提供服务时随机发生的 有了中断系统 CPU就可以立即响应并加以处理 返回 14 06 3 故障处理 计算机在运行时往往会出现一些故障 如断电 存储器奇偶校验出错 运算溢出等 有了中断系统 当出现上述情况时 CPU可及时转去执行故障处理程序 自行处理故障而不必停机 返回 14 06 6 3 2MCS 51中断源 一 MCS 51中断系统的五个中断源二 通常情况的中断源 返回 14 06 一 MCS 51中断系统的五个中断源 1 INT0 外部中断0请求 低电平有效 通过P3 2引脚输入 2 INT1 外部中断1请求 低电平有效 通过P3 3引脚输入 3 T0 定时器 计数器0溢出中断请求 4 T1 定时器 计数器1溢出中断请求 5 TX RX 串行口中断请求 当串行口完成一帧数据的发送或接收时 便请求中断 返回 14 06 二 通常情况的中断源 1 I O外设2 硬件故障3 实时时钟4 为调试程序而设定的中断源 返回 14 06 6 3 3中断控制 一 中断请求标志二 中断允许控制三 中断优先级控制 返回 14 06 一 中断请求标志 1 定时器控制寄存器TCON中的中断标志位2 串行口控制寄存器SCON中的中断标志位 返回 14 06 1 TCON中的中断标志位 TCON为定时器 计数器T0和T1的控制器 同时也锁存T0和T1的溢出中断标志及外部中断0和1的中断标志等 与中断有关的位如图所示 各控制位的含义 返回 14 06 各控制位的含义 1 TF1 定时器 计数器T1溢出中断请求标志位 当启动T1计数后 T1从初值开始加1计数 计数器最高位产生溢出时 由硬件使TF1置1 并向CPU发出中断请求 当CPU响应中断时 硬件将自动对TF1清0 2 TF0 定时器 计数器T0溢出中断请求标志位 含义与TF1类同 3 IE1 外部中断1的中断请求标志 INT1 P3 3 当检测到外部中断引脚1上存在有效的中断请求信号时 由硬件使IE1置1 4 IE0 外部中断0的中断请求标志 INT0 P3 2 其含义与IE1类同 14 06 各控制位的含义 5 IT1 外部中断1的中断触发方式控制位 IT1 0时 外部中断1程控为电平触发方式 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平 若外部中断1请求为低电平 则使IE1置1 若为高电平 则使IE1清0 IT1 1时 外部中断1程控为边沿触发方式 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平 如果在相继的两个机器周期采样过程中 一个机器周期采样到外部中断1请求引脚为高电平 接着的下一个机器周期采样到为低电平 则使IE1置1 直到CPU响应该中断时 才由硬件使IE1清0 6 IT0 外部中断0的中断触发方式控制位 其含义与IT1类同 返回 14 06 2 串行口控制寄存器SCON中的中断标志位 SCON为串行口控制寄存器 其低2位锁存串行口的接收中断和发送中断标志RI和TI SCON中TI和RI的格式如图所示 返回 其控制位的含义 14 06 SCON中控制位的含义 1 TI 串行口发送中断请求标志 CPU将一个数据写入发送缓冲器SBUF时 就启动发送 每发送完一帧串行数据后 硬件置位TI 但CPU响应中断时 并不清除TI 必须在中断服务程序中由软件对TI清0 2 RI 串行口接收中断请求标志 在串行口允许接收时 每接收完一个串行帧 硬件置位RI 同样 CPU响应中断时不会清除RI 必须在中断服务程序中由软件对RI清0 返回 14 06 二 中断允许控制 1 中断允许寄存器IE的格式 返回 2 中断允许寄存器IE中各位的含义 14 06 2 中断允许寄存器IE中各位的含义 EA 中断允许总控制位 EA 0 屏蔽所有的中断请求 EA 1 CPU开放中断 对各中断源的中断请求是否允许 还要取决于各中断源的中断允许控制位的状态 这就是所谓的两级控制 ES 串行口中断允许位 ES 0 禁止串行口中断 ES 1 允许串行口中断 ET1 定时器 计数器T1的溢出中断允许位 ET1 0 禁止T1中断 ET1 1 允许T1中断 EX1 外部中断1的溢出中断允许位 EX1 0 禁止外部中断1中断 EX1 1 允许外部中断1中断 ET0 定时器 计数器T0的溢出中断允许位 ET0 0 禁止T0中断 ET0 1 允许T0中断 EX0 外部中断0的溢出中断允许位 EX0 0 禁止外部中断0中断 EX0 1 允许外部中断0中断 返回 14 06 例 假设允许片内定时器 计数器中断 禁止其他中断 试根据假设条件设置IE的相应值 解 IE 10001010B 8AH a 用字节操作指令MOVIE 8AH 或MOVA8H 8AH b 用位操作指令SETBET0 定时器 计数器0允许中断SETBET1 定时器 计数器1允许中断SETBEA CPU开中断 返回 14 06 三 中断优先级控制 1 MCS 51的中断优先级2 中断优先级寄存器IP3 中断优先级排列顺序4 中断优先级控制实现的功能 返回 14 06 1 MCS 51的中断优先级 MCS 51有两个中断优先级 每个中断请求源均可编程为高优先级中断或低优先级中断 中断系统中有两个不可寻址的 优先级生效 触发器 分别指出CPU正在执行的高 低优先级的中断服务程序 当其为1时则分别屏蔽所有的中断请求 返回 14 06 2 中断优先级寄存器IP 中断优先级寄存器IP的格式 中断优先级寄存器IP各控制位的含义 返回 14 06 中断优先级寄存器IP各控制位的含义 PS 串行口中断优先级控制位 PT1 定时器 计数器T1中断优先级控制位 PX1 外部中断1中断优先级控制位 PT0 定时器 计数器T0中断优先级控制位 PX0 外部中断0中断优先级控制位若某控制位为1 则相应的中断源规定为高级中断 反之 为0 则相应的中断源规定为低级中断 返回 14 06 3 中断优先级排列顺序 当同时接收到几个同一优先级的中断请求时 响应哪个中断源则取决于内部硬件查询顺序 其优先级顺序排列如图所示 返回 中断源同级内的中断优先级外部中断0中断高级定时器 计数器T0溢出中断外部中断1定时器 计数器T1溢出中断串行口中断低级 14 06 4 中断优先级控制实现的功能 1 按内部查询顺序排队当数个中断源同时向CPU发出中断请求时 CPU根据设计者事先确定的中断源顺序号的次序 依次响应其中断请求 2 实现中断嵌套当CPU正在处理一个中断请求时 又出现了另一个优先级比它高的中断请求 这时 CPU就暂时中止执行对原来优先级较低的中断源的服务程序 保护当前断点 转去响应优先级更高的中断请求 并为它服务 待服务结束 再继续执行原来较低级的中断服务程序 该过程称为中断嵌套 该中断系统称为多级中断系统 二级中断嵌套的中断过程如图所示 返回 14 06 图二级中断嵌套 返回 CPU在执行主程序 低级中断请求 响应低级中断请求 CPU执行低级中断服务程序 高级中断请求 响应高级中断请求 CPU执行高级中断服务程序 返回低级中断程序 返回主程序 14 06 例5 2 设8031的片外中断为高优先级 片内中断为低优先级 设置IP相应值 解 IP 00000101B 05H a 用字节操作指令MOVIP 05H 或MOV0B8H 05H b 用为操作指令SETBPX0SETBPX1CLRPSCLRPT0CLRPT1 返回 14 06 6 4中断处理过程 6 4 1中断处理过程的三个阶段 6 4 2中断响应 6 4 3中断处理 6 4 4中断返回 返回 14 06 6 4 1中断处理过程的三个阶段 中断处理过程可分为 中断响应中断处理中断返回中断处理的大致流程如右图所示 返回 14 06 6 4 2中断响应 一 中断响应条件二 中断响应操作过程三 中断响应时间 返回 14 06 一 中断响应条件 有中断源发出中断请求 中断总允许位EA 1 即CPU中断 申请中断的中断源的中断允许位为1 即中断没有被屏蔽 无同级或更高级中断正在被服务 当前的指令周期已经结束 若现行指令为RETI或是访问IE或IP指令时 该指令以及紧接着的另一条指令已执行完 返回 14 06 二 中断响应操作过程 1 中断响应操作过程 把当前PC值压入堆栈 保护断点 将相应的中断服务程序的入口地址送入PC 对有些中断源 CPU会自动清除中断标志 执行中断服务程序 执行到返回指令RETI 中断服务程序结束 将堆栈内容弹出到PC 返回到原来断点继续执行 2 各中断源及其对应的矢量地址 返回 14 06 三 中断响应时间 CPU不是在任何情况下都对中断请求予以响应 而不同的情况下对中断响应的时间是不同的 对于顺利的中断响应 其最短的响应时间为3个机器周期 对于受阻的中断响应 则响应时间会更长一些 若中断系统只有一个中断源 则响应时间为3 8个机器周期之间 返回 14 06 6 4 3中断处理 一 什么是中断处理二 中断处理包括的内容三 编写中断服务程序时的注意问题 返回 14 06 一 什么是中断处理 CPU响应中断后即转入中断服务程序的入口 执行中断服务程序 从中断服务程序的第一条指令开始到返回指令为止 这个过程称为中断处理或中断服务 返回 14 06 二 中断处理包括的内容 不同的中断源服务的内容及要求各不相同 其处理过程也就有所区别 一般情况 中断处理包括两部分内容 1 保护现场 如在中断服务程序中要用到PSW 工作寄存器和SFR等寄存器时 则在进入中断服务之前应将它们的内容保护起来 在中断结束 执行RETI指令前应恢复现场 2 为中断源服务 针对中断源的具体要求进行相应的处理 返回 14 06 三 编写中断服务程序时的注意问题 在中断矢量地址单元处放一条无条件转移指令 使中断服务程序可灵活地安排在64KBROM的任何空间 在中断服务程序中 应注意用软件保护现场 以免中断返回后丢失原来寄存器 累加器中的信息 若要在执行当前中断程序时禁止更高优先级中断 可以先用软件关闭CPU中断或禁止某中断源中断 在中断返回前再开放中断 返回 14 06 6 4 4中断返回 在中断服务程序中 最后一条指令必须为中断返回指令RETI CPU执行该指令时 一方面清除中断响应时所置位的 优先级生效 触发器 另一方面从当前栈顶弹出断点地址送入程序计数器PC 从而返回主程序 注意在中断服务程序中 PUSH和POP指令必须成对使用 否则 不能正确返回断点 返回 14 06 6 5外部中断扩展方法 MCS 51单片机有两个外部中断亲求请求输入端 INT0和INT1 实际应用中 若外部中断源有两个以上 则需要扩展外部中断源 6 5 1利用定时器扩展外部中断源 6 5 2中断加查询扩展外部中断源 返回 14 06 6 5 1利用定时器扩展外部中断源 MCS 51单片机有两个定时器 多具有两个内部中断标志和外部计数输入引脚 当定时器设置为计数方式时 计数初值设置为满量程FFH 一旦外部信号从计数器引脚输入一个负跳变信号 计数器加1产生溢出中断 从而转去处理该外部中断源的请求 将外部中断源信号接至T0或T1引脚 该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序 返回 14 06 6 5 2中断加查询扩展外部中断源 每一根中断输入线可以通过 线或 的关系连接多个外部中断源 同时利用输入端口线作为各个中断源的识别线 具体线路如图所示 有关中断服务程序的片段 返回 14 06 图多个外部中断源连接法 返回 14 06 DV1 装置1的中断服务程序AJMPEXITDV2 装置2的中断服务程序AJMPEXITDV3 装置3的中断服务程序AJMPEXITDV4 装置4的中断服务程序AJMPEXIT ORG0003HLJMPINTRP INT0中断服务程序入口ORG1000HINTRP PUSHPSW INT0中断服务程序是一个中断查询程序服务程序PUSHAJBP1 0 DV1JBP1 1 DV2JBP1 2 DV3JBP1 3 DV4EXIT POPAPOPPSWRETI 返回 14 06 6 6中断程序举例 6 6 1主程序 6 6 2中断服务程序 6 6 3中断服务程序举例 返回 14 06 6 6 1主程序 1 主程序的起始地址2 主程序的初始化内容 返回 14 06 1 主程序的起始地址 MCS 51系列单片机复位后 PC 0000H而0003H 002BH分别为各中断源的入口地址 编程时应在0000H处写一条跳转指令 一般为长跳转指令 主程序是以跳转的目标地址作为起始地址开始编写 一般从003H开始 如图5 12所示 返回 14 06 2 主程序的初始化内容 初始化 将用到的内部部件或扩展芯片进行初始工作状态设定 单片机复位后 特殊功能寄存器IE IP内容均为00H 所以应对IE IP进行初始化编程 以开放中断 允许某些中断源中断和设置中断优先级等 返回 14 06 6 6 2中断服务程序 当CPU接收到中断请求信号并予以响应后 CPU把当前的PC内容压入堆栈进行保护 然后转入响应的中断服务程序入口处执行 1 中断服务程序的起始地址2 中断服务程序编制中的注意事项 返回 14 06 1 中断服务程序的起始地址 中断系统对五个中断源分别规定了各自的入口地址 但这些入口地址相距很近 8个字节 如中断服务程序的指令代码少于8个字节 则可从规定的中断服务程序入口地址开始 直接编写中断服务程序 如中断服务程序的指令代码大于8个字节 则应采用与主程序相同的方法 在相应的入口处写一条跳转指令 并以跳转指令的目标地址作为中断服务程序的起始地址进行编程 以INT0为例 中断矢量地址为0003H 中断服务程序从0200H开始 如图5 13所示 返回 14 06 2 中断服务程序编制中的注意事项 视需要确定是否保护现场 及时清除那些不能被硬件自动清除的中断请求标志 以免产生错误的中断 中断服务程序中的压栈与弹栈指令必须成对使用 以确保中断服务程序的正确返回 主程序和中断服务程序之间的参数传递与主程序和子程序的参数传递方式相同 返回 14 06 6 6 3中断服务程序举例 例外部中断实验例利用中断显示系统故障 返回 14 06 例5 3外部中断实验 如图所示 将P1口的P1 4 P1 7作为输入位 P1 0 P1 3作为输出位 要求利用8031将开关所设的数据读入单片机内 并依次通过P1 0 P1 3输出 驱动发光二极管 以检查P1 4 P1 7输入的电平情况 若输入为高电平则相应的LED亮 现要求采用中断边沿触发方式 每中断一次 完成一次读 写操作 解 返回 14 06 返回 14 06 例5 3解 如图所示 采用外部中断0 中断申请从INT0输入 并采用了去抖动电路 当P1 0 P1 3的任何一位输出为1时 相应的发光二极管就会发光 当开关S1闭合时 发出中断请求 中断服务程序的矢量地址为0003H 源程序如下 源程序如下 ORG0000HLJMPMAIN 上电 转向主程序ORG0003H 外部中断0入口地址LJMPINSER 转向中断服务程序ORG0030H 主程序MAIN SETBEX0 允许外部中断0中断SETBIT0 选择边沿触发方式SETBEA CPU开中断HERE SJMPHERE 等待中断 ORG0200H 中断服务程序INSER MOVA 0F0HMOVP1 A 设P1 4 P1 7为输入MOVA P1 取开关数SWAPA A的高 低四位互换MOVP1 A 输出驱动LED发光RETI 中断返回END 返回 14 06 例利用中断显示系统故障 如图所示 此中断电路可实现系统的故障显示 当系统的各部分正常工作时 四个故障源的输入均为低电平 显示灯全不亮 当有某个部分出现故障时 则相应的输入线由低电平变为高电平 相应的发光二极管亮 解 返回 14 06 返回 四个故障源 14 06 例解 如图所示 当某一个故障信号输入线由低电平变为高点平时 会通过INT0线引起8031中断 边沿触发方式 在中断服务程序中 应将各故障源的信号读入 并加以查询 以进行相应的发光显示 源程序如下 ORG0000HLJMPMAIN 上电 转向主程序ORG0003H 外部中断0入口地址LJMPINSER 转向中断服务程序MAIN ANLP1 55H P1 0 P1 2 P1 4 P1 6为输入P1 1 P1 3 P1 5 P1 7为输出SETBEX0 允许外部中断0中断SETBIT0 选择边沿触发方式SETBEA CPU开中断HERE SJMPHERE 等待中断 INSER JNBP1 0 L1 查询中断源 P1 0 0 转L1SETBP1 1 是P1 0引起的中断 使相应的二极管亮L1 JNBP1 2 L2 继续查询SETBP1 3 L2 JNBP1 4 L3SETBP1 5L3 JNBP1 6 L4 SETBP1 7L4 RETIEND 返回 14 06 6 7思考题与习题 1 什么是中断和中断系统 其主要功能是什么 2 试编写一段对中断系统初始化的程序 使之允许INT0 INT1 TO 串行口中断 且使T0中断为高优先级中断 3 在单片机中 中断能实现哪些功能 4 89C51共有哪些中断源 对其中端请求如何进行控制 5 什么是中断优先级 中断优先处理的原则是什么 6 说明外部中断请求的查询和响应过程 返回 14 06 6 7思考题与习题 7 89C51在什么条件下可响应中断 8 简述89C51单片机的中断响应过程 8 在89C51内存中 应如何安排程序区 9 试述中断的作用及中断的全过程 10 当正在执行某一个中断源的中断服务程序时 如果有新的中断请求出现 试问在什么情况下可响应新的中断请求 在什么情况下不能响应新的中断请求 返回 14 06 6 7思考题与习题 11 MCS 51单片机有五个中断源 但只能设置两个中断优先级 因此 在中断优先级安排上受到一定的限制 试问以下几种中断优先顺序的安排 级别由高到低 是否可能 若可能 则应如何设置中断源的中断级别 否则 请简述不可能的理由 定时器0 定时器1 外中断0 外中断1 串行口中断 串行口中断 外中断0 定时器0 外中断1 定时器1 外中断0 定时器1 外中断1 定时器0 串行口中断 外中断0 外中断1 串行口中断 定时器0 定时器1 串行口中断 定时器0 外中断0 外中断1 定时器1 外中断0 外中断1 定时器0 串行口中断 定时器1 外中断0 定时器1 定时器0 外中断1 串行口中断 返回 14 06 6 7思考题与习题 12 简述MCS 51单片机的中断响应过程 13 MCS 51单片机外部中断源有几种触发中断请求的方法 如何实现中断请求 14 以中断方法设计单片机秒 分脉冲发生器 假定P1 0每秒产生一个机器周期的正脉冲 P1 1每分钟产生一个机器周期的正脉冲 第六章完 返回
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!