第6章 (新)MCS-51中断系统.ppt_第1页
第6章 (新)MCS-51中断系统.ppt_第2页
第6章 (新)MCS-51中断系统.ppt_第3页
第6章 (新)MCS-51中断系统.ppt_第4页
第6章 (新)MCS-51中断系统.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章 MCS-51中断系统,主要内容 1、中断的概念 2、中断源 3、中断响应及其控制,微机的输入/输出方式-CPU与外设间的数据传送方式,一、无条件传送方式 二、查询传送方式 三、直接存储器存取(DMA)方式 四、中断传送方式,6.1 中断请求与控制,返回本节,1中断的概念,通常CPU的工作速度快,I/O设备工作速度慢,如果让CPU和I/O设备同步工作,必然会出现CPU等待I/O设备的情况,这对CPU无疑是一种浪费。,引入了中断的概念就能解决这一问题。让CPU和I/O设备各自独立工作,待I/O准备好了以后,向CPU发出申请,请求CPU中断自己正在执行的主程序,转去为I/O设备服务,为I/O

2、设备服务完了以后,再去继续执行主程序。这一过程就称为中断。(CPU挂起正在执行的程序而转去处理特殊的事件的操作。),有了中断的概念,就能使单片机灵活自如地实现如下一些操作:,(1) 实时控制:有了中断系统,CPU就能随时响应I/O设备的随机要求,即刻处理。 (2) 分时操作:CPU和多个I/O设备同时工作,互不干扰,哪个I/O设备准备好了就为哪个I/O设备服务,CPU还能做自己的事,极大提高了CPU的使用效率。 (3) 故障处理:运行中出现的一些故障,如断电、除法错误、奇偶校验出错,CPU能及时处理,不必事先知道。,2. 中断的作用:,能够发出中断申请的来源,称为中断源。中断源通常有硬件中断源

3、(外部设备中断源、定时控制中断源、故障如掉电检测中断源等)和软件中断源(执行相应中断指令来中断)两大类,此外还有可屏蔽中断和非屏蔽中断之分。,处理中断的系统称为中断管理系统。由硬件电路和软件处理程序组成,中断管理系统的基本职责是: (1) 能够响应中断并正确返回。 (2) 按优先权对多个中断源排队。 (3) 实现中断嵌套。,3. 中断源及中断管理系统,CPU要想响应中断,必须处于开中断状态(片内的中断允许触发器为“1”状态),且在现行指令执行完毕以后。CPU处理中断的过程通常分成4步:,(1) 判断中断申请与CPU正在执行的主程序谁更重要。如果中断申请重要一些,就响应中断;如果正在执行的主程序

4、更重要,就暂缓受理中断申请。 (2) 一旦响应中断,就保护主程序断点,将一些寄存器值推入堆栈。 (3) 寻找中断服务程序入口地址转而执行中断服务程序。 (4) 中断返回,恢复现场。,4. 相应中断的条件及中断处理步骤,5.中断请求与控制,中断流程,返回本节,6.2 中断系统的结构,MCS-51单片机的中断系统 由五个中断源、分成两个优先级、四个中断控制寄存器构成。 五个中断源: 2个外部、2个定时器/计数器、1个串行通信中断 四个中断控制寄存器(标志、允许、优先级): 中断控制寄存器IE、中断优先级寄存器IP、定时器/计数器控制寄存器TCON(6位)、串行通信寄存器SCON(2位),控制中断类

5、型、中断的允许与禁止、中断的优先级,1)外部中断源 由P3.2端口线引入,低电平或下降沿引起。 由P3.3端口线引入,低电平或下降沿引起。 2)内部中断源(如图5-8所示) T0:定时/计数器0中断,由T0回零溢出引起。 T1:定时/计数器1中断,由T1回零溢出引起。 TI/RI:串行I/O中断,完成一帧字符发送/接收引起。,中断系统的结构框图,返回本节,IE,IP,定时器控制寄存器TCON,中断标志寄存器SCON,2. 中断控制,中断控制系统包括中断请求、中断允许、中断优先级等,都是通过对单片机中的4个特殊功能寄存器TCON、SCON、IE、IP中的可寻址位的操作来完成的(实际上,MCS-5

6、1系列单片机的内部功能都是通过对特殊功能寄存器的操作完成的)。下面分别介绍关于中断的4个特殊功能寄存器。,1)中断允许寄存器IE(A8H),计算机中断系统有两种不同类型的中断:非屏蔽中断和可屏蔽中断。对非屏蔽中断,用户不能用软件的方法加以禁止,一旦有中断申请,CPU必须予以响应。对可屏蔽中断,用户可以通过软件方法来控制是否允许某中断源的中断,允许中断称中断开放,不允许中断称中断屏蔽。,MCS-51系列单片机的5个中断源都是可屏蔽中断,其中断系统内部设有一个专用寄存器IE,其字节地址为A8H,位地址分别是A8HAFH。IE控制CPU对中断源总的开放或禁止以及每个中断源是否允许中断。其格式如下图所

7、示。,中断允许寄存器IE,2.中断控制,8051单片机系统复位后,IE中各中断允许位均被清0,即禁止所有中断。可以很方便地用位操作指令开放或屏蔽某些中断,如:SETB EA ;开总中断SETB ET1 ;开T1中断这2条位操作指令也可合并为1条指令:MOV IE,#88H,2)中断优先寄存器IP(B8H),寄存器IP(Interrupt Priority)为中断优先级寄存器, IP在特殊功能寄存器中,字节地址为B8H,位地址分别是B8HBFH, IP中的每一位均可由软件来置1或清0,1表示高优先级,0表示低优先级 ,其格式如图6-10所示。,MCS-51系列单片机基本型有5个中断源,当多个中断

8、源同时发出中断请求时,要求单片机能确定哪个中断更紧迫,以便首先响应。为此,51系列单片机给每个中断源规定了优先级别,称为优先权。,51系列单片机有两个中断优先级:高优先级和低优先级。每个中断源都可以通过编程确定为高优先级中断或低优先级中断。,图6-10 中断优先寄存器IP,返回本节,返回本节,3)中断请求标志寄存器(TCON、SCON),TCON(Time/Counter Control)字节地址为88H,可位寻址,位地址分别是88H8FH。其格式如下:,各位的功能如下:,IE0:外部中断0 (INT0) 中断申请标志位。,IT0:外部中断0 (INT0) 触发方式选择位。,IT0=0,电平触

9、发方式,即INT0引脚为低电平时,置位IE0=1,产生有效的中断申请。,IT0=1,跳变触发方式,当CPU前一个机器周期采集到INT0引脚为高电平,后一个机器周期采集到引脚为低电平时(即从“1”“0”,负跳变),置IE0=1,由IE0申请中断。这种方式即使CPU暂时不响应申请信号,中断申请也不会丢失。注意:若CPU响应了中断,则IE0进入中断服务程序的同时会被硬件清零。,3. 中断请求标志寄存器(TCON、SCON),TF0:定时器0溢出标志位。当定时器0计数产生溢出时(即计数溢出回零),由硬件自动置TF0=1。在中断允许时,向CPU发出定时器0的中断请求,进入中断服务程序后,由硬件自动清0。

10、在中断屏蔽时,TF0可作查询测试用,此时只能由软件清0。,IE1:外部中断1(INT1)请求标志位,功能同IE0。,IT1:外部中断1触发方式选择位,功能同IT0。,TF1:定时器1溢出标志位,功能同TF0。,TR1、TR0: 定时器/计数器1、0运行控制位。由软件置1或置0。置1时对应的定时器工作;置0时对应的定时器停止工作。,TCON的功能可以很方便地用位操作指令来设置,如:SETB IT1 ;外部中断1选择跳变触发方式CLR IT0 ;外部中断0选择电平触发方式,这2条位操作指令也可合并为1条指令:MOV TCON,#05H ;TCON=0000 0101B,SCON(Serial Co

11、ntrol)为串行口控制器,字节地址为98H。其低2位TI和RI锁存串行口的发送中断标志和接收中断标志。其格式如下:,3)中断请求标志寄存器(TCON、SCON),寄存器SCON中涉及到中断的位有两个:TI、RI。,其功能如下:,TI:串行发送中断标志。CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。注意:CPU响应中断时并不清除TI,必须由软件清除。,RI:串行接收中断标志。在串行口允许接收时,每接收完一个串行帧,硬件将使RI置位。同样,CPU在响应中断时不会清除RI,必须由软件清除。,单片机系统复位后,IE、IP、TCON和SCON均清0,应用时要注

12、意各位的初始状态。,5个中断源的中断服务程序入口地址如下:,如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按同级优先级顺序确定先响应哪个中断请求。51系列单片机中,同级优先级由硬件形成,优先级排队的自然顺序如表6.1所示。,表6.1 中断优先级同级顺序,4) 中断控制中的优先级,5)中断响应过程(中断处理过程分为三个阶段:响应、处理、返回。),MCS-51单片机要想响应中断,必须具备如下条件:(6条) (1)有中断请求; (2)CPU开放中断,即EA=1; (3)对应的中断源允许中断; (4)无同级或更高级中断正在服务; (5)当前的指令周期已经结束; (6)执行

13、了指令RETI或访问IE、IP后又执行了一条指令。,单片机在每个机器周期的S5P2期间,顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断处理。,5) 中断响应过程,中断得到响应后自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。,下列任何一种情况存在中断申请将被封锁:,(1)CPU正在执行一个同级或高一级的中断服务程序。 (2)当前正在执行的那条指令还未执行完。 (3)当前正在执行的指令是RETI

14、或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。,返回本节,5)中断响应过程,内、外部中断源发出的中断申请信号,有不同的申请方式。,片内定时计数器依靠加1计数器计满归零将TF0(或TF1)置1提出申请。 片外中断源的中断申请信号,允许采用边沿触发方式和电平触发方式。边沿触发方式要求申请信号的高低电平至少各持续12个时钟周期以上,否则不能可靠触发。电平触发的中断申请信号为低电平时直接触发,对高低电平持续时间无特殊要求。,返回本节,5)中断响应过程,在正常情况下,从中断申请信号发出到CPU响应,一般需要38个机器周期。,中断响应过程通常分如下几步进行:,(1) C

15、PU一旦响应中断,首先置位中断“优先级生效”触发器。 (2) 把当前PC值推入堆栈。 (3) 程序计数器PC接受中断服务程序入口地址,使用长跳转指令LJMP可以跳转到64 KB ROM任何一个空间内。,中断响应时间(38个机器周期) 1、基本响应时间(3个机器周期) (1)查询中断标志:1个机器周期; (2)转去执行中断服务程序:2个机器周期。 2、额外的处理时间(0 5 个机器周期) RETI指令:2个机器周期; MUL或DIV指令:4个机器周期。,返回本节,5)中断响应过程,在编写中断服务程序时,要注意服务程序的起始地址,方法是在中断源入口地址写入跳转指令,该指令的目标地址就是中断服务程序

16、的入口地址。,编写时需留意如下问题:,(1) 确定是否需要保护现场。 (2) 及时清除那些不能被硬件电路自动清除的中断申请标志,避免误中断。 (3) PUSH、POP指令应成对使用。 (4) 参数传递方式同于主程序与子程序之间的参数传递。,5)中断处理过程,含有中断服务程序的主程序结构,ORG 0000H START:LJMP MAIN ORG 0003H LJMP INTEX0 ORG 000BH LJMP INTT0 ORG 0013H LJMP INTEX1 ORG 001BH LJMP INTT1 ORG 0023H LJMP INTS ORG 0030H MAIN: :,INTEX0

17、: : : INTT0: : : INTEX1: : : INTT1: : : INTS: : :,中断服务程序的结构 (四部分) 1、保护现场; 2、处理中断的程序; 3、恢复现场; 4、中断返回:RETI 三、编写中断服务程序应注意的几点 1、中断程序入口处的处理; 2、程序中可以禁止高级中断; 3、在保护和恢复现场时可 关闭CPU中断,以免造成混 乱。,中断返回 在中断服务子程序的最后必须用“RETI”指令 RETI指令作用有二: 1、子程序返回; 2、清除中断服务标志,即给“优先级生效”触发器清0。,6)MCS-51对中断请求标志的撤除,定时器溢出中断请求标志位的撤除(TF0、TF1)

18、:CPU响应中断,则硬件自动予以清零撤除、否则用户软件清零撤除,如JBC指令。 外部中断请求标志位的撤除(IE0、IE1):CPU响应中断,则硬件自动予以清零撤除、否则用户软件清零撤除,如JBC指令。但电平触发方式下的外部信号撤除问题需要特别注意。(见P212 fig.6-7) 串行中断请求标志位(RI或TI):用户软件清零撤除,如JBC指令。,7)中断系统的初始化,开放相应中断源的中断,即对IE进行设置。 设定中断优先级,即对IP进行设置。 若是外部中断,需设定中断触发方式,即对TCON中的IT0或IT1进行设置。 以上这些工作一般均在主程序完成。,6.4 外部中断扩展方法,8051的外部中

19、断源仅有两个,需要时可以扩展。 6. 4. 1 利用定时器扩展外部中断源 方法: (1)把8051的定时器/计数器做计数器使用; (2)计数初值设为FFFFH(16位计数器); (3)外部中断请求信号从P3.4(T0引脚)或P3.5 输入(T1引脚) 。 当外部中断请求信号有效时,使计数器加1而溢出,向CPU发出中断请求。,6. 4. 2 中断加查询扩展外 部中断源 一、电路及工作原理 各个外中断经过“线 或”接入到INT0或INT1上, 高产生中断请求。 P1.0P1.3用于查询。,设4个装置的中断优先级是装置1装置4, 其程序为:,中断程序入口及主程序部分: ORG 0000H START

20、:AJMP MAIN ORG 0003H LJMP INTRP : MAIN: :,查询部分: INTRP:CLR EA ;关中断 PUSH PSW PUSH A SETB EA JB P1.0, DV1 JB P1.1, DV2 JB P1.2, DV3 JB P1.3, DV4 EXIT: CLR EA POP A POP PSW SETB EA RETI,各装置的中断服务程序部分: DV1: (装置1的中断服务程序) : LJMP EXIT DV2: (装置2的中断服务程序) : LJMP EXIT DV3: (装置3的中断服务程序) : LJMP EXIT DV4: (装置4的中断服务

21、程序) : LJMP EXIT,6.5 中断程序举例,6. 5. 1 主程序 一、主程序的起始地址 在0000H处放一“LJMP”指令 二、主程序的初始化内容 初始化:是对将要用到的单片机内部的部件或扩展芯片进行初始状态设定。 此处需要设定的寄存器有TCON、IP和IE TCON:设定外中断的触发方式 IP:中断优先级 IE:中断允许、禁止,6. 5. 2中断服务程序 一、中断服务程序的起始地址 中断服务程序的入口地址 中断服务程序的起始地址 二、中断服务程序编制中的注意事项 1、视需要确定是否保护现场 2、及时清除那些不能自动清除的中断标志 3、中断服务程序中的“PUSH”与“POP”指令必

22、须成对使用 4、主程序与中断服务程序间的参数传递方法: 可通过(1)寄存器;(2)存储单元;(3)堆栈; (4)变量。,7.6 中断程序举例,例7-3 如右图所示, 将P1口的P1.4P1.7作为 输入位, P1.0P1.3作为 输出位。要求利用8031 将开关所设的数据读入 单片机,并依次通过 P1.0P1.3输出,驱动发 光二极管,以检查P1.4 P1.7输入的电平情况 (高电平LED亮)。现要 求采用中断触发方式, 每 中断一次完成一次操作。,7.6 中断程序举例,程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTER ORG 0030H MAIN:

23、SETB EX0 SETB IT0 SETB EA HERE:SJMP HERE,中断服务子程序: (输入、显示) ORG 0200H INTER:MOV P1,#0F0H MOV A,P1 SWAP A MOV P1,A RETI END,7.6 中断程序举例,例7-4 如右图所 示的中断电路可实现系 统的故障显示。当系统 的各部分正常工作时, 4个故障源的输入均为 低电平,显示灯全不 亮。当有某个部分出现 故障时,则相应的输入 线由低电平变为高电平 ,相应的发光二极管点 亮。,7.6 中断程序举例,程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTER ORG 0030H MAIN:SETB EX0 SETB IT0 SETB EA HERE:SJMP HERE,中断服务子程序: ORG 0100H INTER:JNB P1.0, L1 SETB P1.1 L1: JNB P1.2, L2 SETB P1.3 L2: JNB P1.4, L3 SETB P1.5 L3: JNB P1.6, L4 SETB P1.7 L4: RETI END,7.6 中断程序举例,例7-5 某工业监控系统具有温度、压力、pH值等多路监控功能。在pH值7时将向CPU申请中断,CPU响应后令P3.0引脚输出高

温馨提示

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

评论

0/150

提交评论