第5章 输入/输出与中断

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章输入/输出与中断5.1输入/输出信息的传送方式5.2中断的概念5.3MCS-51单片机的中断系统5.4中断应用举例5.1输入/输出信息的传送方式5.1.1输入/输出的概念输入:通过键盘、开关和BCD拨码盘等把数据输入给计算机的过程。输出:通过计算机把结果输出给显示器、指示灯、微型打印机等的过程。5.1.2输入/输出信息种类计算机与输入/输出设备之间交换信息,有三种信息形式:数据信息、控制信息和状态信息。5.1.3输入/输出设备与CPU的连接计算机的CPU与外设,并不直接相连,而是通过接口电路进行连接。它们的连接关系如图5-1所示。三个概念了解一下5.1.4CPU对外设的编址方式CPU与接口交换信息也必须给每一个接口赋一个地址,且此地址是唯一的,这个地址称为端口地址。所有的端口都需要编址。常用的编址方式有统一编址和独立编址。51单片机采用统一编址方式。接下去就来看看这个统一编址的概念:统一编址是把主存储器的一部分地址空间分给端口,把每一个端口作为一个存储单元。也就是对端口信息处理的时候就像对外部数据存储器处理的时候一样,采用相同的指令。补充内容:(地址的译码)以上了解了单片机外围芯片的编址方式,但是还不了解外围芯片地址的组成(地址的译码)。对外围芯片进行处理的时候主要要完成两个选择:一是必须选择出要操作的芯片,(片选);二是选出该芯片的存储字节单元。也就是真正的地址是由两部分组成的,片选加字节单元。常用方法:线选法和译码法线选法:把单片机单根地址线直接连接到外围电路芯片或外设的片选端,以此获得一确定的地址信号,由此选通该外围电路.如下图:上图中片选信号全部由P2口单线选通.芯片的内部的地址值,如6116的A0-A10,8255的A1,A0等,已由单片机提供了内部地址.外围期间地址选择线(A15—A0)片内地址单元数地址编码611611110×××××××××××2KF000—F7FFH825511101111111111××4EFFC--EFFFH083210111111111111111BFFFH825301111111111111××47FFC—7FFFH这种方法简单,但地址重叠太多,地址空间未能充分利用。所以一般用在外围电路较少的系统中。译码法:通常采用译码器对单片机的高位地址进行译码,译出的信号作为片选信号。(解释一下138工作原理)器件地址选择线(A15—A0)片内地址单元地址编码611600011×××××××××××2K1800—1FFFH825301111111111111××47FFC—7FFFH0832010111111111111115FFFH825500111111111111××43FFC—3FFFH上例中通过改变P2.7、P2.6、P2.5的组成就可以来进行片选5.1.5CPU与外设之间的数据传送方式CPU与外设之间的数据传送方式通常有以下3种方式:无条件传送方式、查询方式和中断方式。1、无条件传送方式当CPU与外设之间的数据传送采用无条件传送方式时,CPU总是认为外设时刻处于“准备好”的状态。因此,采用这种数据传送方式不需要交换状态信息。比如将显示代码送给LED数码管的时候就可以采用这种方式。2、查询传送方式查询外设是否准备好→等待→数据传送优点:通用性好缺点:CPU利用率比较低,延时等待的过程中,CPU只能处理延时程序,不能做别的事情.3、中断传送方式为了避免查询等待时间,提高CPU利用率,可以采用中断方式传送数据.在这种方式中,CPU不需要每时每刻去查询,在中断信号每来的时候CPU可以做别的事情.只有当中断信号来的时候,CPU才暂停工作,去执行中断服务程序.这样就提高了利用率.5.2中断的概念一、中断的定义所谓中断,是指CPU正在处理某些事务的时候,外部又发生了某一事件,请求CPU及时处理。于是,CPU暂时中断当前的工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原来的工作。这样的过程,称为中断。二、中断系统1、几个技术名词中断源:产生中断请求的事件(外部中断0,外部中断1,定时器T0中断、定时器T1中断、串行口中断)中断请求(中断申请):中断源向CPU提出的处理请求中断响应过程:CPU暂时中止自身事务,转去执行事件处理的过程中断服务(中断处理):对事件处理的整个过程中断返回:事件处理完毕再回到原程序被中止的地方,继续执行程序主程序:在中断之前正在运行的程序中断服务程序:响应中断之后CPU执行的处理程序2、中断系统的任务(主要解决的问题)(1)中断源以什么方式提出中断,CPU如何识别提出中断的中断源回答:通常CPU为每个中断源设置一个中断请求触发器,把该触发器置“1”,就会向CPU发出中断请求且一直保持这一状态,直到CPU响应该中断请求,并且清除这一信号,才会结束请求。(2)不同设备有不同的中断服务程序,CPU如何来获得相应中断服务程序的起始地址(入口地址)回答:MCS-51单片机拥有五个中断源,为明确入口地址,给每一个中断源设定了相应的服务程序入口地址。现代计算机一般采用硬件电路根据提出中断请求的中断源的不同,自动找到该中断源中断服务程序的入口地址。(3)当CPU响应某设备的中断请求正在为其服务时,其他设备是否可以中断CPU回答:在多重中断系统(中断套嵌)中,如果新来一个优先级别更高的中断请求,则CPU应该中断现行的中断服务程序,响应高级别的中断。(4)两个以上设备同时请求中断时应如何处理回答:用户根据事件处理的轻重缓急设置各中断源的优先级别,当多个中断源同时发出请求时,CPU根据中断优先级别来依次执行中断服务程序。中断源的优先级别如何来设置,一会就讲到5.3MCS-51单片机的中断系统5.3.1中断系统的内部结构MCS-51单片机中断系统的结构,如图5-5所示。1、中断源(1)外部中断源INT0、INT1是由外部输入的两个中断源,分别对应单片机的12和13管脚。直接触发寄存器TCON的IE0、IE1,产生中断标志。触发方式有两种,一种是下降沿触发,一种是低电平触发。外部中断源的触发方式由TCON寄存器中的IT0、IT1来决定。下面介绍TCON寄存器中的IE0、IT0、IE1、IT1。TCON中的位格式如下:IE0:为外部中断INT0的请求标志位。当INT0引脚上出现中断请求信号(低电平或脉冲下降沿)时,硬件自动将IE0置“1”,产生中断请求标志。中断响应以后:a、如果为下降沿触发,则硬件自动将该位清0;b、如果是低电平触发,则必须由软件即使清0。IT0:外部中断INT0触发方式控制位。由软件来置“1”或清“0”,以控制外部中断INT0的触发方式。当IT0=1时,外部中断INT0为下降沿触发。即外部中断INT0出现下降沿时,触发IE0,使其为“1”;当IT0=0时,外部中断INT0为电平触发。即外部中断INT0出现低电平时,触发IE0,使其为“1”。IE1:为外部中断INT1的请求标志位。功能与IE0相同。IT1:外部中断INT1触发方式控制位。功能与IT0相同。(2)内部中断源内部中断源分定时器T0和T1溢出中断源,以及串行口发送/接收中断源。MCS-51内部有2个定时器/计数器,我们分别称它们为定时器T0和定时器T1,定时器T0和T1内部都有各自的计数器。当计数器计满时,会产生溢出,同时发出溢出信号,产生溢出中断,使各自的中断标志位TF0、TF1置“1”,产生中断请求标志。TF0和TF1为TCON寄存器中的2位,有中断时候分别会自动置1。中断响应以后,自动清0。TF0:定时器T0的溢出中断标志位。TF1:定时器T1的溢出中断标志位。另一个内部中断源为串行口发送/接收中断源。其中断标志位占用SCON寄存器中的2位,它们是发送中断请求标志TI和接收中断请求标志RI。SCON寄存器的位格式如下:TI:串行口内部发送中断请求标志位。当串行口发送完一个字符后,由内部硬件使发送中断标志TI置位。产生中断请求标志。响应后由软件清0RI:串行口内部接收中断请求标志位。当串行口接收到一个字符后,由内部硬件使接收中断请求标志位RI置位。产生中断请求标志。响应后由软件清0串行口的发送中断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中断。单片机复位后,IE被清0,用户应该根据需要自行设置,从而来决定要开放哪个中断,要禁止哪个中断。可以有两种操作方式:字节操作和位操作。比如:假设允许片内定时器/计数器1和定时器/计数器0中断,禁止其他中断。试根据假设条件设置IE的相应值。字节操作:MOVIE,#8AH位操作:SETBET0SETBET1SETBEA3、中断优先级寄存器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,将所有中断源设置为低优先级中断。注意点:(1)不同优先级中断请求同时发生时CPU响应优先级别高的请求。(2)相同优先级中断请求同时发生时CPU响应的优先顺序如下表:5.3.2中断响应与中断返回1、中断响应条件MCS-51单片机响应中断有四个条件:一是中断源有请求;二是寄存器IE的总允许位EA=1,且IE相应的中断允许位为1;三是无同级或高级中断正在服务;四是现行指令执行完最后一个机器周期。2、中断响应与中断返回单片机响应中断时,先保存断点,然后将中断向量装入PC,转移到中断服务程序的入口地址,执行完中断服务程序,然后从中断返回。(1)保存断点CPU执行中断服务程序之前,自动将程序计数器PC的内容(断点地址)压入堆栈。(2)取中断向量保存完断点之后,将相应的中断服务程序的入口地址送给PC,于是CPU就执行中断服务程序了。(3)执行中断服务程序及中断返回分三个过程:保护现场、处理中断、恢复现场、返回保护现场:将中断服务程序所使用的有关寄存器的内容压入堆栈保护处理中断:需要注意以下几点a、由于先转到中断入口地址,但相临入口之间间隔比较少,容纳不下服务程序,因此,一般把服务程序放在空间足够大的存储单元,入口地址处只放一条转移指令LJMP,用其来将指针指到真正的服务程序上去。b、对于有些中断源,CPU在响应中断后不能自动清除中断标志,在服务程序中要用软件来清除,比如:CLRTI或CLRRI中断返回:由一条中断返回指令RETI来完成。5.4中断应用举例【例5-1】图5-6为3个故障源显示电路,当系统无故障时,3个故障源输入端X1~X3全为低电平,对应的3

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功