收藏 分销(赏)

第5章中断系统.ppt

上传人:xrp****65 文档编号:13336796 上传时间:2026-03-03 格式:PPT 页数:88 大小:672KB 下载积分:10 金币
下载 相关 举报
第5章中断系统.ppt_第1页
第1页 / 共88页
第5章中断系统.ppt_第2页
第2页 / 共88页


点击查看更多>>
资源描述
,单片机原理及接口技术,单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单片机原理及接口技术,单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 中断系统,5.1,微机的输入,/,输出方式,5.2,中断的概念,5.3,89C51,中断系统结构及中断控制,5.4,中断处理过程,5.5,外部中断扩展方法,5.6,中断程序举例,5.7,思考题与习题,返 回,3/3/2026,5.1,微机的输入,/,输出方式,5.1.1,无条件传送方式,5.1.2,查询传送方式,5.1.3,直接存储器存取(,DMA,),方式,5.1.4,中断传送方式,返 回,3/3/2026,5.1.1,无条件传送方式,CPU,总是认为,外设在任何时刻都处于,“,准备好,”,的状态,。,这种传送方式,不需要交换状态信息,,只需在程序中,加入访问外设的指令,,数据传送便可以实现,此种方法,很少使用,。,返 回,3/3/2026,5.1.2,查询传送方式(条件传送),一、什么是查询传送方式,二、查询方式,程序流程图,三、查询方式的,过程,四、查询方式的,特点,返 回,3/3/2026,一、什么是查询传送方式,在,输出,时,需要查询外设是否把上一次,CPU,输出的数据处理完毕。,查询传送方式,:通过查询外设的状态信息,确信外设已处于,“,准备好,”,,计算机才发出访问外设的指令,实现数据的传送。,状态信息,:一般为,1,位,二进制码。,在,输入,时,需要查询外设的输入数据是否准备好,返 回,3/3/2026,二、查询方式程序流程图,输入状态信息,准备好?,传送数据,Y,N,返 回,3/3/2026,三、查询方式的过程,查询方式的,过程,:,查询,等待,数据传送,待到下一次数据传送时则重复上述过程。,返 回,启动外部设备,传送数据,延迟,3/3/2026,四、查询方式的,特点,缺点,:,CPU,在完成一次数据传送后要等待很长时间才能进行下一次的传送。在,等待过程,中,,CPU,不能进行其他操作,所以,效率比较低,。,优点,:,通用性好,,可以用于各类外设和,CPU,间的数据传送。,返 回,3/3/2026,DMA,:,Direct Memory,Access,:,5.1.3,直接存储器存取,(DMA),方式,CPU,让出数据总线,(,悬浮状态,),,使,外设,和,存储器,之间,直接传送,(,不通过,CPU),数据的方式。,适用于外设和存储器之间,有大量的数据需要传送,及,外设工作速度很快,的情况。,返 回,3/3/2026,一、中断概念:,当,CPU,正在处理某事件的时候,,外部,发生的,某一事件请求,CPU,迅速去处理,于是,CPU,暂时中,止当前的工作,转去处理所发生的事件。中断服,务处理完该事件后,再返回到原来被中止的地方,继续原来的工作,这样的过程称为,中断,。,5.2,中断,的概念,返 回,3/3/2026,二、与中断相关的概念,1,、中断系统,2,、中断源,3,、中断请求,4,、中断响应过程,5,、中断服务,6,、中断返回,返 回,3/3/2026,1,、中断系统,实现中断功能的部件称为,中断系统,,,又称,中断机构,。,返 回,2,、中断源,产生中断的请求源称为,中断源,。,3/3/2026,3,、中断请求,中断源向,CPU,提出的处理请求,,称为,中断请求,或,中断申请,。,返 回,4,、中断响应过程,CPU,暂时中止自身的事务,转去处理事件的过程,称为,CPU,的,中断响应过程,。,3/3/2026,5,、中断服务,对事件的整个处理过程,,称为,中断服务,(或,中断处理,)。,返 回,6,、中断返回,中断处理完毕,在返回到原来被中止的地方,称为,中断返回,3/3/2026,图,5-2,中断流程,主程序,响应中断请,求,中断服务程,序,返回主程序,继续执行主程序,断点,中断请求,三、,中断流程:,P113,图,5-2,3/3/2026,四、中断方式的,特点,2,、将从现场采集的数据通过中断方式及时传送给,CPU,,,经过处理后可立即作出反应,实现现场控制。采用查询方式很难做到及时采集,,实时控制,。,1,、中断方式消除了,CPU,在查询方式中的等待现象,,大大提高了,CPU,的工作效率,。,返 回,3/3/2026,5.3,89C51,中断系统结构及中断控制,5.3.1,89C51,中断系统,结构,5.3.2,89C51,中断源,5.3.3,中断控制,返 回,3/3/2026,5.3.1,89C51,中断系统结构,一,、中断系统,结构,二、中断技术实现的,功能,返 回,3/3/2026,一、中断系统结构,89C51,的中断系统的,结构,:,P115,图,5-3,返 回,3/3/2026,3/3/2026,二、中断技术实现的,功能,1,、分时操作,2,、实时处理,3,、故障处理,返 回,3/3/2026,1,、分时操作,计算机的中断系统可以使,CPU,与,外设同时工作,。,CPU,在启动外设后,便继续执行主程序;而,外设,被启动后,开始进行准备工作。当外设准备就绪时,就向,CPU,发出中断请求,,CPU,响应该中断请求并为其服务完毕后,返回原来的断点处继续运行主程序。,外设,在得到服务后,也继续进行自己的工作。,因此,,CPU,可以使多个外设同时工作,并分时为各外设提供服务,,从而提高了,CPU,的利用率和输入和输出的速度。,返 回,3/3/2026,2,、实时处理,当计算机用于,实时控制,时,请求,CPU,提供服务是随机发生的。有了中断系统,,CPU,就可以,立即响应并加以处理,。,返 回,3/3/2026,3,、故障处理,计算机在运行时往往会出现一些,故障,,,如断电、存储器奇偶校验出错、运算溢出等。,有了中断系统,当出现上述情况时,,,CPU,可及时转去执行,故障处理程序,,自行处理故障而不必停机。,返 回,3/3/2026,5.3.2,89C51,中断源,一、,89C51,中断系统的,五个中断源,二、通常情况的中断源,返 回,3/3/2026,一、,89C51,中断系统的,五个中断,源,1,、,INT0,外部中断0请求,,低电平有效。,通过,P3.2,引脚输入。,P24,表,2-1,2、,INT1,外部中断1请求,,低电平有效。,通过,P3.3,引脚输入。,3、,T0,定时器/计数器0溢出中断请求,。,P3.4,4、,T1,定时器/计数器1溢出中断请求,。,P3.5,5、,TXD/RXD,串行口中断请求,。当串行口完,成一帧数据的发送或接收时,便请求中断。,3/3/2026,二、通常情况的中断源,1,、,I/O,外设,2,、硬件故障,3,、实时时钟,4,、为调试程序而设定的中断源,返 回,3/3/2026,5.3.3,中断控制,一、中断,请求,标志,二、中断,允许,控制,三、中断,优先级,控制,返 回,3/3/2026,一、中断请求标志,1,、定时器,/,计数器控制寄存器,TCON,中的中,断标志位,2,、串行口控制寄存器,SCON,中的中断标志位,返 回,3/3/2026,1,、,TCON,中的中断标志位,TCON,:为定时器,/,计数器,T0,和,T1,的控制寄存器,,同时也锁,存,T0,和,T1,的溢出中断标志,及,外部中断,0,和,1,的中断标志,等。,与中断有关的位:,P117,图,5-4,TF1,TF0,IE1,IT1,IE0,IT0,TCON,(88H),8FH 8EH 8DH,8CH,8BH 8AH 89H 88H,各控制位的含义。,返 回,3/3/2026,各控制位的含义,1,、,TF1,:,定时器,/,计数器,T1,溢出中断请求标志位,。,当启动,T1,计数后,,T1,从初值开始,加,1,计数,,,计数器最高位,产生溢出,时,由硬件使,TF1,置,1,,,并向,CPU,发出,中断请求,。当,CPU,响应中断,时,,硬件将自动对,TF1,清,0,。,2,、,TF0,:,定时器,/,计数器,T0,溢出中断请求标志位,。含义与,TF1,类同。,3/3/2026,各控制位的含义,3,、,IE1,:,外部中断,1(INT1),的中断请求标志,。,当检测到,外部中断引脚,1,(,P3.3,),上存在有效,的,中断请求信号,时,由硬件使,IE1,置,1,。,当,CPU,响应中断,时,硬件将自动对,IE1,清,0,4,、,IE0,:,外部中断,0(INT0),的中,断请求标志,。,其含义与,IE1,类同。,3/3/2026,各控制位的含义,5,、,IT1,:,外部中断,1,的中断触发方式控制位,。,IT1=,0,时,外部中断,1,程控为,电平触发方式,。,CPU,在每一个机器周期,S5P2,期间采样外部中,断,1,请求引脚,(,P3.3,),的输入电平。,若,外部中断,1,请求,(,P3.3,),为,低电平,,,则使,IE1,置,1,(,即:,存在,有效的中断请求,),;,若,外部中断,1,请求,(P3.3),为,高电平,,,则使,IE1,清,0,(即:,不存在,有效的中断请求),。,返 回,3/3/2026,各控制位的含义,IT1=,1,时,外部中断,1,程控为,边沿触发方式,。,CPU,在每一个机器周期,S5P2,期间采样外部中断,1,请求引脚,(,P3.3,),的输入电平。如果,在相继的两个,机器周期采样过程中,,,一个机器周期,采样到外部,中断,1,请求引脚为,高,电平,,接着的,下一个机器周期,采样到为,低,电平,,则使,IE1,置,1,。直到,CPU,响应,该,中断时,才由硬件使,IE1,清,0,。,6,、,IT0,:,外部中断,0,的中断触发方式控制位,。,其含义与,IT1,类同。,返 回,3/3/2026,2,、串行口控制寄存器,SCON,中的中断标志位,SCON,:,串行口控制寄存器,,其,低,2,位,锁存串行口的,接收中断,和,发送中断,标志,RI,和,TI,。,SCON,中,TI,和,RI,的,格式:,P118,图,5-5,返 回,其控制位的含义,TI,RI,SCON,(98H),9FH 9EH 9DH 9CH 9BH 9AH 99H 98H,3/3/2026,SCON,中控制位的含义,1,、,TI,:,串行口,发送,中断请求标志,。,CPU,将一个数据,写入,发送缓冲器,SBUF,时,就,启动,发送。每,发送完,一帧串行数据后,硬件,置,位,TI,。但,CPU,响应中断时,并不清除,TI,,,必须,在中断服务程序中,由软件对,TI,清,0,。,2,、,RI,:,串行口,接收,中断请求标志,。,在串行口允许接收时,每,接收完,一个串行帧,,硬件,置位,RI,。,同样,,CPU,响应中断时不会清除,RI,,,必须在中断服务程序中,由软件对,RI,清,0,。,3/3/2026,二、中断允许控制,1,、中断允许寄存器,IE,的,格式,。,返 回,2,、中断允许寄存器,IE,中,各位的含义,。,EA,ES,ET1,EX1,ET0,EX0,IE,(A8H),AFH,AEH,ADH,ACH,ABH,AAH,A9H,A8H,3/3/2026,2,、中断允许寄存器,IE,中各位的含义,EA,中断允许,总控制位,。,EA=0,,,屏蔽,所有的中断请求;,EA=1,,,CPU,开放,中断。对,各中断源,的中断请求,是否允许,,还要,取决于各中断源的中断允许控,制位的状态,。这就是所谓的,两级控制,。,ES,串行口中断允许位,。,ES=0,,,禁止,串行口中断;,ES=1,,,允许,串行口中断。,ET1,定时器,/,计数器,T1,的溢出中断允许位,。,ET1=0,,,禁止,T1,中断;,ET1=1,,,允许,T1,中断,3/3/2026,EX1,外部中断,1,的中断允许位,。,EX1=0,,,禁止,外部中断,1,中断;,EX1=1,,,允许,外部中断,1,中断。,ET0,定时器,/,计数器,T0,的溢出中断允许位,。,ET0=0,,,禁止,T0,中断;,ET0=1,,,允许,T0,中断。,EX0,外部中断,0,的中断允许位,。,EX0=0,,,禁止,外部中断,0,中断;,EX0=1,,,允许,外部中断,0,中断。,返 回,3/3/2026,例,5-1,:,假设,允许,片内定时器,/,计数器中断,,禁止,其他中断。试根据假设条件,设置,IE,的相应值,。,解,:(,IE,),=1000 1010B=8AH,(,a,),用,字节,操作指令,MOV IE,,,#8AH,;,或,MOV,0A8H,,,#8AH,;,(,b,),用,位,操作指令,SETB,ET0 ;,定时器,/,计数器,0,允许中断,SETB,ET1 ;,定时器,/,计数器,1,允许中断,SETB EA,;CPU,开中断,返 回,3/3/2026,三、中断优先级控制,1,、,89C51,的,中断优先级,2,、中断优先级寄存器,IP,3,、,中断优先级,排列顺序,4,、中断优先级控制实现的,功能,5,、例,5-2,返 回,3/3/2026,1,、,89C51,的中断优先级,89C51,有,两个,中断优先级。,每个中断请求源,均可编程为,高,优先级中断或,低,优先级中断。,中断系统中有,两个,不可寻址的,“,优先级生效,”,触发器,,分别指出,CPU,正在执行的,高、低,优先级的中断服务程序。当其为,1,时则分别,屏蔽,所有的中断请求。,返 回,3/3/2026,2,、中断优先级寄存器,IP,中断优先级寄存器,IP,的格式,IP,(B8H),PS,PT1,PX1,PT0,PX0,BCH,BBH BAH B9H,B8H,返 回,3/3/2026,中断优先级寄存器,IP,各控制位的含义,PS,串行口,中断优先级控制位,PT1,定时器,/,计数器,T1,中断优先级控制位,PX1,外部中断,1,中断优先级控制位,PT0,定时器,/,计数器,T0,中断优先级控制位,PX0,外部中断,0,中断优先级控制位,若某控制位为,1,,则相应的中断源规定为,高级,中断,反之,若为,0,,则相应的中断源规定为,低级,中断。,返 回,3/3/2026,3,、,中断优先级,排列顺序,当,同时接收到几个,同一优先级的中断请求时,,响应哪个中断源则取决于,内部硬件查询顺序,。,其优先级顺序排列:,P119,图,5-8,中断源 同级内的中断优先级,外部中断,0,中断 高级,定时器,/,计数器,T0,溢出中断,外部中断,1,中断,定时器,/,计数器,T1,溢出中断,串行口中断 低级,3/3/2026,4,、中断优先级控制实现的,功能,(,1,)按内部查询顺序排队,当,数个,中断源,同时,向,CPU,发出中断请求时,,CPU,根据设计者事先确定的,中断源顺序号的次序,,,依次响应,其中断请求。,返 回,3/3/2026,4,、中断优先级控制实现的功能,(,2,)实现中断嵌套,当,CPU,正在处理,一个中断请求时,,又出现了另一个,优先级比它,高,的中断请求,这时,,CPU,就,暂时中止,执行对原来优先级,较低,的中断源的服务程序,,保护当前断点,,转去,响应,优先级,更高,的中断请求,并为它服务。,待服务结束,,再,继续,执行原来,较低级,的中断服务程序。该过程称为,中断嵌套,。该中断系统称为,多级中断系统,。,二级,中断嵌套的,中断过程:,P120,图,5-9,3/3/2026,图,5-9,二级中断嵌套,CPU,在执行主程序,低级,中,断请求,响应,低级,中断请求,CPU,执行低级,中断服务程序,高级,中,断请求,响应,高级,中断请求,CPU,执行高级,中断服务程序,返回,低级,中断程序,返回主程序,3/3/2026,例,5-2,:,设,89C51,的,片外,中断为,高,优先级,,片内,中断为,低,优先级。,设置,IP,相应值,。,解,:(,IP,),=0000 0101B=05H,P119,图,5-7,(a),用,字节,操作指令,MOV,IP,,,#,05H,;或,MOV,0B8H,,,#05H,;,(b),用,位,操作指令,SETB,PX0,SETB PX1,CLR,PS,CLR,PT0,CLR,PT1,3/3/2026,5.4,中断处理过程,5.4.1,中断处理过程的,三个阶段,5.4.2,中断,响应,5.4.3,中断,处理,5.4.4,中断,返回,返 回,3/3/2026,5.4.1,中断处理过程的三个阶段,中断处理过程,可分为:,中断响应,中断处理,中断返回,中断处理的大致,流程:,P121,图,5-10,保护现场,为外设服务,恢复现场,主程序,N,K,N,+,m,K+1,返回,中断处理,返 回,3/3/2026,5.4.2,中断响应,一、,中断响应,条件,二、中断响应,操作过程,三、中断响应,时间,返 回,3/3/2026,一、中断响应,条件,有中断源,发出中断请求,。,中断总允许位,EA=1,,即,CPU,开中断。,申请中断的,中断源的中断允许位为,1,,即中断没有被屏蔽。,无同级,或,更高级,中断正在被服务。,当前,的指令周期已经结束。,若,现行指令为,RETI,或是,访问,IE,或,IP,指令时,,该指令以及紧接着的另一条指令已执行完。,返 回,3/3/2026,二、中断响应操作过程,把,当前,PC,值压入堆栈,,保护断点。,将相应的,中断服务程序的入口地址送入,PC,。,对有些中断源,,CPU,会自动清除中断标志。,执行中断服务程序,。,执行到返回指令,RETI,,,中断服务程序结束,,将堆栈内容弹出到,PC,,,返回到原来断点继续执,行,。,返 回,3/3/2026,2,、各中断源及其对应的,矢量地址,3/3/2026,三、中断响应时间,CPU,不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。,对于,顺利,的中断响应,其,最短,的响应时间为,3,个机器周期,。,对于,受阻,的中断响应,则响应时间会更长一些。,若中断系统,只有一个中断源,,则响应时间为,3,8,个机器周期之间,。,返 回,3/3/2026,5.4.3,中断处理,一、什么是中断处理,二、中断处理包括的内容,三、编写中断服务程序时的注意问题,返 回,3/3/2026,一、什么是,中断处理,CPU,响应中断后即转入中断服务程序的入口,执行中断服务程序。从中断服务程序的,第一条指令,开始到,返回指令,为止,这个过程称为,中断处理,或,中断服务,。,返 回,3/3/2026,二、中断处理包括的,内容,不同,的中断源服务的内容及要求各不相同,其处理过程也就有所,区别,。,一般情况,,中断处理包括两部分内容:,1,、,保护现场,:如,在中断服务程序中,要用到,PSW,、,工作寄存器,和,SFR,等寄存器时,则在进入中断服务之前应将它们的内容保护起来,在中断结束、执行,RETI,指令前应,恢复现场,。,2,、,为中断源服务,:针对中断源的具体要求进行相应的处理。,返 回,3/3/2026,三、编写中断服务程序时的,注意问题,在中断矢量地址单元处,放一条,无条件转移指令,,使中断服务程序可灵活地安排在,64KB ROM,的任何空间。,在编写中断服务程序时,应注意,在保护现场之前要关闭中断,,在保护现场后若允许高优先级中断嵌套,则应开中断。同样,,在恢复现场之前要关闭中断,,恢复之后再开中断。,若要,在执行当前中断程序时,禁止更高优先级中断,,可以先用软件,关闭,CPU,中断,或,禁止某中断源中断,,,在中断返回前再开放中断,。,返 回,3/3/2026,5.4.4,中断返回,在中断服务程序中,,最后一条指令,必须为,中断返回指令,RETI,。,CPU,执行该指令时,一方面,清除,中断响应时所,置位,的“,优先级生效,”,触发器,,另一方面,从当前栈顶弹出断点地址送入,程序计数器,PC,,,从而,返回主程序,。,注意在中断服务程序中,,PUSH,和,POP,指令必须成对使用,,否则,不能正确返回断点。,3/3/2026,5.5,外部中断扩展方法,89C51,单片机有,两个,外部中断请求输入端(,INT0,和,INT1,)。,实际应用中,若,外部中断源有两个以上,,则需要,扩展,外部中断源。,5.5.1,利用定时器,扩展外部中断源,5.5.2,中断加查询,扩展外部中断源,返 回,3/3/2026,5.5.1,利用定时器扩展外部中断源,89C51,单片机有,两个定时器,,都具有两个,内部,中断标志和,外部,计数输入引脚。,当定时器设置为,计数方式,时,,计数初值,设置为满量程,FFH,。,一旦外部信号从计数器引脚输入一个负跳变信号,计数器,加,1,产,生溢出中断,,从而转去处理该外部中断源的请求。,将,外部中断源,信号接至,T0,或,T1,引脚,;该定时器的,溢出中断标志,及,中断服务程序,作为,扩充外部中断源的标志,和,中断服务程序,。,返 回,3/3/2026,5.5.2,中断加查询,扩展外部中断源,每一根中断输入线,可以通过,“,线或,”,的关系连接,多个外部中断源,,同时利用,输入端口线,作为各个,中断源的识别线,。,具体线路如,图,5-11,所示。,有关中断服务程序的片段,返 回,3/3/2026,+5V,图,5-11,多个外部中断源连接法,INT1,INT0,P1.3,P1.2,P1.1,P1.0,89C51,装置,4,装置,3,装置,2,装置,1,3/3/2026,DV1,:,;,装置,1,的,中断服务程序,AJMP,EXIT,DV2,:,;,装置,2,的,中断服务程序,AJMP,EXIT,DV3,:,;,装置,3,的,中断服务程序,AJMP,EXIT,DV4,:,;,装置,4,的,中断服务程序,AJMP,EXIT,ORG,0003H,LJMP,INTRP,;INT0,中断服务程序入口,ORG,1000H,INTRP,:,PUSH,PSW,;INT0,中断服务程序是一个,;,中断查询程序服务程序,PUSH A,JB P1.0,,,DV1,JB P1.1,,,DV2,JB P1.2,,,DV3,JB P1.3,,,DV4,EXIT,:,POP A,POP,PSW,RETI,3/3/2026,5.6,中断程序举例,5.6.1,主程序,5.6.2,中断服务程序,5.6.3,中断服务程序举例,返 回,3/3/2026,5.6.1,主程序,1,、主程序,的,起始地址,2、主程序的,初始化内容,返 回,3/3/2026,1,、主程序,的起始地址,89C51,系列单片机,复位,后,,,(PC)=0000H P38,表,2-8,而,0003H,002BH,分别为各,中断源的入口地址,。,编程时应在,0000H,处写一条,跳转指令,(,一般为,长,跳转指令,),,,主程序,是以,跳转的目标地址,作为,起始地址,开始编写,一般从,0030H,开始,如,图,5-12,所示。,0000H,LJMP,00,30,0030H,主程序,3/3/2026,2、主程序的,初始化内容,初始化,:对将用到的,内部部件,或,扩展芯片,进行,初始工作状态设定,。,单片机,复位,后,特殊功能寄存器,IE,、,IP,内容均为,00H(P38,表,2-8),,所以应,对,IE,、,IP,进行初始化编程,,以,开放中断,,,允许,某些中断源中断和,设置中断优先级,等。,返 回,3/3/2026,5.6.2,中断服务程序,当,CPU,接收,到中断请求信号并予以,响应,后,,CPU,把,当前的,PC,内容压入堆栈,进行保护,然后,转入,响应的中断服务程序入口处执行。,1,、中断服务程序的,起始地址,2,、中断服务程序编写中的,注意事项,返 回,3/3/2026,1,、中断服务程序的起始地址,P122,表,5-1,中断系统对,五个中断源,分别规定了各自的,入口地址,,但这些入口地址,相距很近,(,8,个字节)。,如中断服务程序的指令代码,少于,8,个字节,,则可从规定的中断服务程序入口地址开始,,直接编写,中断服务程序;,3/3/2026,如中断服务程序的指令代码,大于,8,个字节,,则应采用与主程序相同的方法,,在相应的入口处写一条跳转指令,,并以,跳转指令的目标地址,作为,中断服务程序的起始地址,进行编程。,以,INT0,为例,中断矢量地址为,0003H,,,中断服务程序从,0200H,开始。,P126,图,5-13,所示。,0003H,LJMP,02,00,0200H,中断服,务程序,返 回,3/3/2026,2,、中断服务程序编制中的,注意事项,视需要确定是否,保护现场,。,及时清除,那些,不能被硬件自动清除,的,中断请求标志,,以免产生错误的中断。,中断服务程序中的,压栈,与,弹栈,指令,必须成对使用,,以确保中断服务程序的正确返回。,主程序,和,中断服务程序,之间的,参数传递,与,主程序,和,子程序,的,参数传递,方式,相同,。,3/3/2026,5.6.3,中断服务程序,举例,例,5-3,外部中断实验,例,5-4,利用中断显示系统故障,返 回,3/3/2026,例,5-3,外部中断实验:,P127,图,5-14,将,P1,口的,P1.4,P1.7,作为,输入位,,,P1.0,P1.3,作为,输出位,。要求利用8,9C5,1,将开关所设的数据读,入,单片机内,并依次,通过,P1.0,P1.3,输出驱动发,光二极管,,以检查,P1.4,P1.7,输入的电平情况,(,若,输入为,低,电平,则相应的,LED,亮,),。现要求采用,中断,边沿,触发方式,每中断一次,完成一次读/写操作,返 回,3/3/2026,返 回,P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0,INT0,8031,+5V,+5V,+5V,+5V,+5V,1,2,K,图,5-14,外部中断实验,3/3/2026,解,:如图,5-14,:,采用外部中断,0,,,中断申请从,INT0,输入,,,并采用了去抖动电路。,当,P1.0,P1.3,的任何一位,输出为,0,时,相应的,发光二极管就会发光,。,当开关,K,来回拨动一次,时,将产生一个,下降沿,,,通过,INT0,发出中断请求。,中断服务程序的矢量地址为,0003H,。,源程序,如下,:,返 回,3/3/2026,ORG,0000H,LJMP,MAIN,;,上电,转向主程序,ORG,0003H,;,外部中断,0,入口地址,LJMP,INSER,;,转向中断服务程序,ORG,0030H,;,主程序,MAIN,:,SETB EX0,;,允许,外部中断,0,中断,SETB IT0,;,选择,边沿,触发方式,SETB,EA,;CPU,开中断,HERE:SJMP,HERE,;,等待中断,ORG,0200H,;,中断服务程序,INSER,:MOV,A,#0FH,MOV,P1,,,A,;,设,P1.4,P1.7,为输入,MOV,A,,,P1,;,取开关数,SWAP,A,;A,的高、低四位互换,MOV,P1,,,A,;,输出驱动,LED,发光,RETI,;,中断返回,END,3/3/2026,例,5-4,利用中断显示系统故障:,P128,图,5-15,此中断电路可实现系统的故障显示。,当系统的各部分,正常工作时,,四个故障源的输入均为,低电平,,,显示灯全不亮,。,当有,某个部分出现故障时,,则相应的输入线由低电平变为,高电平,,,相应的发光二极管亮,。,返 回,3/3/2026,INT0,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,8031,R,R,R,R,LED,LED,LED,LED,图,5-15,利用中断显示系统故,障,返 回,四,个,故,障,源,3/3/2026,解,:,P128,图,5-15,:当,某一个故障信号输入线,由,低电平,变为,高电平,时,会通过,INT0,线,引起,89C31,中断,(,边沿触发方式,),。在中断服务程序中,应将各,故障源,的信号,读入,并加以,查询,,以进行相应的,发光显示,。,源程序如下:,返 回,3/3/2026,ORG,0000H,LJMP,MAIN,;,上电,转向主程序,ORG,0003H,;,外部中断,0,入口地址,LJMP,INSER,;,转向中断服务程序,MAIN,:,ANL,P1,,,#,55H,;,;,P1.0,P1.2,P1.4,P1.6,为,输入,;,P1.1,P1.3,P1.5,P1.7,为,输出,SETB EX0,;,允许,外部中断,0,中断,SETB IT0,;,选择,边沿,触发方式,SETB,EA ;,CPU,开中断,HERE,:,SJMP,HERE,;,等待中断,INSER,:JNB,P1.0,,,L1,;,查询中断源,(P1.0)=0,转,L1,SETB,P1.1,;,是,P1.0,引起的中断,;,使相应的二极管亮,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,3/3/2026,5.7,思考题与习题,1,、什么是中断和中断系统?其主要功能是什么?,2,、试编写一段对中断系统初始化的程序,使之允许,INT0,,,INT1,,,TO,,,串行口中断,且使,T0,中断为高优先级中断。,3,、在单片机中,中断能实现哪些功能?,4,、,89C51,共有哪些中断源?对其中端请求如何进行控制?,5,、什么是中断优先级?中断优先处理的原则是什么?,6,、说明外部中断请求的查询和响应过程。,返 回,3/3/2026,5.7,思考题与习题,7,、,89C51,在什么条件下可响应中断?,8,、简述,89C51,单片机的中断响应过程。,9,、在,89C51,内存中,应如何安排程序区?,10,、试述中断的作用及中断的全过程。,11,、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?,返 回,3/3/2026,5.7,思考题与习题,13,、,89C51,单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。试问以下几种中断优先顺序的安排(级别由高到低)是否可能:若可能,则应如何设置中断源的中断级别:否则,请简述不可能的理由。,返 回,3/3/2026,定时器,0,,定时器,1,,外中断,0,,外中断,1,,串行口中断,串行口中断,外中断,0,,定时器,0,,外中断,1,,定时器,1,外中断,0,,定时器,1,,外中断,1,,定时器,0,,串行口中断,外中断,0,,外中断,1,,串行口中断,定时器,0,,定时器,1,串行口中断,定时器,0,,外中断,0,,外中断,1,,定时器,1,外中断,0,,外中断,1,,定时器,0,,串行口中断,定时器,1,外中断,0,,定时器,1,,定时器,0,,外中断,1,,串行口中断,返 回,3/3/2026,5.7,思考题与习题,12,、简述,89C51,单片机的中断响应过程。,13,、,89C51,单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?,14,、以中断方法设计单片机秒、分脉冲发生器。假定,P1.0,每秒产生一个机器周期的正脉冲,,P1.1,每分钟产生一个机器周期的正脉冲。,第五章完,3/3/2026,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服