电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

[工学]单片微型计算机原理与接口技术课件 第五章80c51单片微机的中断系统原理及应用

61页
  • 卖家[上传人]:繁星
  • 文档编号:88358536
  • 上传时间:2019-04-25
  • 文档格式:PPT
  • 文档大小:1.63MB
  • / 61 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、普通高等教育“十一五”国家级规划教材 单片微型计算机原理与接口技术 (第二版) 高锋 编著 科学出版社 北京,第五章 80C51单片微机的 中断系统原理及应用,中断概念的出现,是计算机系统结构设计中的重大变革。 现代计算机中操作系统实现的管理调度,其物质基础就是丰富的中断功能和完善的中断系统。一个CPU资源要面向多个任务,出现资源竞争,而中断技术实质上是一种资源共享技术。 中断系统包括它的硬件和软件编程。, 中断系统的几个概念: 中断 程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向为处理外部或内部事件的中断服务程序中去;完成中断服务程序后,CPU继续原来被打断的程序,这样的过程称为中断响应过程,如图51所示。 中断源 能产生中断的外部和内部事件。,5.1 中断系统概述 5.1.1单片微机的中断系统需要解决的问题, 中断优先级 当有几个中断源同时申请中断时,或者CPU正在处理某中断源服务程序时,又有另一中断源申请中断,那么CPU必须要确定优先去处理谁的能力。 中断嵌套 优先级高的事件可以中断CPU正在处理的低级的中断服务程序,待完成了高级中断服务程序之后,再继续被打断

      2、的低级中断服务程序。, 实现故障的及时发现及处理 应用中由于外界的干扰、硬件或软件设计中存在问题等因素,在实际运行中会出现硬件故障、运算错误、程序运行故障等,有了中断技术,单片微机就能及时发现故障并自动处理。 实现人机联系 如通过键盘向单片微机发出中断请求,可以实时干预计算机的工作。, 单片微机的中断系统需要解决的问题 当单片微机内部或外部有中断申请时,CPU能及时响应中断,停下正在执行的任务,转去处理中断服务子程序,中断服务处理后能回到原断点处继续处理原先的任务; 当有多个中断源同时申请中断时,应能先响应优先级高的中断源,实现中断优先级的控制; 当低优先级中断源正在享用中断服务时,若这时优先级比它高的中断源也申请中断,要求能停下低优先级中断源的服务程序转去执行更高优先级中断源的服务程序,实现中断嵌套,并能逐级正确返回原断点处。, 实现CPU与外部设备的速度配合 通过中断的方法来协调快速CPU与慢速外部设备之间的工作。 实现实时控制 依靠中断技术能实现实时控制。 实时控制要求计算机能及时完成被控对象随机提出的分析和计算任务。在自动控制系统中,要求各控制参量随机地在任何时刻可向计算机发出

      3、请求,CPU必须作出快速响应、及时处理。,5.1.2 中断的主要功能,80C51的中断系统包括中断源、中断允许寄存器IE、中断优先级寄存器IP、中断矢量等。 在80C51中,只有两级中断优先级。图52是80C51的中断系统结构示意图。,5.2 80C51 的中断系统,80C51有5个中断源,80C52增加了一个中断源定时器计数器T2。 每一个中断源都能被程控为高优先级或低优先级。 两个外部中断源INT0和INT1:外部设备的中断请求信号、掉电等故障信号都可以从INT0或INT1引脚输入。 三个内部中断源:T0和T1的定时/计数谥出中断源和串行口发送或接收中断源。,5.2.1 中断源,1. 外部中断 外部中断是由外部信号引起的,共有两个外部中断,它们的中断请求信号分别从引脚INT0 和INT1 上引入。 外部中断请求有两种信号触发方式. 可通过设置有关控制位进行定义。 当设定为电平有效方式时,若INT0或INT1引脚上采样到有效的低电平,则向CPU提出中断请求; 当设定为跳变有效方式时,若INT0或INT1引脚上采样到有效负跳变,则向CPU提出中断请求。,INT0:外部中断0。 当IT0

      4、0 时,低电平有效; 当IT0=1时,下降沿有效。 INT1:外部中断1。 当IT10 时,低电平有效; 当IT1=1 时,下降沿有效。, 定时中断 当计数器发生计数溢出时,表明设定的定时时间到或计数值已满,这时可以向CPU申请中断。 80C51有两个源,即: TF0:T0溢出中断。 TF1:T1溢出中断。, 串行中断 每当串行口发送或接收一帧串行数据时,就产生一个中断请求。 RXD,TXD:串行中断。,矢量中断:当CPU响应中断时,由硬件直接产生一个固定的地址,即矢量地址,由矢量地址指出每个中断源设备的中断服务程序的入口。 当CPU识别出某个中断源时,由硬件直接给出一个与该中断源相对应的矢量地址,从而转入各自中断服务程序。中断矢量地址见表51。,5.2.2 中断矢量,INT0,INT1,T0 及 T1的中断标志存放在 TCON寄存器中;串行口的中断标志存放在 SCON寄存器中。 定时器计数器控制寄存器TCON: IT1:INT1的中断申请触发方式控制位 IT0:INT0的中断申请触发方式控制位。,5.3 中断的控制 5.3.1中断标志, TF1:T1计数溢出,由硬件置位,响应中断时由

      5、硬件复位。不用中断时用软件清0。 TF0:T0计数溢出,由硬件置位,响应中断时由硬件复位。不用中断时用软件清0。 IE11时,外部中断1向CPU申请中断。 IE01时,外部中断0向CPU申请中断。,串行口控制寄存器SCON: TI:串行口发送中断源。 发送完一帧,由硬件置位。响应中断后,必须用软件清 0。 RI:串行口接收中断源。 接收完一帧,由硬件置位。响应中断后,必须用软件清0。,中断允许和禁止由中断允许寄存器IE控制。 中断允许寄存器IE:,5.3.2 中断允许控制,IE寄存器中各位设置:为0时,禁止中断;为1时,允许中断。 系统复位后IE寄存器中各位均为0,禁止所有中断。, EX0:外部中断0中断允许位。 ET0:T0中断允许位。 EX1:外部中断1中断允许位。 ET1: T1中断允许位。 ES:串行口中断允许位。 EA:CPU中断允许位。当EA1,允许所有中断开放,总允许后,各中断的允许或禁止由各中断源的中断允许控制位进行设置;当EA0时,屏蔽所有中断。,在80C51中有高、低两个中断优先级,通过IP来设定。 中断优先级寄存器IP:,IP寄存器中各位设置:为0时,为低中断优先

      6、级;为1时,设为高中断优先级。 系统复位后IP寄存器中各位均为0,全部设定为低中断优先级。,5.3.3 中断优先级,中断优先级控制,还有两个不可寻址的优先级状态触发器,一个用于指示某一高优先级中断正在进行服务,而屏蔽其它高优先级中断;另一个用于指示某一低优先级中断正在进行服务,从而屏蔽其它低优先级中断,但不能屏蔽高优先级中断。 在中断执行过程中,高中断优先级可以中断低中断优先级的中断过程。但是若在中断服务程序中,关掉所有中断(CLR EA)或关掉部分中断时除外。 当CPU同时接收到两个不同优先级的中断请求时,先响应高优先级的中断,如果CPU同时接收到的是几个同一优先级的中断请求时,则由内部的硬件查询序列确定它们的优先服务次序,,在同一优先级内有一个由内部查询序列确定的笫二个优先级结构。其排列如下: 中断源 中断优先级 外部中断0 最高 定时器T0中断 外部中断1 定时器T1中断 串行口中断 定时器T2中断 最低(80C52),INT0,INT1的中断触发方式有两种: 电平触发方式,低电平有效。 跳变触发方式,电平发生由高到低的跳变时触发。 IT1、IT00,选择电平触发方式; IT1、

      7、IT0l,选择跳变触发方式,即当INT0,INT1引脚检测到前一个机器周期为高电平、后一个机器周期为低电平时,则置位IE0、IE1且向CPU申请中断。,5.3.4 外部中断触发方式,由于CPU每个机器周期采样INTO、INT1引脚信号一次,为确保中断请求被采样到,外部中断源送INTO、INT1引脚的中断请求信号应至少保持一个机器周期。 跳变触发方式,外部中断源送INT0、INT1引脚的中断请求信号高、低电平应至少各保持一个机器周期,才能确保CPU采集到电平的跳变; 电平触发方式,则外部中断源送INT0、INT1引脚请求中断的低电平有效信号,应一直保持到CPU响应中断为止。,1 由单片微机内部硬件自动复位。 对于T0、T1 的溢出中断和采用跳变触发方式的外部中断请求,在CPU响应中断后,由内部硬件自动清除中断标志TF0和TF1、IE0和IE1,而自动撤除中断请求。,5.3.5 中断请求的撤除,2应用软件清除相应标志。 对于串行接收发送中断请求和80C52中的T2的溢出和捕获中断请求,在CPU响应中断后,必须在中断服务程序中应用软件清除RI、TI、TF2和 EXF2这些中断标志,才能撤除中

      8、断。,3采用外加 硬件结合软件清除中断请求。 对于采用电平触发方式的外部中断请求,中断标志的撤消是自动的,但中断请求信号的低电平可能继续存在,在以后机器周期采样时又会把已清“0”的IE0、IE1标志重新置“1”,再次申请中断。 保证在中断响应后把中断请求信号从低电平强制改变为高电平。可在系统中加入如图5-3 所示电路。,从图5-3 中可看到,用D触发器锁存外部中断请求低电平,并通过触发器输出端Q送INT0或INT1,所以D触发器对外部中断请求没有影响。但在中断响应后,为了撤消低电平引起的中断请求,可利用D触发器的直接置位端SD来实现。采用80C51的一根I/O口线来控制SD端。只要在SD端输入一个负脉冲即可使D触发器置“1”。 ANL P1,#0FEH ;Q置1 ORL P1,#01H ;SD无效 使P1.0输出一个负脉冲,其持续时间为两个机器周期,足以使D触发器置位,撤除低电平中断请求。,从中断请求发生直到被响应去执行中断服务程序,中断响应过程的时序如图54所示。 中断采样 针对外部中断请求信号进行的,而内部中断请求都发生在芯片内部,可以直接置位TCON或SCON中的中断请求标志。

      9、在每个机器周期的S5P2期间,各中断标志采样相应的中断源,并置入相应标志。,5.4 中断响应过程和响应时间 5.4.1中断的响应过程, 中断查询 若查询到某中断标志为1,则按优先级的高低进行处理,即响应中断。 80C51的中断请求都汇集在TCON和SCON中。而CPU则在下一机器周期的S6期间按优先级的顺序查询各中断标志。 先查询高级中断,再查询低级中断。 同级中断按内部中断优先级序列查询。 如果查询到有中断标志位为“1” ,则表明有中断请求发生,接着从相邻的下一个机器周期的S1状态开始进行中断响应。, 中断响应 硬件自动生成长调用指令为LCALL addr16,而addr16就是各中断源的中断矢量地址(参见表5-1)。 先将程序计数器PC的内容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针SP加2。 将对应中断源的中断矢量地址装入PC,去执行中断服务程序。 中断服务程序由中断矢量地址开始执行,直至遇到RETI为止。 执行RETI,一是撤销中断申请,弹出断点地址进入PC,先弹出高位地址,后弹出低位地址,同时堆栈指针SP减2,恢复原程序的断点地址执行;二是恢复中断触发器原先状态。,中断响应是有条件的,在接受中断申请时,如遇下列情况之一时,硬件生成的长调用指令“LCALL”将被封锁: CPU正在执行同级或高一级的中断服务程序中。因为当一个中断被响应时,其对应的中断优先级触发器被置“1”,封锁了同级和低级中断; 查询中断请求的机器周期不是执行当前指令的最后一个周期。 当前正在执行RETI指令或执行对IE、IP的读写操作指令。80C51中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。,中断的执行过程与调用子程序相似点: 都是中断当前正在执行的程序,转去执行子程序或中断服务程序。 都是由硬件自动地把断点地址压入堆栈,然后通过软件完成现场保护。 执行完子程序或中断服务程序后,都要通过软件完成现

      《[工学]单片微型计算机原理与接口技术课件 第五章80c51单片微机的中断系统原理及应用》由会员繁星分享,可在线阅读,更多相关《[工学]单片微型计算机原理与接口技术课件 第五章80c51单片微机的中断系统原理及应用》请在金锄头文库上搜索。

      点击阅读更多内容
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.