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

下载本文档

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

文档简介

第五章中断系统§5.1微机的输入/输出方式§5.2中断的概念§5.389C51中断系统结构及中断控制§5.4中断处理过程§5.5外部中断扩展方法§5.6中断程序举例§5.7思考题与习题返回2/5/2023§5.1微机的输入/输出方式§5.1.1无条件传送方式一方永远“准备好”,另一方随时传送。外部电子硬盘、GPRS模块等。§5.1.2查询传送方式通过查询外设的状态信息,确信外设已处于“准备好”,计算机才发出访问外设的指令,实现数据的传送。通用性好,可靠,速度慢。仪表用打印机。§5.1.3直接存储器存取(DMA)方式CPU让出数据总线(悬浮状态),使外设和存储器之间直接传送(不通过CPU)数据的方式。适用于外设和存储器之间有大量的数据需要传送及外设工作速度很快的情况。硬盘。返回2/5/2023外设有紧急事件要求被服务。CPU决定是否为其服务。如为其服务,服务结束后返回到被中止的地方继续原来的工作。§5.1.4中断传送方式返回主程序响应中断请求中断服务程序返回主程序继续执行主程序断点中断请求2/5/2023§5.2中断的概念一、中断系统:实现中断功能的部件称为中断系统,又称中断机构。二、中断源:产生中断的请求源称为中断源。三、中断请求:中断源向CPU提出的处理请求,称为中断请求或中断申请。四、中断响应过程:CPU暂时中止自身的事物,转去处理事件的过程,称为CPU的中断响应过程。五、中断服务:对事件的整个处理过程,称为中断服务(或中断处理)。六、中断返回:中断处理完毕,返回到原来被中止的地方,称为中断返回。七、中断方式的特点1、消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。2、将从现场采集的数据通过中断方式及时传送给CPU,经过处理后可立即作出反应,实现现场控制。采用查询方式很难做到及时采集,实时控制。返回2/5/2023§5.389C51中断系统结构及中断控制§5.3.189C51中断系统结构

一、中断系统结构返回P.1152/5/2023二、中断技术实现的功能1、分时操作CPU可以使多个外设同时工作,并分时为各外设提供服务,从而提高了CPU的利用率和输入和输出的速度。2、实时处理当计算机用于实时控制时,请求CPU提供服务是随机发生的。有了中断系统,CPU就可以立即响应并加以处理。3、故障处理计算机在运行时往往会出现一些故障,如断电、存储器奇偶校验出错、运算溢出等。返回2/5/2023§5.3.289C51中断源返回1、INT0:外部中断0请求,低电平有效。通过P3.2引脚输入。2、INT1:外部中断1请求,低电平有效。通过P3.3引脚输入。3、T0:定时/计数器0溢出中断请求。计数功能通过P3.4引脚输入。4、T1:定时/计数器1溢出中断请求。计数功能通过P3.5引脚输入。5、TX/RX:串行口中断请求。当串行口完成一帧数据的发送完或接收到时,请求中断。串行接收通过P3.0引脚输入,串行发送通过P3.1引脚输出。89C51中断系统的五个中断源2/5/2023§5.3.3中断控制一、中断请求标志1、定时器控制寄存器TCON中的中断标志位返回1、TF1:定时器/计数器T1溢出中断请求标志位。

89C51单片机定时器采用加计数,当T1计到0时,计数器最高位产生溢出,由硬件使TF1置1,并向CPU发出中断请求。当CPU响应中断时,硬件自动对TF1清0。2、TF0:定时器/计数器T0溢出中断请求标志位。含义与TF1类同。3、IE1:外部中断INT1的中断请求标志。当检测到INT1引脚上存在有效的中断请求信号时,由硬件使IE1置1,并向CPU发出中断请求。当CPU响应中断时,硬件自动对IE1清0。4、IE0:外部中断INT0的中断请求标志。其含义与IE1类同。TF1TF0IE1IT1IE0IT0TCON(88H)8FH8EH8DH8CH8BH8AH89H88HTR1TR02/5/20232、串行口控制寄存器SCON中的中断标志位TIRI

SCON(98H)9FH9EH9DH9CH9BH9AH99H98H1、TI:串行口发送中断请求标志。

CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。2、RI:串行口接收中断请求标志。在串行口允许接收时,每接收到一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须在中断服务程序中由软件对RI清0。2/5/2023二、中断允许控制

1、中断允许寄存器IE的格式。返回EAESET1EX1ET0EX0

IE(A8H)AFHAEHADHACHABHAAHA9HA8H①EA—中断允许总控制位。

EA=0,屏蔽所有的中断请求;

EA=1,CPU开放中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位的状态。这就是所谓的两级控制。②ES—串行口中断允许位。

ES=0,禁止串行口中断;ES=1,允许串行口中断。③ET1—定时器/计数器T1的溢出中断允许位。

ET1=0,禁止T1中断;ET1=1,允许T1中断。④EX1—外部中断1的溢出中断允许位。

EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。⑤ET0—定时器/计数器T0的溢出中断允许位。

ET0=0,禁止T0中断;

ET0=1,允许T0中断。⑥EX0—外部中断0的溢出中断允许位。

EX0=0,禁止外部中断0中断;

EX0=1,允许外部中断0中断。2/5/2023例5-1:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。解:(IE)=10001010B=8AH(a)用字节操作指令MOVIE,#8AH;或MOVA8H,#8AH;(b)用位操作指令SETBET0;定时器/计数器0允许中断SETBET1;定时器/计数器1允许中断SETBEA;CPU开中断此时,没有禁止其他中断!返回2/5/2023三、中断优先级控制1、89C51的中断优先级89C51有高、低两个中断优先级。每个中断请求源均可编程为优先级中断。中断系统中有两个不可寻址的“优先级生效”触发器,分别指出CPU正在执行的高、低优先级的中断服务程序。当其为1时则分别屏蔽所有的同级和低级中断请求。返回PSPT1PX1PT0PX0IP(B8H)

BCHBBHBAHB9HB8HPS—串行口中断优先级控制位。PT1—T1中断优先级控制位。PT0—T0中断优先级控制位。PX1—INT1中断优先级控制位。PX0—INT0中断优先级控制位。若某控制位为1,则相应的中断源规定为高级中断;反之,为0,则相应的中断源规定为低级中断。2/5/20232、中断优先级排列顺序当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬件查询顺序。其优先级顺序排列如图所示。就是IP从右到左的顺序。返回中断源 同级内的中断优先级外部中断0中断

高级定时器/计数器T0溢出中断外部中断1定时器/计数器T1溢出中断串行口中断

低级2/5/20233、中断优先级控制实现的功能(1)按内部查询顺序排队当数个中断源同时向CPU发出中断请求时,CPU根据设计者事先确定的中断源顺序号的次序,依次响应其中断请求。(2)实现中断嵌套当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,这时,CPU就暂时中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去响应优先级更高的中断请求。待服务结束,再继续执行原来较低级的中断服务程序。该过程称为中断嵌套。该中断系统称为多级中断系统。返回执行主程序低级中断请求响应低级中断请求执行低级中断服务程序高级中断请求响应高级中断请求执行高级中断服务程序返回低级中断程序返回主程序2/5/2023例5-2:设8031的片外中断为高优先级,片内中断为低优先级。设置IP相应值。解:(IP)=00000101B=05H(a)用字节操作指令

MOVIP,#05H;或MOV0B8H,#05H;(b)用为操作指令

SETBPX0SETBPX1CLRPSCLRPT0CLRPT1返回2/5/2023§5.4中断处理过程

§5.4.1中断处理过程的三个阶段中断处理过程分为:中断响应中断处理中断返回

保护现场为外设服务恢复现场主程序响应中断NKN+mK+1中断返回中断处理返回2/5/2023§5.4.2中断响应一、中断响应条件(同时满足)①有中断源发出中断请求。②中断总允许位EA=1,即CPU中断。③申请中断的中断源的中断允许位为1,即中断没有被屏蔽。④无同级或更高级中断正在被服务。⑤当前的指令周期已经结束。⑥若现行指令为RETI或是访问IE或IP指令时,该指令以及紧接着的另一条指令已执行完。二、中断响应时间CPU不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。最短的响应时间为3个机器周期。若中断系统只有一个中断源,则响应时间为3~8个机器周期之间。如在乘除法指令之后进入中断。

RETI(2T)+MULAB(4T)+进入中断的LJMP(2T)=8T对于受阻的中断响应,则响应时间会更长一些,如正在执行高级或同级中断。返回2/5/2023二、中断响应操作过程1、中断响应操作过程⑴把当前PC值压入堆栈,保护断点。⑵将相应的中断服务程序的入口地址送入PC。⑶对有些中断源,CPU会自动清除中断标志。⑷执行中断服务程序。⑸执行到返回指令RETI,中断服务程序结束,将堆栈内容弹出到PC,返回到原来断点继续执行。2、各中断源及其对应的矢量地址返回2/5/2023§5.4.3中断处理二、中断处理包括的内容保护现场:如在中断服务程序中要用到PSW、工作寄存器和SFR等寄存器时,则在进入中断服务之前应将它们的内容保护起来,在中断结束、执行RETI指令前应恢复现场。为中断源服务:针对中断源的具体要求进行相应的处理。三、编写中断服务程序时的注意问题在中断矢量地址单元处放一条无条件转移指令,使中断服务程序可灵活地安排在64KBROM的任何空间。在中断服务程序中,应注意用软件保护现场,以免中断返回后丢失原来寄存器、累加器中的信息。若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。返回2/5/2023§5.4.4中断返回在中断服务程序中,最后一条指令必须为中断返回指令RETI。CPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面从当前栈顶弹出断点地址送入程序计数器PC,从而返回主程序。注意在中断服务程序中,PUSH和POP指令必须成对使用,否则,不能正确返回断点。返回2/5/2023§5.5外部中断扩展方法

§5.5.1利用定时器扩展外部中断源89C51单片机有两个定时器,具有两个内部中断标志和外部计数输入引脚。当定时器设置为计数方式,计数初值设置为满量程FFH时,一旦外部信号从计数器引脚输入一个负跳变信号,计数器加1产生溢出中断,从而转去处理该外部中断源的请求。将外部中断源信号接至T0或T1引脚;该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序。返回2/5/2023§5.5.2中断加查询扩展外部中断源返回INT1INT0P1.3P1.2P1.1P1.089C51装置1装置2装置3装置4+5V

ORG0003HLJMPINTRPORG 1000HINTRP:PUSHPSW

PUSH AJB P1.0,DV1JB P1.1,DV2JB P1.2,DV3JB P1.3,DV4EXIT:POP A

POPPSWRETIDV1:装置1的中断服务程序

AJMPEXITDV2:

装置2的中断服务程序

AJMPEXITDV3:装置3的中断服务程序

AJMPEXITDV4:装置4的中断服务程序

AJMPEXIT2/5/2023§5.6中断程序举例§5.6.1主程序

ORG0000H LJMPMAIN ORG0003H LJMPINT0 ORG000BH LJMPINT0 ORG0013H LJMPT0 ORG001BH LJMPINT1 ORG0023H LJMPTXRX ORG0030HMAIN: MOVSP,#60H LCALLINIT

:返回;中断初始化,初始IE、IP

=0。设8031的片外中断为高优先级,片内中断为低优先级。设置IP相应值。SETBPX0 ;INT0为高优先级SETBPX1 ;INT1为高优先级SETBEX0 ;允许INT0中断SETBEX1 ;允许INT1中断SETBET0 ;允许T0中断SETBET1 ;允许T0中断SETBEA ;允许总中断{中断初始化完整的主程序开头中断服务程序起始地址2/5/2023中断服务程序编制中的注意事项视需要确定是否保护现场,一般必须。PSW、ACC一般必须保护。用SETRS0换寄存器工作组的方法保护R0~R7。②及时清除那些不能被硬件自动清除的中断请求标志(RI、TI),以免产生错误的中断。③中断服务程序中的压栈与弹栈指令必须成对使用,以确保中断服务程序的正确返回。④应尽可能短。返回2/5/2023 如图所示,将P1口的P1.4~P1.7作为输入位,P1.0~P1.3作为输出位。拨动开关将P1.4~P1.7所设的数据依次通过P1.0~P1.3输出,驱动发光二极管(若输入为高电平则相应的LED亮)。现要求采用中断边沿触发方式,每中断一次,完成一次读/写操作。返回§5.6.2中断服务程序举例8031

+5V+5V+5V+5V+5V&&12S1P1.7INT0P1.6P1.5P1.4P1.3P1.2P1.1P1.02/5/2023解:如图所示,采用外部中断0,中断申请从INT0输入,并采用了去抖动电路。当P1.0~P1.3的任何一位输出为1时,相应的发光二极管就会发光。当开关S1闭合时,发出中断请求。中断服务程序的矢量地址为0003H。源程序如下。取消非门,如何修改程序?源程序如下:

ORG0000H LJMPMAIN;上电,转向主程序 ORG0003H;外部中断0入口地址 LJMPINT0;转向中断服务程序

ORG0030H

;主程序MAIN:SETBEX0

;允许外部中断0中断

SETBIT0

;选择边沿触发方式

SETBEA

;CPU开中断HERE:SJMPHERE

;等待中断

ORG0200H

;中断服务程序(删)INT0: MOVA,#0F0H

MOVP1,A

;设P1.4~P1.7为输入

MOVA,P1

;取开关数

SWAPA

;A的高、低四位互换

MOVP1,A;输出驱动LED发光

RETI

;中断返回

END

返回2/5/2023§5.7思考题与习题1、什么是中断和中断系统?其主要功能是什么?2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高

温馨提示

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

评论

0/150

提交评论