输入输出与中断.ppt_第1页
输入输出与中断.ppt_第2页
输入输出与中断.ppt_第3页
输入输出与中断.ppt_第4页
输入输出与中断.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第5章 输入输出与中断,5.1 输入输出信息的传送方式 5.2 中断的概念 5.3 MCS -51单片机的中断系统 5.4 中断应用举例,5.1 输入输出信息的传送方式,5.1.1 输入输出的概念 单片机常用的输出设备有:显示器、指示灯、微型打印机等。 5.1.2 输入输出信息种类 计算机与输入输出设备之间交换信息形式:数据信息、控制信息和状态信息。 5.1.3 输入输出设备与CPU的连接 计算机的CPU与外设,并不直接相连,而是通过接口电路进行连接。它们的连接关系如图5-1所示。,1、锁存功能 接口电路用数据锁存器,解决双方速度匹配问题。 2、隔离作用 CPU既可以与存储器交换数据,也可以与任一外设交换数据。但任一时刻,只能与其中的一个设备交换数据。,接口电路作用,3、变换作用 当外设的电平幅度不符合计算机要求时,需要接口电路进行电平转换。 4、联络作用 只有在外设准备就绪时,才能与CPU交换数据,既可避免出错,又可提高CPU的工作效率。外设准备就绪状态,通过接口电路与计算机进行联系。因此,接口电路必需具有联络作用。,5.1.4 CPU对外设的两种编址方式 1、端口与主存储器单元统一编址 统一编址,把主存储器的一部分地址空间分给端口,把每一个端口作为一个存储单元。 2、端口单独编址 对端口单独编址时,端口不占主存储器地址空间,但必需设置专门的输入输出指令访问端口。,5.1.5 CPU与外设之间的数据传送方式 CPU与外设之间的数据传送方式通常有3种方式: 1、无条件传送方式(同步程序传送) 2、查询传送方式(CPU主动) 3、中断传送方式(CPU被动),5.2 中断的概念,5.2.1 中断概念 所谓中断,是指CPU正在处理某些事务的时候,外部又发生了另外一事件,请求CPU及时处理。于是,CPU暂时中断当前的工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原来的工作。这样的过程,称为中断。,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,5.2.2 为什么要使用中断 使CPU具有处理外界异步事件的能力(资源共享技术:单片机:实时控制)。 5.2.3 中断的嵌套,5.3 MCS -51单片机的中断系统,MCS-51单片机有5个中断源,两个优先级,可以实现两级中断嵌套。 5.3.1 中断系统的内部结构 MCS-51单片机中断系统的结构,如图5-5所示。,1、中断源(5个) (1) 外部中断源 外部中断源INT0、INT1是由外部输入的两个中断源。这两个外部中断请求源,直接触发寄存器TCON的IE0、IE1,产生中断标志。触发方式有两种,一种是脉冲触发,一种是电平触发。外部中断源的触发方式由TCON寄存器中的IT0、IT1来决定。下面介绍TCON寄存器中的IE0、IT0、IE1、IT1。TCON中的位格式如下:,IE0:为外部中断/INT0的请求标志位。当/INT0引脚上出现中断请求信号(低电平或脉冲下降沿)时,硬件自动将IE0置“1”,产生中断请求标志。 IT0:外部中断/INT0触发方式控制位。由软件来置“1”或清“0”,以控制外部中断/INT0的触发方式。 当IT0=1 时,外部中断/INT0为下降沿触发。即外部中断/INT0出现下降沿时,触发IE0,使其为“1”; 当IT0=0时,外部中断/INT0为电平触发。即外部中断INT0出现低电平时,触发IE0,使其为“0”。 IE1:为外部中断/INT1的请求标志位。功能与IE0相同。 IT1:外部中断/INT1触发方式控制位。功能与IT0相同。,(2) 内部中断源 内部中断源有定时器T0和T1溢出中断源,以及串行口发送接收中断源。MCS-51内部有2个定时器计数器T0T1,T0和T1内部都有各自的计数器。当计数器计满溢出时,分别产生溢出中断,使各自的中断标志位TF0、TF1置“1”,产生中断请求标志。TF0和TF1为TCON寄存器中的2位。,TF0:定时器T0的溢出中断标志位。 TF1:定时器T1的溢出中断标志位。 另一个内部中断源为串行口发送接收中断源。其中断标志位占用SCON寄存器中的2位,它们是发送中断请求标志TI和接收中断请求标志RI。SCON寄存器的位格式如下:,TI:串行口内部发送中断请求标志位。当串行口发送完一个字符后,由内部硬件使发送中断标志TI置位。产生中断请求标志。 RI:串行口内部接收中断请求标志位。当串行口接收到一个字符后,由内部硬件使接收中断请求标志位RI置位。产生中断请求标志。 串行口的发送中断TI,和接收中断RI,共用一个内部中断源。它们逻辑“或”后,作为一个内部的串行口中断源。,2.中断允许寄存器IE 中断允许寄存器IE的作用,是控制所有中断源的开放或禁止,以及每个中断源是否被允许。寄存器IE的位格式如下:,EA:中断总允许位。EA=1,CPU开放中断;EA=0,CPU禁止所有的中断请求。从图5-5的结构图中可以看到,总允许EA好比一个总开关。 ES:串行中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。 ET1:T1溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。 EX1:外部中断1允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。 ET0:T0溢出中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。 EX0:外部中断0允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。,3、中断优先级寄存器IP (1) 中断优先级寄存器IP的位格式及优先级的设定 MCS-51单片机具有2个中断优先级,均可编程设定为高优先级或低优先级。寄存器IP的位格式如下:,PS:串行口中断优先级控制位。PS=1,设定串行口为高优先级中断;PS=0,设定串行口为低优先级中断。 PT1:T1中断优先级控制位。PT1=1,设定定时器T1为高优先级中断;PT1=0,设定定时器T1为低优先级中断。 PX1:外部中断1优先级控制位。PX1=1,设定外部中断1为高优先级中断;PX1=0,设定外部中断1为低优先级中断。 PT0:T0中断优先级控制位。PT0=1,设定定时器T0为高优先级中断;PT0=0,设定定时器T0为低优先级中断。,PX0 :外部中断0优先级控制位。PX0=1,设定外部中断0为高优先级中断;PX0=0,设定外部中断0为低优先级中断。 MCS-51单片机复位后,IP寄存器低5位全部被清0,将所有中断源设置为低优先级中断。 (2) 不同优先级中断请求同时发生时CPU响应的优先顺序 (3) 相同优先级中断请求同时发生时CPU响应的优先顺序 MCS-51单片机有5个中断源,当它们处于同优先级时的优先级顺序如表6-1所示。,中断源 中断级别 外部中断0 最高 T0溢出中断 外部中断1 T1溢出中断 串行口中断 最低,5.3.2 中断响应与中断返回 1、中断响应条件(4个条件) (1) 中断源有请求。 (2) 寄存器IE的总允许位EA=1,且IE相应的中断允许 位为1。 (3) 无同级或高级中断正在服务。 (4) 现行指令执行完最后一个机器周期。 2、中断响应与中断返回 (1) 保存断点 (2) 取中断向量,(3) 执行中断服务程序及中断返回 (4) 响应中断后各中断标志位的清除,外部中断的响应时间,外部中断的最短的响应时间为3个机器周期。 (1)中断请求标志位查询占1个机器周期。 (2)子程序调用指令LCALL以转到相应的中断服务程序入口,则需要2个机器周期。 外部中断响应的最长时间为8个机器周期 如果在CPU进行中断标志查询时,刚好是开始执行RETI或是访问IE或IP的指令,则需把当前指令执行完再继续执行一条指令后,才能响应中断,最长需2个机器周期。接着再执行一条指令,按最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。加上硬件子程序调用指令LCALL的执行,需要2个机器周期。所以,外部中断响应最长时间为8个机器周期。 如果已在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间,这种情况下,响应时间就无法计算了。 在一个单一中断的系统里,MCS-51单片机对外部中断请求的响应的时间总是在38个机器周期之间。,外部中断的触发方式选择,两种触发方式:电平触发方式和跳沿触发方式。 1 电平触发方式 若外中断定义为电平触发方式,外中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化,这能提高响应速度。在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。 本方式适合于外中断以低电平输入且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。,外部中断的触发方式选择,2 跳沿触发方式 相继连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断申请触发器,直到CPU响应此中断时,该标志才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持12个时钟周期(若晶振频率为6MHz,则为2S)。,中断请求的撤消,1定时器/计数器中断请求的撤消 中断请求被响应后。硬件会自动清TF0或TF1。 2串行口中断请求的撤消 响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的撤消只能使用软件的方法 CLR TI ;清TI标志位 CLR RI ;清RI标志位,3外部中断请求的撤消 (1)跳沿方式外部中断请求的撤消是自动撤消的。 (2)电平方式外部中断请求的撤消。 除了标志位清“0”之外,还需在中断响应后把中断请求电平方式的外部中断请求信号引脚从低电平强制改变为高电平,如下图所示。,只要P1.0端输出一个负脉冲就可以使D触发器置“1”,从而撤消了低电平的中断请求信号。所需的负脉冲可通过在中断服务程序中增加如下两条指令得到: ORL P1,#01H ;P1.0为“1” ANL P1,#0FEH ;P1.0为“0”,中断服务程序的设计,一、中断服务程序设计的任务 基本任务有下列几条: (1)设置中断允许控制寄存器IE。 (2)设置中断优先级寄存器IP。 (3)对外中断源,要设置中断请求是采用电平触发方式还是 跳沿触发方式。 (4)编写中断服务程序,处理中断请求。 前3条一般放在主程序的初始化程序段中。,中断服务程序的设计,二、采用中断时的主程序结构 常用的主程序结构如下: ORG 0000H LJMP MAIN ORG 中断入口地址 LJMP INT ORG XXXXH MAIN:主 程 序 INT: 中断服务程序,5.4 中断应用举例,【例5-1】图5-6为3个故障源显示电路,当系统无故障时,3个故障源输入端X1X3全为低电平,对应的3个显示灯全灭;当某部分出现故障时,其对应的输入端由低电平变为高电平,从而引起MCS-51单片机中断,中断服务程序的任务是判定故障,并点亮对应的发光二极管。其中,发光二极管LED1LED3对应3个输入端X1X3。 实现上述功能的电路如图5-6所示。3个故障源X1X3通过“或非门”与8031单片机的外部中断0输入端相连,同时,X1X3与P0口的P1.0P1.2引脚相接,3支发光二极管LED1LED3分别与P0口的P1.3P1.5相接。,主程序为: ORG 0000H AJMP MAIN ORG 0003H AJMP SERVE ORG 0030H MAIN: ORL P1 , #0FFH ;灯全灭,准备读入 SETB IT0 ;选择边沿触发方式 SETB EX0 ;允许INT0中断 SETB EA ;CPU开中断 AJMP $ ;等待中断,中断服务子程序为: SERVE: JNB P1. 0 , L1 ;若X1无故障,跳到L1 CLR P1. 3

温馨提示

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

评论

0/150

提交评论