收藏 分销(赏)

单片机中断ppt.ppt

上传人:仙人****88 文档编号:10522998 上传时间:2025-06-01 格式:PPT 页数:36 大小:973KB
下载 相关 举报
单片机中断ppt.ppt_第1页
第1页 / 共36页
单片机中断ppt.ppt_第2页
第2页 / 共36页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章中断系统,5.1,微机的输入,/,输出方式,5.2,中断的概念,5.3 89C51,中断系统结构及中断控制,5.4,中断处理过程,5.5,外部中断扩展方法,5.6,中断程序举例,5.7,思考题与习题,5.1,微机的输入,/,输出方式,5.1.1,无条件传送方式,不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。,5.1.2,查询传送方式(条件传送),通过查询外设的状态信息,确信外设已处于,“,准备好,”,,计算机才发出访问外设的指令,实现数据的传送。,输出时,要查询外设是否把上一次,CPU,输出的数据处理完毕。,状态信息:一般为,1,位二进制码。,输入时,需要查询外设的输入数据是否准备好;,输入状态信息,准备好?,传送数据,Y,N,查询方式程序流程图,缺点:,CPU,在完成一次数据传送后要等待很长时间才能进行下一次的传送。在等待过程中,,CPU,不能进行其他操作,所以效率比较低。,优点:通用性好,可以用于各类外设和,CPU,间的数据传送。,5.1.3,直接存储器存取(,DMA,)方式,DMA:Direct Memory Access,CPU,让出数据总线(悬浮状态),使外设和存储器之间直接传送(不通过,CPU,),数据的方式。,适用于外设和存储器之间有大量的数据需要传送及外设工作速度很快的情况。,5.1.4,中断传送方式,当,CPU,正在工作时,外部事件请求,CPU,迅速去处理,于是,CPU,暂停当前工作,转去处理外部事件。中断服务处理完毕后,再返回到原来被暂停的地方继续原来的工作,这样的过程称为中断。,主程序,响应中断请求,中断服务程序,返回主程序,继续执行主程序,断点,中断请求,5.2,中断的概念,一、什么是中断,二、中断源,引起并发出中断请求的源头,三、中断源识别,中断发生后,系统如何识别是哪一个中断源引起的中断。,四、中断控制 中断允许、中断优先级控制,五、中断优点,分时操作提高主机效率,实时处理,随机故障处理,5.3.1 89C51,中断源,和中断请求标志,8051,提供,5,个中断源:,INT0,P3.2,引脚上的外部中断请求(外中断,0,),INT1,P3.3,引脚上的外部中断请求(外中断,1,),T0,片内定时器,/,计数器,0,溢出(,TF0,),中断请求,T1,片内定时器,/,计数器,1,溢出(,TF1,),中断请求,TI/RI,片内串行口完成一帧发送或接收中断请求源,说明:,每一个中断源都对应有一个中断请求标志位,设在,SFR,的,TCON,和,SCON,中。,有中断请求时,由,TCON,和,SCON,中的相应位来锁存。,5.3 89C51,中断系统结构及中断控制,TCON,定时器,/,计数器,(T0,T1),控制器(,88H,),TF,1,TF,0,IE,1,IT,1,IE,0,IT,0,8F 8E 8D 8C 8B 8A 89 88,TCON,T1,溢出中断标志,T0,溢出中断标志,外中断,1,请求标志,外部中断,1,触发方式控制,外部中断,0,触发方式控制,外中断,0,请求标志,T0,、,T1,从初值开始加,1,计数到产生溢出,使,TF0,、,TF1,置“,1”,,直到,CPU,响应中断时由硬件复位。,若,ITi,1,(,沿触发),则,INTi,上的,电平由,1,变到,0,时,置位,IEi,、在,CPU,响应该中断时由硬件清,0,。,若,ITi,0,(,电平触发),则输入到,INTi,的外部中断源必须保持低电平有效,直到该中断被响应。同时在中断返回前必须使电平变高,否则将会再次产生中断。,位地址,SCON,串行口控制寄存器(,98H,),当发送和接收中任何一个标志被置位时,都可以向,CPU,提出申请。必须在中断服务程序中判断,并由软件将,RI,和,TI,标志位清,0,。,发送中断标志,接收中断标志,TI RI,SCON,9F 9E 9D 9C 9B 9A 99 98,位地址,一帧数据发送完毕置,“,1,”,TI,,请求,CPU,发送下一帧,一帧数据接收完毕置,“,1,”,RI,,请求,CPU,取走数据,通常情况的中断源:,I/O,外设、硬件故障、实时时钟等,5.3.2,中断控制,IE,中断允许寄存器(,A8H,),EA ES ET,1,EX,1,ET,0,EX,0,IE,AF AE AD AC AB AA A9 A8,中断允许标志,0,禁止,所有中断,1,开放中断,外部中断,0,1,允许中断,外部中断,1,1,允许中断,T0,的溢出中断,1,允许中断,T1,的溢出中断,1,允许中断,串行口中断允许位,1,允许中断,位地址,一、中断允许控制,例:,假设允许片内定时器,/,计数器中断,禁止其他中断。试根据假设条件设置,IE,的相应值。,解,:(,IE,),=10001010B=8AH,(,a,),用字节操作指令,MOV IE,,,#8AH,;,或,MOV 0A8H,,,#8AH,;,(,b,),用位操作指令,SETB ET0,;,定时器,/,计数器,0,允许中断,SETB ET1,;,定时器,/,计数器,1,允许中断,SETB EA,;,CPU,开中断,二、中断优先级控制,中断系统提供两个中断优先级,每一个中断源都可编程设置为高优先级或低优先级,以便实现二级中断嵌套。,中断优先级是由,IP,控制的,,IP,格式如下:,PS PT,1,PX,1,PT,0,PX,0,IP,BF BE BD BC BB BA B9 B8,外部中断,0,优先级,外部中断,1,优先级,T0,中断优先级,T1,中断优先级,串行口中断优先级,位地址,Di=1,设高优先级,Di=0,设低优先级,B8H,字节地址,中断优先级排列顺序,中断系统内具有两级优先级,遵循以下两条基本规则,:,(,1,)低优先级中断源可被高优先级中断源所中断。,(,2,),一种中断源一旦得到响应,与它同级的中断源不能再中断它。,同时收到几个同一优先级的中断,其优先级排列如下:,中断源同级内的中断优先级外部中断,0,最高,T0,溢出中断外部中断,1,T1,溢出中断串行口中断最低,二级中断嵌套,CPU,在执行主程序,低级中,断请求,响应低级中断请求,CPU,执行低级,中断服务程序,高级中,断请求,响应高级中断请求,CPU,执行高级,中断服务程序,返回低级中断程序,返回主程序,例:,设,8031,的片外中断为高优先级,片内中断为低优先级。设置,IP,相应值,。,解:(,IP,),=00000101B=05H,(a),用字节操作指令,MOV IP,,,#05H,;,或,MOV 0B8H,,,#05H,;,(b),用为操作指令,SETB PX0,SETB PX1,CLR PS,CLR PT0,CLR PT1,89C51,中断系统,一、响应中断的条件,CPU,在每个机器周期的,S5P2,时刻采样中断标志,而在下一个机器周期对采样到的中断进行处理。按优先级高低,中断系统将控制转入相应的中断服务程序。,(,3,)当前正在执行的指令是返回(,RETI,)指令或是对,IE,或,IP,进行读,/,写的指令。,(,2,)现行的机器周期不是当前所执行指令的最后一个机器周期。,5.4,中断响应及中断处理过程,封锁,CPU,对中断响应的条件:,(,1,),CPU,正在处理同级的或高一级的中断,中断响应时间,CPU,不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。,对于顺利的中断响应,其,最短的响应时间为,3,个机器周期。,对于受阻的中断响应,则响应时间会更长一些。,若中断系统只有一个中断源,则响应时间为,3,8,个机器周期之间。,二、中断响应过程,把当前,PC,值压入堆栈,保护断点。,将相应的中断服务程序的入口地址送入,PC,。,对有些中断源,,CPU,会自动清除中断标志。,执行中断服务程序。,执行到返回指令,RETI,,,中断服务程序结束,将堆栈内容弹出到,PC,,,返回到原来断点继续执行。,三、中断源入口地址,外部中断,0 0003H,定时器,/,计数器,0 000BH,外部中断,1 0013H,定时器,/,计数器,1 001BH,串行口,0023H,TF,1,TF,0,IE,1,IT,1,IE,0,IT,0,8F 8E 8D 8C 8B 8A 89 88,TCON,外中断,1,请求标志,外部中断,1(INT1),触发方式控制,外部中断,0(INT1),触发方式控制,外中断,0,请求标志,若,ITi,1,至少一个机器周期高电平,一个机器,(下降沿触发)周期低电平。,若,ITi,0,,保持低电平直到中断被响应为止。,(低电平触发)中断返回前必须使电平变高。,位地址,无论何种方式,转入中断后,由硬件清,0,中断请求标志。,5.5,关于外部中断,5.6,中断程序举例,一、中断程序,框架,ORG 0000H,AJMP MAIN,ORG 0003H,AJMP INT,ORG 0050H,MAIN:MOV SP,#60H,MOV IP,#data1,;设置中断优先级,MOV IE,#data2,;中断开放,SETB IT,X,;,沿触发或电平触发,INT,:,;中断服务程序,RETI,END,1.,查询方式,ORG 0000H,AJMP MAIN,ORG 0050H,MAIN:MOV A,#00H,MOV P1,A,KK:JNB P3.2,WW,SJMP KK,WW:CPL A,MOV P1,A,JNB P3.2,$,SJMP KK,END,例,1,:按一次全亮,再按一次全黑,二、,应用举例,2.,中断方式,ORG 0000H,AJMP MAIN,ORG 0003H,AJMP INT,ORG 0050H,MAIN:MOV SP,#60H,MOV IE,#1000 0001B,;,或,SETB EA,EX0,SETB IT0,;,下降沿触发,MOV A,#00H,MOV P1,A,INT:CPL A,SJMP$,MOV P1,A,RETI,END,1.,结合电路图,读下列程序,说明其功能,。,MOV A,#03H,ML:MOV P1,A,ACALL DL,CPL A,SJMP ML,DL:MOV R7,#0A3H,DL1:MOV R6,#0FFH,DL6:DJNZ R6,DL6,DJNZ R7,DL1,RET,2.,如果想通过按键控制红绿灯的切换,硬件应该怎样改电路图,软件怎样编程序,?,例,2,:,MOV A,#03H,MOV P1,A,DDD:JB P3.2,DDD,CPL A,MOV P1,A,DD1:JNB P3.2,DD1,SJMP DDD,3.,如果想通过中断方式实现上述功能,软件怎样编程序,?,仿前例。,ORG 0000H,AJMP MAIN,ORG 0003H,AJMP INT,ORG 0050H,MAIN:MOV SP,#60H,MOV IE,#1000 0001B,;,SETB IT0,;,下降沿触发,MOV A,#03H,MOV P1,A,SJMP$,INT:CPL A,MOV P1,A,RETI,END,例,3,:某,8051,单片机定时采样压力、温度信号。定时用,T0,实现,压力超限和温度超限的报警信号分别由,INT0,、,INT1,引脚输入,中断优先级排列顺序依次为:压力,温度,定时,确定,IE,、,IP,控制字,并编写初始化程序。,ORG 0000H,AJMP M,ORG 0003H,AJMP INTA,ORG 000BH,AJMP TIMER0,ORG 0013H,AJMP INTB,ORG 0050H,M:MOV IP,#0000 0101B,SETB IT0,;,下降沿触发,MOV IE,#1000 0111B;,或,SETB EA,EX0,例,4,:,某工业监控系统,具有温度、压力、,PH,值等多路监控功能。当,PH,值,7,时,,将向,CPU,申请中断,,CPU,响应中断后令,P3.0,输出高电平,经驱动使加碱管道电磁阀接通一秒,以调整,PH,值,请设计软件。,撤申请,P1.6,ORG 0000H,AJMP M,ORG 0003H,AJMP IT0,ORG 0030H,M:MOV IE,#81H;,CLR IT0;,电平触发,HE:SJMP HE,ORG 0050H,IT0:JB P1.0,TE1;,温度,JB P1.1,TE2;,温度,JB P1.2,PH;PH,JB P1.3,PL;,压力,ORG 0080H,PH:PUSH PSW,PUSH A,SETB P3.0,ACALL DELAY1S,CLEAR P3.0,ANL P1,#0BFH,;撤申请,ORL P1,#40H,POP A,POP PSW,RETI,END,例,5,:外部中断实验:,如图所示,将,P1,口的,P1.4,P1.7,作为,输入,位,,P1.0,P1.3,作为,输出,位。要求利用8031将开关所设的数据读入单片机内,并依次通过,P1.0,P1.3,输出,驱动发光二极管,以检查,P1.4,P1.7,输入的电平情况(若输入为高电平则相应的,LED,亮)。,现要求采用中断边沿触发方式,每中断一次,完成一次读/写操作。,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,S1,例:,采用外部中断,0,,并采用了去抖动电路。当,P1.0,P1.3,的任何一位输出为,1,时,相应的发光二极管就会发光。当开关,S1,闭合时,发出中断请求。,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,,,#0F0H,MOV P1,,,A,;设,P1.4,P1.7,为输入,MOV A,,,P1,;,取开关数,SWAP A,;,A,的高、低四位互换,MOV P1,,,A,;,输出驱动,LED,发光,RETI,;,中断返回,END,例,6,:利用中断显示系统故障,:,如图所示,此中断电路可实现系统的故障显示。当系统的各部分正常工作时,四个故障源的输入均为低电平,显示灯全不亮。当有某个部分出现故障时,则相应的输入线由低电平变为高电平,相应的发光二极管亮。,解:,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,利用中断显示系统故障,返 回,四,个,故,障,源,解:如图所示,当某一个故障信号输入线由低电平变为高点平时,会通过,INT0,线引起,8051,中断(边沿触发方式)。在中断服务程序中,应将各故障源的信号读入,并加以查询,以进行相应的发光显示。,ORG 0000H,LJMP MAIN,;,上电,转向主程序,ORG 0003H,;,外部中断,0,入口地址,LJMP INSER,;,转向中断服务程序,MAIN,:,ANL P1,#55H,;,01010101B,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,试试左边两种情况下,如何编程控制,蜂鸣器发声或灯点亮。,按键控制且有时间间隔要求,
展开阅读全文

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


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

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

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

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

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服