单片机原理及应用(胡乾斌)第六章.ppt

上传人:sh****n 文档编号:11523224 上传时间:2020-04-27 格式:PPT 页数:39 大小:2.13MB
返回 下载 相关 举报
单片机原理及应用(胡乾斌)第六章.ppt_第1页
第1页 / 共39页
单片机原理及应用(胡乾斌)第六章.ppt_第2页
第2页 / 共39页
单片机原理及应用(胡乾斌)第六章.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
第6章MCS-51的中断系统,实时测控,即要求单片机能及时地响应和处理单片机外部或内部事件所提出的中断请求。,CPU正在执行主程序时,单片机外部或内部发生的某一事件(如外部设备产生的一个电平的变化,一个脉冲沿的发生或内部计数器的计数溢出等)请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。中断服务处理程序处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。CPU处理事件的过程,称为CPU的中断响应过程如图所示。对事件的整个处理过程,称为中断处理(或中断服务)。能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源。中断源向CPU提出的处理请求,称为中断请求(或中断申请)。,6.1中断的概念,引人中断后的优点:,1.实现分时操作;可以和多个外设同时工作。2.实现实时处理;3.及时处理故障。,保护断点:将断点地址压入堆栈保存,即当前PC值入栈。寻找中断源:中断服务程序硬件入口PC,转入中断服务。中断处理:执行中断源所要求的程序处理段。中断返回:执行RETI指令,栈顶内容PC,程序跳转回断点处。,1.实现中断及返回,2.实现中断嵌套中断嵌套:CPU正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,去执行高优先级中断服务程序,待高优先级中断处理完毕后,再返回低优先级中断服务程序。可实现中断嵌套。,3.实现中断优先权排队,所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件,处理完毕后,CPU返回原程序的过程。中断与子程序的最主要区别:子程序是预先安排好的;中断是随机发生的。,*中断与子程序的区别,6.2MCS-51中断系统的结构,6.2.1中断请求源有5个中断请求源,两个中断优先级,可两级嵌套。(1)/INT0外部中断请求0,由引脚/INT0输入,中断请求标志为IE0。(2)/INT1外部中断请求1,由引脚/INT1输入,中断请求标志为IE1(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。(5)串行口中断请求,中断请求标志为TI或RI。标志位分别由特殊功能寄存器TCON和SCON的相应位锁存。,中断系统的结构图,串行口中断允许位,中断允许寄存器IE,6.2.2中断控制,CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。IE的字节地址为A8H,可进行位寻址。IE对中断的开放和关闭实现两级控制。,全局中断允许位,T1中断允许位,INT0中断允许位,T0中断允许位,INT1中断允许位,0:关中断;1:开放中断。,(1)EA:中断允许总控制位0:CPU屏蔽所有的中断请求;1:CPU开放所有中断。但五个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定。(2)ES:串行口中断允许位0:禁止串行口中断;1:允许串行口中断。(3)ET1:定时器/计数器T1的中断允许位0:禁止T1中断;1:允许T1中断。(4)EX1:外部中断1中断允许位0:禁止外部中断1中断;1:允许外部中断1中断。(5)ET0:定时器/计数器T0的中断允许位0:禁止T0中断;1:允许T0中断。(6)EX0:外部中断0中断允许位。0:禁止外部中断0中断;1:允许外部中断0中断。MCS-51复位以后,IE被清0,所有的中断请求被禁止。,例若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。请编写出设置IE的相应程序段。(1)用位操作指令来编写如下程序段:CLRES;禁止串行口中断CLREX1;禁止外部中断1中断CLREX0;禁止外部中断0中断SETBET0;允许定时器/计数器T0中断SETBET1;允许定时器/计数器T1中断SETBEA;CPU开中断(2)用字节操作指令来编写:MOVIE,#8AH或者用:MOV0A8H,#8AH;A8H为IE寄存器字节地址,中断优先级寄存器IP两个中断优先级,可实现两级中断嵌套。,中断优先级设定,中断优先级寄存器IP:其字节地址为B8H,可位寻址。,串行口中断优先位,1:高优先级中断;0:低优先级中断。,T0中断优先位,T1中断优先位,INT1中断优先位,INT0中断优先位,IP各个位的含义:(1)PS串行口中断优先级控制位1:高优先级中断;0:低优先级中断。(2)PT1定时器T1中断优先级控制位1:高优先级中断;0:低优先级中断。(3)PX1外部中断1中断优先级控制位1:高优先级中断;0:低优先级中断。(4)PT0定时器T0中断优先级控制位1:高优先级中断;0:低优先级中断。(5)PX0外部中断0中断优先级控制位1:高优先级中断;0:低优先级中断。MCS-51复位以后,IP被清0,所有的中断源设置为低优先级中断。,(1)低优先级可被高优先级中断,反之则不能。(2)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断源所中断。某一中断源被设置为高优先级中断,则不能被任何其它的中断源的中断请求所中断。由用户程序置“1”和清“0”,以改变各中断源的中断优先级。MCS-51的中断系统有两个不可寻址的“优先级激活触发器”。其中一个指示某高优先级的中断正在执行,所有后来的中断均被阻止。另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。其查询顺序如下:外部中断/INT0T0溢出中断外部中断/INT1T1溢出中断串行口中断RI/TI,例:设置IP寄存器的初始值,使得MCS-51的2个外中断请求为高优先级,其它中断请求为低优先级。(1)用位操作指令SETBPX0;2个外中断为高优先级SETBPX1CLRPS;串行口、2个定时器/计数器;为低优先级中断CLRPT0CLRPT1(2)用字节操作指令MOVIP,#05H或:MOV0B8H,#05H;B8H为IP寄存器的字节地址,中断请求标志,TCON为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。,/INT0触发方式:1:下降沿触发0:低电平触发,定时/计数器控制位,/INT0中断请求标志位:1:有请求;0:无请求,/INT1触发方式:1:下降沿触发0:低电平触发,/INT1中断请求标志位:1:有请求;0:无请求,T1溢出中断请求标志位:1:有请求;0:无请求,T0溢出中断请求标志位:1:有请求;0:无请求,(1)IT0:选择外部中断请求0为边沿触发方式还是电平触发方式;IT0=0,为电平触发方式,加到引脚/INT0上的外部中断请求输入信号为低电平有效。IT0=1,为边沿触发方式,加到引脚/INT0上的外部中断请求输入信号电平负跳变有效。可由软件置“1”或清“0”IT0。(2)IE0外部中断请求0的中断请求标志位。当IT0=0,为电平触发方式,CPU在每个机器周期的S5P2采样/INT0引脚,若为低,则置“1”IE0,表示外部中断0正在向CPU请求中断。CPU响应该中断,在中断服务程序结束前由外部中断源撤消有效电平,由硬件自动清“0”IE0。当IT0=1,即外部中断请求0设置为边沿触发方式时,当一个机器周期采样到/INT0为高电平,下一个机器周期采样到/INT0为低电平时,则置“1”IE0。IE0=1,表示外部中断0正在向CPU请求中断。当CPU响应该中断,转向中断服务程序时,由硬件清“0”IE0。(3)IT1选择外部中断请求1为边沿触发方式还是电平触发方式,其意义与IT0类似。,(4)IE1外部中断请求1的中断请求标志位,其意义与IE0类似。(5)TF0MCS-51片内定时器/计数器T0溢出中断请求标志位。当启动T0计数后,定时器/计数器T0从初值开始加1计数,当最高位产生溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断时,清“0”TF0,TF0也可由软件清0。(6)TF1MCS-51片内的定时器/计数器T1的溢出中断请求标志位,功能和TF0类似。TR1(D6位)、TR0(D4位)这2个位与中断无关。当MCS-51复位后,TCON被清0。,SCON为串行口控制寄存器,字节地址为98H,可位寻址。SCON的低二位锁存串行口的发送中断和接收中断的中断请求标志TI和RI。各标志位的功能如下:(1)TI发送中断请求标志位。CPU将一个字节的数据写入发送缓冲器SBUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件自动置“1”TI。必须在中断服务程序中用软件对TI标志清“0”。(2)RI接收中断请求标志位。在串行口接收完一个串行数据帧,硬件自动置“1”RI标志。CPU响应串行口接收中断。RI标志,必须在中断服务程序中用软件清“0”。,6.2.3中断响应过程响应中断请求的条件:一个中断请求被响应,需满足以下必要条件:(1)CPU开中断,即IE寄存器中的中断总允许位EA=1。(2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。(3)该中断源的中断允许位=1,即该中断没有被屏蔽。(4)无同级或更高级中断正在被服务。中断响应就是CPU对中断源提出的中断请求的接受。当CPU查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。中断响应的主要过程:首先由硬件自动生成一条长调用指令LCALLaddr16。接着就由CPU执行该指令。首先将PC的内容压入堆栈以保护断点,再将中断入口地址装入PC。各中断源服务程序的入口地址是固定的。,中断源入口地址外部中断00003H定时器/计数器T0000BH外部中断10013H定时器/计数器T1001BH串行口中断0023H中断响应是有条件的,遇到下列三种情况之一时,中断响应被封锁:(1)CPU正在处理同级的或更高优先级的中断。(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应。,(3)正在执行的指令是RETI或是访问IE或IP的指令。按MCS-51中断系统特性的规定,在执行完这些指令后,需要再去执行完一条指令,才能响应新的中断请求。如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。外部中断的响应时间:外部中断的最短的响应时间为3个机器周期。(1)中断请求标志位查询占1个机器周期(2)硬件子程序调用指令LCALL以转到相应的中断服务程序入口,则需要2个机器周期。外部中断响应的最长时间为8个机器周期。这种情况发生在CPU进行中断标志查询时,刚好是开始执行RETI或是访问IE或IP的指令,则需把当前指令执行完再继续执行一条指令后,,才能响应中断,最长需2个机器周期。接着再执行一条指令,按最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。加上硬件子程序调用指令LCALL的执行,需要2个机器周期。所以,外部中断响应最长时间为8个机器周期。如果已在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间,这种情况下,响应时间就无法计算了。在一个单一中断的系统里,MCS-51单片机对外部中断请求的响应的时间总是在38个机器周期之间。,外部中断的触发方式选择两种触发方式:电平触发方式和边沿触发方式。电平触发方式若外部中断定义为电平触发方式,外中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化,这能提高响应速度。采用这种方式,请求中断的低电平必须保持到CPU响应该中断为止,否则,会丢失中断;在中断服务程序返回之前,外部中断请求输入必须撤消(即变为高电平),否则CPU返回主程序后会再次响应中断。本方式适合于外中断以低电平输入且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。,边沿触发方式相继连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断申请触发器,直到CPU响应此中断时,该标志才清0。这样不会丢失中断,但输入的正、负脉冲宽度至少保持12个振荡周期。中断请求的撤消1定时器/计数器中断请求的撤消中断请求被响应后。硬件会自动清TF0或TF1。2外部中断请求的撤消(1)边沿方式外部中断请求的撤消是自动撤消的。(2)电平方式外部中断请求的撤消在中断响应后把中断请求信号引脚从低电平强制改变为高电平。,3串行口中断请求的撤消响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的撤消只能使用软件的方法CLRTI;清TI标志位CLRRI;清RI标志位中断服务程序的设计一、程序设计的任务(1)设置中断允许控制寄存器IE。(2)设置中断优先级寄存器IP。(3)对外中断源,要设置中断请求是采用电平触发方式还是跳沿触发方式。(4)编写中断服务程序,处理中断请求。前3条一般放在主程序的初始化程序段中。,二、采用中断时的主程序结构常用的主程序结构如下:ORG0000HLJMPMAINORGXXXXHMAIN:主程序ORG中断入口地址LJMPINTINT:中断服务程序,三、中断服务程序的流程,例根据上图的中断服务程序流程,编写出中断服务程序。假设,现场保护只需要将PSW寄存器和累加器A的内容压入堆栈中保护起来。一个典型的中断服务程序如下:INT:CLREA;CPU关中断PUSHPSW;现场保护PUSHACC;SETBEA;CPU开中断中断处理程序段CLREA;CPU关中断POPACC;现场恢复POPPSW,SETBEA;CPU开中断RETI;中断返回,恢复断点几点说明:(1)本例的现场保护假设仅涉及到PSW和A的内容,如还有其它需保护的内容,只需要在相应的位置再加几条PUSH和POP指令即可。(2)“中断处理程序段”,应根据中断任务的具体要求,来编写这部分中断处理程序。(3)如果本中断服务程序不允许被其它的中断所中断。可将“中断处理程序段”前后的“SETBEA”和“CLREA”两条指令去掉。(4)中断服务程序的最后一条指令必须是返回指令RETI。,电平方式外部中断请求的撤消:,除了标志位清“0”之外,可在中断响应后把中断请求信号引脚从低电平强制改变为高电平,如图所示。,只要P1.0端输出一个负脉冲就可以使D触发器置“1”,从而撤消了低电平的中断请求信号。所需的负脉冲可增加如下两条指令得到:ORLP1,#01H;P1.0为“1”,ANLP1,#0FEH;P1.0为“0”,Q=1,;撤消/INT0中断请求。电平方式的外部中断请求信号的完全撤消,是通过软硬件相结合的方法来实现的。,6.3多外部中断源系统设计实际的应用系统中,两个外部中断请求源往往不够用,需对外部中断源进行扩充。*定时器/计数器作为外部中断源的使用方法定时器/计数器选择为计数器工作模式,T0(或T1)引脚上发生负跳变时,T0(或T1)计数器加1,利用这个特性,可以把T0(或T1)引脚作为外部中断请求输入引脚,而定时器/计数器的溢出中断TF0(或TF1)作为外部中断请求标志。ORG0000HAJMPIINI;跳到初始化程序IINI:MOVTMOD,#06H;设置T0的工作方式MOVTL0,#0FFH;给计数器设置初值,MOVTH0,#0FFHSETBTR0;启动T0,开始计数SETBET0;允许T0中断SETBEA;CPU开中断当连接在P3.4(T0引脚)的电平发生负跳变时,TL0加1,产生溢出,置“1”TF0,向CPU发出中断请求,同时TH0的内容0FFH送TL0,即TL0恢复初值0FFH。中断和查询结合的方法把其中最高级别的中断源直接接到MCS-51的一个外部中断请求源IR0输入端,其余的外部中断请求源IR1IR4用“线与”的办法连到MCS-51的另一个外中断源输入端,同时还连到P1口。,5个外部中断源的排队顺序依此为:IR0IR4。,ORG0013H;的中断入口LJMPINTR;INTR:PUSHPSW;保护现场PUSHACCJBP1.0,IR1;P1.0高,IR1有请求JBP1.1,IR2;P1.1高,IR2有请求JBP1.2,IR3;P1.2高,IR1有请求JBP1.3,IR4;P1.4高,IR4有请求INTIR:POPACC;恢复现场POPPSWRETI;中断返回,IR1:IR1的中断处理程序AJMPINTIR;IR2:IR2的中断处理程序AJMPINTIR;IR3:IR3的中断处理程序AJMPINTIR;IR4:IR4的中断处理程序AJMPINTIR;,要求:理解:相关的SFR:IE,IP,TCON,SCON和中断标志CPU对外部中断信号的基本要求掌握重要概念:中断、中断申请、中断优先、中断响应、中断服务和中断返回中断源,中断申请方式(电平、边沿)中断响应:响应时间(一般3-8机器周期,或更长)响应中断的条件中断屏蔽和中断优先中断服务:重要的中断入口矢量地址:0003H/0013H,000BH/001BH,0023H现场保护重点掌握:外部中断0/1的应用和中断服务程序的设计,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!