




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 中断系统 蒋全胜 Page2 中断系统概述89C51中断系统结构及中断控制中断响应及中断处理过程中断程序举例 中断概念的出现 是计算机系统结构设计中的重大变革 中断功能是为了增加计算机处理各种突发事件的能力而设计的 中断技术实质是一种资源共享技术 5中断系统 Page3 中断 1 中断的概念 5 1中断系统概述 CPU执行主程序的过程中 外部或内部事件通过硬件打断程序的执行 使其转向执行为处理该事件的中断服务程序 完成中断服务程序后 CPU继续原来被打断的程序 这样一个过程称为中断 中断流程如图5 2所示 Page4 中断处理过程可分为8个环节 中断请求中断允许中断响应清除标志保护现场中断处理恢复现场中断返回 保护现场 为外设服务 恢复现场 中断请求 N K N m K 1 返回 中断处理 保护断点 恢复断点 5 1中断系统概述 Page5 1 中断请求 中断事件一旦发生或者中断条件一旦构成 中断源就提交 申请报告 即把相应的中断标志位置1 请求CPU暂时搁置目前的工作而转向为该中断源作专项服务的中断子程序 2 中断允许 虽然中断源提交了 申请报告 但是否能够得到CPU的受理和响应 还要取决于相应的 中断允许位 是否等于1 为1是放行 5 1中断系统概述 Page6 3 中断响应 如果一路放行 则中断申请能够被CPU受理并响应之后 将被打断的工作断点保护起来 同时把相应的中断矢量地址装载到程序计数器PC 引导CPU跳转到中断服务子程序 4 清除标志 需要进行撤销申请登记 即清除中断标志 以免造成重复受理或响应同一次申请 5 1中断系统概述 Page7 5 保护现场 在处理新任务时 有可能会破坏原来的工作现场 所以需要对工作现场和工作环境 一般指A PSW和R0 R7 进行适当保护 6 中断处理 开始对中断源进行有针对性的中断服务 5 1中断系统概述 Page8 7 恢复现场 恢复前面曾被保护起来的工作现场 以便继续执行被中断的工作 8 中断返回 将被打断的工作断点找回来 即把断点地址从堆栈中恢复到程序计数器PC里 简称为 弹出 或 出栈 继续执行原先被打断的工作 在上述的8个环节中 第 和 个环节是由硬件自动实现的 而第 个环节则是由用户软件完成的 5 1中断系统概述 Page9 中断系统 1 中断的概念 5 1中断系统概述 实现中断功能的部件称为中断系统 又称中断机构 中断源 产生中断的请求源称为中断源 中断响应过程 CPU暂时中止自身的事物 转去处理事件的过程 称为CPU的中断响应过程 Page10 中断优先级 1 中断的概念 5 1中断系统概述 中断被CPU优先响应的等级 当有几个中断源同时申请中断时 或者 当CPU正在执行某中断源的服务程序 又有另一中断源申请中断时 CPU根据优先级决定如何处理 优先级规则 高级可打断低级 Page11 中断嵌套 1 中断的概念 5 1中断系统概述 优先级高的中断打断CPU正在处理的优先级低的中断服务程序 待完成了高级中断服务程序之后 再继续被打断的低级中断服务程序 这个称为中断嵌套 Page12 中断的主要功能 2 中断的主要功能及需要解决的问题 5 1中断系统概述 实现快速CPU与慢速外设之间的速度匹配CPU可以与多个外设同时工作 并分时为各外设提供服务 从而提高了CPU的利用率和输入和输出的速度 实时处理当计算机用于实时控制时 请求CPU提供服务时随机发生的 有了中断系统 CPU就可以立即响应并加以处理 故障处理CPU可及时转去执行故障处理程序 自行处理故障而不必停机 人机联系 Page13 中断需要解决的问题 2 中断的主要功能及需要解决的问题 5 1中断系统概述 断点保护获取中断向量允许控制优先级控制 Page14 中断系统结构图 1 中断系统结构 5 289C51中断源及中断控制 TCON SCON IE IP Page15 2 89C51中断源 5 289C51中断源及中断控制 INT0 外部中断0请求 低电平有效 通过P3 2引脚输入 INT1 外部中断1请求 低电平有效 通过P3 3引脚输入 T0 定时器 计数器0溢出中断请求 通过P3 4引脚输入 T1 定时器 计数器1溢出中断请求 通过P3 5引脚输入 TXD RXD 串行口中断请求 当串行口完成一帧数据的发送或接收时 便请求中断 通过P3 1和P3 0引脚输入 Page16 2 89C51中断源 5 289C51中断源及中断控制 I O设备硬件故障实时时钟为调试程序设置中断源 Page17 3 中断控制 5 289C51中断源及中断控制 定时器控制寄存器TCON 用6位 串行口控制寄存器SCON 用2位 中断允许寄存器IE中断优先级寄存器IP 89C51中断系统有4个特殊功能寄存器 通过对各特殊功能寄存器各位进行置位或复位等操作 可实现各种中断控制功能 中断请求控制 Page18 3 中断控制 5 289C51中断源及中断控制 1 TCON中的中断标志位 6位 中断请求标志 TCON为定时器 计数器T0和T1的控制器 同时也锁存T0和T1的溢出中断标志及外部中断0和1的中断标志等 图5 4TCON中的中断标志位 TF1 TF0 IE1 IT1 IE0 IT0 TCON字节地址 88H 8FH8EH8DH8CH8BH8AH89H88H Page19 5 289C51中断源及中断控制 1 TCON中的中断标志位 6位 中断请求标志 TF1 定时器 计数器T1溢出中断请求标志位 当启动T1计数后 T1从初值开始加1计数 计数器最高位产生溢出时 由硬件使TF1置1 并向CPU发出中断请求 当CPU响应中断时 硬件将自动对TF1清0 TF0 定时器 计数器T0溢出中断请求标志位 含义与TF1类同 Page20 5 289C51中断源及中断控制 1 TCON中的中断标志位 6位 中断请求标志 IE1 外部中断1的中断请求标志 INT1 P3 3 当检测到外部中断引脚1上存在有效的中断请求信号时 由硬件使IE1置1 当CPU响应中断请求时 由硬件使IE1清0 IE0 外部中断0的中断请求标志 INT0 P3 2 其含义与IE1类同 Page21 5 289C51中断源及中断控制 1 TCON中的中断标志位 6位 中断请求标志 IT1 外部中断1的中断触发方式控制位 可由用户软件设置 IT1 0时 外部中断1程控为低电平触发方式 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平 若外部中断1请求为低电平 则使IE1置1 若为高电平 则使IE1清0 Page22 5 289C51中断源及中断控制 1 TCON中的中断标志位 6位 中断请求标志 IT1 外部中断1的中断触发方式控制位 IT1 1时 外部中断1程控为边沿触发方式 下降沿 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平 如果在相继的两个机器周期采样过程中 一个机器周期采样到外部中断1请求引脚为高电平 接着的下一个机器周期采样到为低电平 则使IE1置1 直到CPU响应该中断时 才由硬件使IE1清0 IT0 外部中断0的中断触发方式控制位 其含义与IT1类同 Page23 3 中断控制 5 289C51中断源及中断控制 1 SCON中的中断标志位 2位 中断请求标志 SCON为串行口控制寄存器 其低2位锁存串行口的接收中断和发送中断标志RI和TI 图5 5SCON中的中断标志位 TI RI SCON字节地址 98H 99H98H Page24 5 289C51中断源及中断控制 1 SCON中的中断标志位 2位 中断请求标志 TI 串行口发送中断请求标志 CPU将一个数据写入发送缓冲器SBUF时 就启动发送 每发送完一帧串行数据后 硬件置位TI 1 但CPU响应中断时 并不清除TI 必须在中断服务程序中由软件对TI清0 Page25 5 289C51中断源及中断控制 1 SCON中的中断标志位 2位 中断请求标志 RI 串行口接收中断请求标志 在串行口允许接收时 每接收完一个串行帧 硬件置位RI 同样 CPU响应中断时不会清除RI 必须在中断服务程序中由软件对RI清0 Page26 3 中断控制 5 289C51中断源及中断控制 IE中的中断允许控制位 中断允许控制 89C51对中断源的开放或屏蔽是由中断允许寄存器IE控制的 中断允许寄存器IE对中断的开放或关闭实现两级控制 图5 6中断允许控制位 EA ES ET1 EX1 ET0 EX0 IE字节地址 A8H AFHAEHADHACHABHAAHA9HA8H 默认状态为全0 Page27 5 289C51中断源及中断控制 中断允许控制 EA 中断允许总控制位 EA 0 屏蔽所有的中断请求 EA 1 CPU开放中断 对各中断源的中断请求是否允许 还要取决于各中断源的中断允许控制位的状态 这就是所谓的两级控制 Page28 5 289C51中断源及中断控制 中断允许控制 ES 串行口中断允许位 ES 0 禁止串行口中断 ES 1 允许串行口中断 Page29 5 289C51中断源及中断控制 中断允许控制 ET1 定时器 计数器T1的溢出中断允许位 ET1 0 禁止T1中断 ET1 1 允许T1中断 ET0 定时器 计数器T0的溢出中断允许位 ET0 0 禁止T0中断 ET0 1 允许T0中断 Page30 5 289C51中断源及中断控制 中断允许控制 EX1 外部中断1的溢出中断允许位 EX1 0 禁止外部中断1中断 EX1 1 允许外部中断1中断 EX0 外部中断0的溢出中断允许位 EX0 0 禁止外部中断0中断 EX0 1 允许外部中断0中断 Page31 若 IE 85H 问 哪些中断源打开 那些被屏蔽 解 IE 10000101 若 IE 05H问 那些中断源打开 那些被屏蔽 解 IE 00000101 例1 外部中断0和外部中断1打开 定时中断0 定时中断1和串行口中断被屏蔽 外部中断0 外部中断1 定时中断0 定时中断1和串行口中断都被屏蔽 5 289C51中断源及中断控制 Page32 假设允许片内定时器 计数器中断 禁止其他中断 试根据假设条件设置IE的相应值 5 289C51中断源及中断控制 例2 解 IE 10001010B 8AH a 用字节操作指令MOVIE 8AH 或MOVA8H 8AH b 用位操作指令SETBET0 定时器 计数器0允许中断SETBET1 定时器 计数器1允许中断SETBEA CPU开中断 Page33 5 289C51中断源及中断控制 中断优先级控制 89C51中断源有2个中断优先级 每个中断源可由软件设定为高级或低级 可实现2级中断嵌套 3 中断控制 Page34 5 289C51中断源及中断控制 IP中的中断优先级控制位 中断优先级控制 中断系统中有两个不可寻址的 优先级生效 触发器 分别指出CPU正在执行的高 低优先级的中断服务程序 当其为1时则分别屏蔽所有的中断请求 还有一个中断优先级寄存器IP 图5 7中断优先级控制位 IP字节地址 B8H BFHBEHBDHBCHBBHBAHB9HB8H Page35 5 289C51中断源及中断控制 中断优先级控制 BFHBEHBDHBCHBBHBAHB9HB8H PS 串行口中断优先级控制位 PT1 定时器 计数器T1中断优先级控制位 PX1 外部中断1中断优先级控制位 PT0 定时器 计数器T0中断优先级控制位 PX0 外部中断0中断优先级控制位 Page36 若某控制位为1 则相应的中断源规定为高级中断 反之 为0 则相应的中断源规定为低级中断 当同时接收到几个同一优先级的中断请求时 响应哪个中断源则取决于内部硬件查询顺序 中断优先级控制 5 289C51中断源及中断控制 同一级优先级中断请求的优先级结构 Page37 若 IP 14H 问 5个中断源优先级次序 解 IP 00010100 例3 由高到低为 外部中断1 串行口中断 外部中断0 定时中断0 定时中断1 5 289C51中断源及中断控制 BFHBEHBDHBCHBBHBAHB9HB8H Page38 设89C51的片外中断为高优先级 片内中断为低优先级 设置IP相应值 5 289C51中断源及中断控制 例4 解 IP 00000101B 05H a 用字节操作指令MOVIP 05H或MOV0B8H 05H b 用位操作指令SETBPX0 片外中断0中断高优先级SETBPX1 片外中断1中断高优先级CLRPS 串行口低优先级CLRPT0CLRPT1 Page39 1 中断响应 5 3中断响应及中断处理过程 中断响应条件 有中断源发出中断请求 中断总允许位EA 1 即CPU中断 申请中断的中断源的中断允许位为1 即中断没有被屏蔽 无同级或更高级中断正在被服务 当前的指令周期已经结束 若现行指令为RETI或是访问IE或IP指令时 该指令以及紧接着的另一条指令已执行完 必要条件 Page40 1 中断响应 5 3中断响应及中断处理过程 中断响应操作过程 把当前PC值压入堆栈 保护断点 将相应的中断服务程序的入口地址送入PC 对有些中断源 CPU会自动清除中断标志 执行中断服务程序 执行到返回指令RETI 中断服务程序结束 将堆栈内容弹出到PC 返回到原来断点继续执行 Page41 各中断源及其对应的矢量地址 1 中断响应 5 3中断响应及中断处理过程 中断响应操作过程 Page42 1 中断响应 5 3中断响应及中断处理过程 中断响应时间 CPU不是在任何情况下都对中断请求予以响应 而不同的情况下对中断响应的时间是不同的 对于顺利的中断响应 其最短的响应时间为3个机器周期 对于受阻的中断响应 则响应时间会更长一些 若中断系统只有一个中断源 则响应时间为3 8个机器周期之间 Page43 2 中断处理 5 3中断响应及中断处理过程 CPU响应中断后即转入中断服务程序的入口 执行中断服务程序 从中断服务程序的第一条指令开始到返回指令为止 这个过程称为中断处理或中断服务 不同的中断源服务的内容及要求各不相同 其处理过程也就有所区别 一般情况 中断处理包括两部分内容 Page44 2 中断处理 5 3中断响应及中断处理过程 保护现场 如在中断服务程序中要用到PSW 工作寄存器和SFR等寄存器时 则在进入中断服务之前应将它们的内容保护起来 在中断结束 执行RETI指令前应恢复现场 为中断源服务 针对中断源的具体要求进行相应的处理 Page45 中断处理过程的8个环节 中断请求中断允许中断响应清除标志保护现场中断处理恢复现场中断返回 保护现场 为外设服务 恢复现场 中断请求 N K N m K 1 返回 中断处理 保护断点 恢复断点 Page46 2 中断处理 5 3中断响应及中断处理过程 编写中断服务程序时的注意问题 在中断矢量地址单元处放一条无条件转移指令 使中断服务程序可灵活地安排在64KBROM的任何空间 在中断服务程序中 应注意用软件保护现场 以免中断返回后丢失原来寄存器 累加器中的信息 若要在执行当前中断程序时禁止更高优先级中断 可以先用软件关闭CPU中断或禁止某中断源中断 在中断返回前再开放中断 Page47 3 中断返回 5 3中断响应及中断处理过程 在中断服务程序中 最后一条指令必须为中断返回指令RETI CPU执行该指令时 一方面清除中断响应时所置位的 优先级生效 触发器 另一方面从当前栈顶弹出断点地址送入程序计数器PC 从而返回住程序 注意在中断服务程序中 PUSH和POP指令必须成对使用 否则 不能正确返回断点 Page48 1 主程序 5 4中断程序举例 主程序的起始地址 89C51单片机复位后 PC 0000H 而0003H 002BH分别为各中断源的入口地址 编程时应在0000H处写一条跳转指令 主程序是以跳转的目标地址作为起始地址开始编写 一般从0030H开始 Page49 1 主程序 5 4中断程序举例 主程序的初始化内容 初始化 将用到的内部部件或扩展芯片进行初始工作状态设定 单片机复位后 特殊功能寄存器IE IP内容均为00H 所以应对IE IP进行初始化编程 以开放中断 允许某些中断源中断和设置中断优先级等 Page50 2 中断服务程序 5 4中断程序举例 当CPU接收到中断请求信号并予以响应后 CPU把当前的PC内容压入堆栈进行保护 然后转入响应的中断服务程序入口处执行 中断服务程序的起始地址 中断系统对五个中断源分别规定了各自的入口地址 但这些入口地址相距很近 8个字节 Page51 2 中断服务程序 5 4中断程序举例 中断服务程序的起始地址 如中断服务程序的指令代码少于8个字节 则可从规定的中断服务程序入口地址开始 直接编写中断服务程序 如中断服务程序的指令代码大于8个字节 则应采用与主程序相同的方法 在相应的入口处写一条跳转指令 并以跳转指令的目标地址作为中断服务程序的起始地址进行编程 Page52 以INT0为例 中断矢量地址为0003H 中断服务程序从0200H开始 如图5 13所示 2 中断服务程序 5 4中断程序举例 中断服务程序的起始地址 Page53 编写中断服务程序时的注意问题 视需要确定是否保护现场 及时清除那些不能被硬件自动清除的中断请求标志 以免产生错误的中断 中断服务程序中的压栈与弹栈指令必须成对使用 以确保中断服务程序的正确返回 主程序和中断服务程序之间的参数传递与主程序和子程序的参数传递方式相同 2 中断服务程序 5 4中断程序举例 Page54 例题1 解 一般可采用位操作指令来实现 SETBEA 开中断SETBEX0 允许外中断0中断SETBPX0 外中断0定为高优先级CLRIT0 电平触发 若规定外部中断0为电平触发方式 高优先级 试写出有关的初始化程序 Page55 例题2 解 ORG0000H 主程序LJMPMAIN 主程序转至MAIN处ORG0013H 中断服务程序LJMPINT 中断服务程序转至INT处MAIN SETBEA 开中断SETBEXl 允许外中断1中断CLRPXl 设为低优先级SETBITl 边沿触发MOVB 01H 设B的初值 若规定外部中断1为边沿触发方式 低优先级 在中断服务程序中将寄存器B的内容左环移一位 B的初值设为01H 试编写主程序与中断服务程序 Page56 HALT SJMPHALT 暂停等待中断INT MOVA B A BRLA 左环移一位MOVB A 回送RETI 中断返回 Page57 例题3 1 边沿触发方式 SETIT0外部中断输入 P3 22 逐级开放中断SETBEX0SETBEA3 中断服务程序的位置外部中断0的入口地址 0003H中断服务子程序最后一条指令 RETI Page58 程序清单 ORG0000HLJMPMAIN 上电自动转向主程序ORG0003H 外部自动0入口地址LJMPINT0 SERVE 指向中断服务子程序ORG0030H 主程序MAIN SETBIT0 选择边沿触发方式SETBEX0 允许外部中断0SETBEA CPU允许中断 Page59 LOOP MOVA 01HMOVA 02HMOVA 03HSJMPLOOP 等待中断INT0 SERVE 中断服务程序MOV30H ARETI 中断返回END Page60 例5 4外部中断实验 如下图所示 将P1口的P1 4 P1 7作为输入位 P1 0 P1 3作为输出位 要求利用8031将开关所设的数据读入单片机内 并依次通过P1 0 P1 3输出 驱动发光二极管 以检查P1 4 P1 7输入的电平情况 若输入为高电平则相应的LED亮 现要求采用中断边沿触发方式 每中断一次 完成一次读 写操作 解 Page61 Page62 例5 3解 如图所示 采用外部中断0 中断申请从INT0输入 并采用了去抖动电路 当P1 0 P1 3的任何一位输出为1时 相应的发光二极管就会发光 当开关S1闭合时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-黑龙江-黑龙江舞台技术工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-辽宁-辽宁计算机文字录入处理员五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-北京-北京行政岗位工三级(高级工)历年参考题库含答案解析
- 县级综合面试题目及答案
- 临沂银行面试题目及答案
- 项目时间节点调整案例报告
- 智能会展数据分析报告
- 校园图书馆轻质材料应用案例研究报告
- 【2025年】海南省海口市【辅警协警】笔试模拟考试题(含答案)
- 【2025年】陕西省榆林市【辅警协警】笔试模拟考试题(含答案)
- 2025西安亮丽电力集团有限责任公司招聘10人笔试备考题库及1套完整答案详解
- 2025河北唐山某国有企业单位招聘劳务派遣工作人员44人笔试参考题库附带答案详解(10套)
- 成都银行总行招聘考试真题2024
- 基孔肯雅热培训测试题含答案
- 留疆战士考试题库及答案
- 小额贷款公司贷款五级分类办法
- 2025公卫执业医师考试试题(附答案)
- 医院药品质量管理课件
- 2025年上海市中考招生考试数学真题试卷(真题+答案)
- 大型活动策划组织与执行合同
- 2025年广东省中考英语试题卷(含答案解析)
评论
0/150
提交评论