第5章 中断系统.ppt_第1页
第5章 中断系统.ppt_第2页
第5章 中断系统.ppt_第3页
第5章 中断系统.ppt_第4页
第5章 中断系统.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第五章中断系统 中断概念中断源与中断标志中断控制中断过程中断请求撤消中断应用举例 中断的一般理解数据传送的双方平时各自做自己的工作 一旦甲方要求与乙方进行数据传送 就主动发出信号提出申请 乙方接到申请后若同意传送 安排好当前的工作 再响应与甲方发生数据传送 完事后 回去继续做打断前的工作 中断概念 什么是中断 中断的各环节 中断的专业理解所谓中断就是这样一个过程 当CPU正在执行某一程序时 如果外界或者内部发生了更为紧急的事件 请求CPU暂停正在执行的程序而去执行这个紧急事件要求处理的程序 待处理完后 再回到原来中断的地方 继续执行原来被中断的程序 中断系统 为了实现这一中断技术 计算机有相应的硬件机构和软件支持 称之为中断系统 中断源 可以向CPU发出中断请求的来源称为中断源 中断源可以是各种内外部电路 如I O设备 及事件 如定时时间到 主程序 中断服务子程序 中断响应 中断返回 断点 中断申请 中断过程 中断源向CPU提出 中断申请 CPU一旦对其响应便自动转入该中断源的中断服务程序执行 并在执行完后自动返回原程序继续执行 而且中断源不同中断服务程序也不同 中断响应应保存断点 置位中断逻辑 中断返回应恢复断点 释放中断逻辑 主程序 中断与调用的区别 中断类似于程序设计中的调用子程序 但它们还是有本质区别的 调用子程序是程序员事先安排好的 而中断的产生是由一些特殊事件触发的 会不会产生中断 什么时候产生中断完全是随机的 为了不影响重要的程序执行 CPU内部设有中断允许触发器 该触发器可根据需要开放或关闭 当CPU执行重要程序时 不希望干扰 则可用指令关闭该触发器 称为关中断 这时中断源的中断请求信号CPU是不去处理的 而CPU执行的程序不重要或不忙时 可用指令打开该触发器 称为开中断 只有开中断时CPU才能响应中断 中断允许与中断禁止 中断源有不同的中断优先级 级别越高响应优先权就越高 当CPU正在执行中断服务程序时 又有更高级的中断申请产生 CPU会暂停当前的中断服务转而处理高级中断申请 待高级中断处理程序完毕再返回原中断程序断点处继续执行 这一过程称为 中断嵌套 但当CPU正在执行中断服务程序时 又有相同或低级的中断申请产生 CPU不会响应 需返回主程序后再执行一条指令才能响应 中断优先级 中断响应遵循的规则 1 低级中断可以被高级中断所中断 高级中断不能被同级及低级中断所中断 2 CPU同时接收到几个中断请求时 首先响应级别最高的中断请求 中断系统是计算机的重要组成部分 是计算机必须具备的重要功能 在实时控制 故障自动处理时要用到中断 计算机与外部设备间传送数据及实现人机联系也常常采用中断方式 中断源与中断标志 51单片机有5个中断源 2个外部中断源 3个内部中断中断源 外中断外部事件中断0 INT0 外部事件中断1 INT1 定时中断定时器 计数器T0计数溢出中断定时器 计数器T1计数溢出中断串行数据传送中断串行接收数据中断 RI 串行发送数据中断 TI 为了使中断请求信号不丢失 为5个中断源分别设立了相应的中断请求标志位 以便CPU查询 1 外部中断是指从单片机引脚 INT0 INT1输入中断请求信号的中断 两种触发方式 电平触发及下跳变 脉冲 触发 可以通过对特殊功能寄存器TCON编程来选择 中断请求标志位 IE0 IE1 当检测到有有效的中断请求信号时 自动由硬件置位IE0 或IE1 并以此向CPU请求中断 当CPU响应中断转向中断服务程序时由硬件自动将IE0 或IE1 清零 电平触发方式 CPU在每个机器周期采样引脚 INT0 INT1 若引脚为低电平 则为有效的中断请求信号 跳变触发方式 若第一个机器周期采样到 INT0 INT1引脚为高电平 第二个机器周期采样到 INT0 INT1引脚为低电平 则为有效的中断请求信号 2 内部中断是单片机芯片内部产生的中断 中断请求标志位 TF0 TF1 TI或RI 当定时器 计数器T0 T1的定时或计数到时 由硬件自动置位TF0或TF1 并以此向CPU申请中断 CPU响应中断而转向中断服务程序时 由硬件自动将TF0或TF1清零 当串行口发送完或接收完一帧信息时 由硬件自动置位TI或RI 以此向CPU申请中断 CPU响应中断后 硬件不能自动将TI或RI清零 需用软件将其清零 标志位是相应中断源状态的锁存位 反映了是否有相应的中断申请 它们均可以用指令置位而实现软中断 中断控制 利用特殊功能寄存器TCON SCON IE IP及两个不可寻址的优先级状态触发器 中断逻辑 实现对中断系统的管理 中断系统管理 控制 包括 触发方式选择 保存中断源状态 中断允许的控制 中断源的优先级选择 1 定时器控制寄存器 TCON 88H 初值为00H 外中断请求标志位 外中断请求触发方式选择位 定时 计数器溢出请求中断标志位 1 脉冲触发方式 下跳沿有效 0 电平触发方式 低电平有效 各位均可由软件置 1 或清 0 用于定时 计数控制 2 串行口控制寄存器 SCON 98H 初值为00H 串行口发送中断标志位 串行口接收中断标志位 其他位用于串口工作时 3 中断允许控制寄存器 IE 0A8H 初值为00H EA中断总开关EX0外中断0中断开关EX1外中断1中断开关ET0定时器0中断开关ET1定时器1中断开关ES串行中断开关 各开关状态 1允许中断 各开关状态 0禁止中断 开关状态由软件设置 4 中断优先级控制寄存器 IP 0B8H 初值为00H PX0外中断0优先级设定PX1外中断1优先级设定PT0定时器0优先级设定PT1定时器1优先级设定PS串行中断优先级设定 各寄存器状态 1高优先级 各寄存器状态 0低优先级 优先级别由软件设置 优先级别共二级 当同时收到同一优先级的多个中断请求时 哪一个中断能得到响应 取决于 内部查询次序 相当于在每个优先级中 还有一个 内部优先级 内部查询次序 外中断0 定时中断0 外中断1 定时中断1 串口中断中断源优先级控制还要用到两个不可寻址的优先级状态触发器 一个用于指示正在响应某一高级中断 其它高级中断则被屏蔽 另一个用于指示正在响应某一低级中断 其它低级中断则被屏蔽 但不能屏蔽高级中断 中断初始化中断初始化就是对各个中断控制寄存器进行设置以便使用中断系统 中断初始化有三项内容 1 开放相应中断源的中断及总中断 2 设定所用中断源的中断优先级 3 若为外部中断 则应规定是电平触发方式还是边沿触发方式 MOVIE 81HMOVTCON 01H SETBEASETBEX0 SETBIT0 实现一次完整的中断 可分为以下几个步骤 1 中断采样 它是针对外部中断请求信号的 CPU在每个机器周期的S5P2采样引脚 INT0 INT1 并根据采样结果设置IE0 IE1标志位 即将外部中断请求信号锁定在该位 2 中断查询 CPU在每个机器周期的S6状态按优先级顺序查询中断请求标志位 如果查询到有标志位为 1 则表明有中断申请 接着从下一个机器周期的S1状态开始进行中断响应 中断过程 3 中断响应 由硬件完成以下功能 1 根据响应的中断源的中断优先级 使相应的优先级状态触发器置1 2 执行硬件中断服务子程序调用 把PC的内容压入堆栈以保护断点 把被响应的中断源所对应的中断服务程序的入口地址送入PC 从而转入相应的中断服务程序 3 清除相应的中断请求标志位 串行口中断请求标RI和TI除外 各中断源中断服务程序入口地址 中断矢量 外部中断00003H定时中断0000BH外部中断10013H定时中断1001BH串行口中断0023H 中断响应是有条件的 存在下列情况之一 中断响应被封锁 1 同级或高级中断正在处理 2 现行指令没有执行到最后1个机器周期 3 若现行指令为RETI或访问IE IP的指令时 执行完该指令且紧随其后的另一条指令执行完毕才能响应中断 4 中断处理 服务 CPU执行中断源的中断服务程序 根据中断源的需要进行某种操作或处理 根据需要有时要保护现场 在中断程序开始处 要恢复现场 在中断程序最后 返回前 为避免保护现场过程受到中断 为避免恢复现场过程受到中断 保护现场 保护进入中断服务前的主程序现场信息 即根据实际需要将某些寄存器及RAM单元的内容压入堆栈保存 为中断服务结束后回到主程序时不致使信息丢失 5 中断返回 由中断返回指令 RETI 实现 复位相应的优先级状态触发器 把断点从堆栈弹到PC中返回到主程序 中断请求的撤除 中断响应后 中断请求标志位应及时清除 1 对于定时中断 脉冲方式外部中断 中断响应后硬件自动将标志清零 脉冲方式的外部中断信号也自动消失 注意 不响应中断就不会将标志清零 2 对于串行中断请求标志位 在中断响应后需用软件 指令 将标志清零 3 对于电平触发的外部中断 尽管中断响应后硬件自动将标志清零 但由于CPU对 INTx引脚没有控制作用 中断响应后该引脚低电平信号会继续存在 于是在CPU再进行采样时 就把已经清零的标志位又重新置位 因此需要外接电路来撤除中断请求信号 电平触发方式的外中断请求撤销 SETBP1 0CLRP1 0 SD D触发器置1端 下跳沿有效 CP D触发器选通端 上跳沿触发 使Q D 中断应用举例 例某工业监控系统具有PH值监控功能 当PH值小于7时会向CPU发中断申请信号 CPU响应中断后应使P3 0引脚输出高电平 经驱动使加碱管道电磁阀接通1秒钟 以调整PH值 ORG0000HAJMPZUORG0003HAJMPIINT0 INT0中断程序入口ORG0030HZU SETBEA 开总中断SETBEX0 开 INT0中断SETBPX0 INT0高中断优先级CLRIT0 选电平触发方式L AJMP 等待中断 ORG0050HIINT0 PUSHPSWPUSHASETBPSW 3 选第1组工作寄存器CLRP1 6SETBP1 6SETBP3 0ACALLDELAYCLRP3 0POPAPOPPSWRETI 若系统具有温度 压力 PH值等多路监控功能 可让多个外部中断源共用引脚 INT0 把多个中断源的中断请求信号通过 线或 接于 INT0引脚上 那么得到中断请求后应确认是哪一个中断源的请求 可将各中断源的中断请求信号接到P1口各引脚 通过对P1口线的逐一检测来确定 一种扩展中断源的方法 将多个OC门反相器输出 线或 应把 INT0设置为电平触发 低电平有效 在中断服务程序中首先要进行扩展中断

温馨提示

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

评论

0/150

提交评论