【教学课件】第5章单片机的中断系统.ppt
第5章 单片机的中断系统,本章的主要内容,MCS-51单片机中断源的种类及工作方式 中断控制寄存器IE、中断优先级寄存器IP 及定时器/计数器及外部中断控制寄存器TCON的使 用方法 MCS-51型单片机中断响应过程 外部中断的结构及原理 熟练编制中断服务程序,5.1.1 中断的概念,执行,主程序,继续执行,断点,中断请求,中断响应,执行中断处理,中断返回,5.1 中断系统的概述,5.1.2 中断的功能,1实现中断及返回2能实现优先权排队 3能实现中断嵌套,5.2.1 中断源 1.中断源分类 五个中断源,分别是 外部中断0:INT0,由P3.2提供,外部中断1:INT1,由P3.3提供,,外部中断有两种信号方式,即电平方式和脉冲方式。,T0溢出中断;由片内定时/计数器0提供 T1溢出中断;由片内定时/计数器1提供 串行口中断RI/TI;由片内串行口提供,5.2 中断请求,2 中断请求,3.中断源入口地址,中断源 入口地址 INT0 0003 T0 000BH INT1 0013H T1 001BH RI/TI 0023H,5.2.2中断寄存器,在中断请求被响应前,中断请求是由CPU锁存在特殊功能寄存器TCON和SCON相应中断标志位中。,与中断控制有关的控制寄存器有四个:,TCON-定时控制寄存器,IE-中断允许控制寄存器,IP-中断优先级控制寄存器,SCON-及串行口控制寄存器。,1中断允许控制寄存器IE,0 禁止,1允许,2中断优先级的设定,基本原则是:(1)高优先级不能被低优先级中断;(2)低优先级可被高优先级中断。(3)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断所中断。(4)两个同一级的中断源同时向CPU发出中断申请,CPU通过内部硬件查询,按自然优先级确定优先响应哪一个中断要求,PS:串行口中断优先级控制位。PT1:定时计数器T1中断优先级控制位。PX1:外部中断1中断优先级控制位。PT0:定时计数器T0中断优先级控制位。PX0:外部中断0中断优先级控制位。注意:单片机复位后,IP寄存器被清0,所有中断源为低级中断。,中断优先级控制寄存器(IP),3.定时控制寄存器TCON,1)TCON7 TF1:T1溢出中断标志。T1被启动计数后,从初值开始加1计数,直至计满溢出由硬件使TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清“0”。也可用软件查询该标志,并由软件清“0”。2)TCON5 TF0:T0溢出中断标志。其操作功能类似于TF1。3)TCON3 IE1:外部中断1标志。IE1=1表明外部中断1向CPU申请中断。4)TCON1 IE0:外部中断0标志。其操作功能与IE1类似。,4.串行口控制寄存器SCON,说明:SCON1 TI:串行发送中断标志。CPU将一个字节数据写入发送缓冲器SBUF后启动发送,每发送完一个串行帧,硬件置位TI。但CPU响应中断后,并不能自动清除TI标志,必须由软件清除。,5.3 中断处理过程,中断处理过程分为三个阶段:中断响应、中断处理和中断返回。中断响应 中断处理(又称中断服务)中断返回 中断请求的撤除,5.3.1 中断处理过程 1CPU的中断响应条件 无同级或高级中断正在服务;当前指令周期结束,如果查询中断请求的机器 周期不是当前指令的最后一个周期,则不行;若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令响应。,2.响应过程 置位中断优先级有效触发器,即关闭同级和低级中断:调用入口地址,断点入栈,相当于LCALL指令;进入中断服务程序。,响应时间-从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间 以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三 机器周期:1个周期(查询)2个周期(长调用LCALL)(2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接 着下一条是乘除指令发生,则最长为8个周期。,5.3.2 中断处理,中断处理(又称中断服务),程序从入口地址开始执行,直到返回指令“RETI”为止,这个过程称为中断处理。包括两部分内容:(1)保护现场,(2)处理中断源的请求。,中断处理过程示意图,中断源发中断请求,中断响应条件 是否满足?,中断是否受阻?,把PC断点地址压入堆栈,相应中断源的中断入口地址送入PC,转向中断服务程序,N,Y,Y,N,由硬件自动完成,关中断,保护现场,中断服务,开中断,关中断,恢复现场,开中断,中断返回,断点地址由堆栈弹入PC,中断服务程序,中断处理,INTT0:PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DPH POP ACC RETI,保护现场,恢复现场,5.3.2 中断返回,中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RETI来实现。,5.4 外部中断的触发方式,外部中断的方式选择是通过定时/计数器及外部中断控制寄存器TCON中的标志位选择的。1)TCON2 IT1:外部中断1触发方式控制位。当 IT1=0,外部中断1为电平触发方式。若IT1=1,外部中断1控制为边沿触发方式。2)TCON0 IT0:外部中断0触发方式控制。,5.5 中断源的扩展,举例:利用单片机扩展5个外部中断源,中断的优先次序为X0X4,其中X0接到外部中断上,X1X4接到外部中断上;单片机的P1.4P1.7接4个发光二极管用来作输出指示;(1)当有X1X4其中一个外部中断发生时,相应的发光二极管D1D4点亮;(2)当X0外部中断发生时,4个发光二极管全亮。,ORG0000H AJMPMAIN ORG0003H;中断0服务程序入口地址 AJMPZHD0 ORG0013H;中断1服务程序入口地址 AJMPZHD1 ORG0030HMAIN:MOV SP,#70H;设置堆栈指针 SETB IT0;外部中断0为边沿触发方式 SETB IT1;外部中断1为边沿触发方式 MOV IP,#00000001B;外部中断0为MOV IE,#10000101B;开放外部中断0,1 MOV A,#0FFH;关闭发光二极管,MOVP1,ALOOP:AJMP LOOPZHD0:PUSH PSW;保护现场PUSHAMOVA,#0FH;4个发光二极管全亮MOVP1,APOPA;恢复现场POPPSWRETI;中断返回ZHD1:PUSHPSW;保护现场PUSHAORLP1,#0FH;读取P1口的低4位JNBP1.0,IN1;中断源查询,并转向相应的中断服务程序,JNBP1.1,IN2JNBP1.2,IN3JNBP1.3,IN4FH1:POPA;恢复现场POPPSWRETIIN1:MOVA,#11101111B;中断服务程序1MOVP1,A;D1发光二极管亮AJMPFH1IN2:MOVA,#11011111B;中断服务程序2MOVP1,A;D2发光二极管亮AJMPFH1IN3:MOVA,#10111111B;中断服务程序3MOVP1,A;D3发光二极管亮AJMPFH1,IN4:MOV A,#01111111B;中断服务程序4 MOV P1,A;D4发光二极管亮 AJMP FH1 END,5.6 中断请求的撤除,CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。定时器0或1溢出:CPU在响应中断后,硬件清除 了有关的中断请求标志TFO或TF1,即中断请求是 自动撤除的。串行口中断:CPU响应中断后,没有用硬件清除 T1、R1,要靠软件来清除相应的标志。边沿激活的外部中断:CPU在响应中断后,也是 用硬件自动清除有关的中断请求标志IE0或IE1。,电平触发外部中断撤除方法较复杂。因为在电平触发方式中,CPU响应中断 时不会 自动清除IE1或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。在硬件上,CPU对INT0和INT1引脚的信号不能控制,所以这个问题要硬件软件来配合解决。,电平激活的外部中断源中断标志撤除,撤除外部电平请求信号的方案(参见P124 图5-7),MCS-51INTXP1.0,D QCP SD,外部设备,D型触发器,CLR P1.0,SETB P1.0,中断服务程序,RETI,服务程序主体,硬件电路部分,ANL P1,#0FEHORLP1,#01H,由图可知,外部中断请求信号不直接加 或 引脚上,而是加在D触发器的CLK端。由于D端接地,当外部中断请求的正脉冲信号出现在CLK端时,Q端输出为0,或 为低,外部中断向单片机发出中断请求。利用P1口的P1.0作为应答线,当CPU响应中断后,可在中断服务程序中采用两条指令:ANL P1,#0FEH ORLP1,#01H,来撤除外部中断请求。第一条指令使P1.0为0,因P1.0与D触发器的异步置1端SD相连,Q端输出为1,从而撤除中断请求。第二条指令使P1.0变为1,SD=1,无效,Q继续受CLK控制,即新的外部中断请求信号又能向单片机申请中断。第二条指令是必不可少的,否则,将无法再次形成新的外部中断。采用定时器(T0,T1)中断,其中断请求的撤除由硬件自动完成,无须采取其它措施。,5.7 中断初始化,中断系统初始化步骤如下:开相应中断源的中断;设定所用中断源的中断优先级;若为外部中断,则应规定低电平还是负边沿的中断触发方式。,【例1】请写出 为低电平触发的中断系统初始 化程序。,采用位操作指令 SETB EA SETB EX1;开外部中断1 SETB PX1;令外部中断1为高优先级 CLR IT1;令外部中断1为电平触发 采用字节型指令 MOV IE,#84H;开外部中断1中断 ORL IP,#04H;令为外部中断1高优先级 ANL TCON,#0FBH;令外部中断1为电平触发,IE(A8H),IP(B8H),SCON 98H,TCON 88H,5.8 外部中断的系统设计应用,举例:外设数据经P1口输入单片机,每准备好一个数据,外设发出选通信号,经触发器和非门至INT0。,数据传送过程:选通信号有效,发中断请求;执行中断读取数据,同时将中断请求撤除(P3.0=0,使INT0=1),ORG 0000H,START:LJMP MAIN ORG 0003H LJMP IINT0 ORG 0030H;主程序MAIN:CLR IT0;低电平触发 SETB EA SETB EX0;开中断 MOV DPTR,#1000H.,IINT0:PUSH PSW;中断处理程序 PUSH ACC CLR P3.0 NOPNOPSETB P3.0;撤除INT0MOV A,P1;输入数据MOVX DPTR,A;保存数据INC DPTR.POP ACC;恢复现场POP PSWRETI;返回主程序,