资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,7,章,MCS-51,的中断控制系统,本章定位,知识提高,71,中断的相关概念,72 MCS-51单片机中断系统结构,721 中断请求源与中断源寄存器TCON、SCON,722 中断控制与中断控制寄存器IE、IP,73,中断的处理过程,731,中断响应,732,中断服务,733,中断返回,74,多外部中断源系统设计,741,用定时器计数器扩展外部中断源,742,中断和查询结合的方法,743,用优先权编码器扩展外部中断源,75,中断系统的程序设计与应用实例,第,7,章,MCS-51,的中断控制系统,实时测控,单片,机,能及时地响应和处理单片机外,部事件或内部事件所提出的中断请求,。,7.1,中断的相关概念,CPU,正在执行程序时,单片机外部或内部发生的某一,事件,,请求,CPU,迅速去处理。,CPU,暂时中止,当前的工作,转到中断服务处理程序处理所发生的事件。,处理完该事件后,,再回到原来被中止的地方,继续原来的工作,这称为,中断,。,CPU,处理事件的过程,称为,CPU,的,中断响应过程。,对事件的整个处理过程,称为,中断处 理,(,或中断服,),。,能够实现中断处理功能的部件称为,中断系统,;产生中断的请求源称为,中断请求源,。,中断源向,CPU,提出的处理请求,称为,中断请求,(或中断申请)。,进入中断保护现场中断处理恢复现场,中断返回,中断方式,优点,:,大大地提高了,CPU,的工作效率,。,7.2 MCS-51,中断系统的结构,有5个中断请求源,两个中断优先级,可两级嵌套。,中断系统结构示意图,如下图所示。,7.2.1,中断请求源 及,TCON,和,SCON,五个中断请求源:,(1),INT0,*,外部中断请求0,由引脚,INT0,*,输入,中断请求标志为,IE0,。,(,2),INT1,*,外部中断请求1,由引脚,INT1,*,输入,中断请求标志为,IE1。,(3),定时器/计数器,T0,溢出,中断请求,中断请求标志为,TF0,。,(4),定时器/计数器,T1,溢出,中断请求,中断请求标志为,TF1,。,(5),串行口中断请求,,中断请求标志为,TI,或,RI,。,由特殊功能寄存器,TCON,和,SCON,的相应位锁存。,1.TCON,为定时器/计数器的控制寄存器,,字节地址为88,H。,包含:,(1),T0,和,T1,的溢出中断请求标志位,TF1,和,TF0,(2),外部中断请求标志位,IE1,与,IE0。,格式如下所示:,各标志位的功能:,(1),IT0,选择外部中断请求0为跳沿触发方式还是电平触发方式:,IT0=0,,,为,电平触发,方式。,IT0=1,,,为,跳沿触发,方式。,可由软件置“1”或清“0”。,(2),IE0,外部中断请求0的中断请求标志位。,IE0=0,,,无中断请求,。,IE0=1,,,外部中断0有中断请求。当,CPU,响应该中断,转向中断服务程序时,由硬件清“0”,IE0。,(3)IT1,外部中断请求1为跳沿触发方式还是电平触发方式,意义与,IT0,类似。,(4),IE1,外部中断请求1的中断请求标志位,意义与,IE0,类似。,(5),TF0,T0,溢出中断请求标志位。,T0,计数后,溢出时,由硬件置“1”,TF0,,向,CPU,申请中断,,CPU,响应,TF0,中断时,,硬件自动清“0”,TF0,,TF0,也可由软件清0。,(6),TF1,T1,的溢出中断请求标志位,功能和,TF0,类似。,TR1,、,TR0,2个位与中断无关。,当,MCS-51,复位后,,,TCON,被清0,则,CPU,关中断,,所有中断请求被禁止。,2.SCON,为串行口控制寄存器,字节地址为98,H,。串行口的,发送中断,和,接收中断,的中断请求标志,TI,和,RI,,,格式如下:,各标志位的功能:,(1),TI,发送中断请求标志位。串口每发送完一帧串行数据后,硬件自动置“1”,TI。,必须在中断服务程序中用软件对,TI,标志清“0”。,(2),RI,接收中断请求标志位。串口接收完一个数据帧,硬件自动置“1”,RI,标志。,必须在中断服务程序中用,软件,对,RI,标志清“0”。,7.2.2,中断控制,和,IE IP,1,.,中断允许寄存器,IE,CPU,对中断源的开放或屏蔽,由片内的,中断允许寄存器,IE,控制。,字节地址为,A8H,,,可位寻址。格式如下:,IE,对中断的开放和关闭为两级控制,总的开关中断控制位,EA,(IE.7,位):,EA=0,,所有中断请求被屏蔽。,EA=1,,,CPU,开放中断,但五个中断源的中断请求是否允许,还要由,IE,中的5个中断请求允许控制位决定。,IE,中各位的功能如下:,(1),EA,:,中断允许总控制位,0:,CPU,屏蔽所有的中断请求(,CPU,关中断);,1:,CPU,开放所有中断(,CPU,开中断)。,(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,,所有中断请求被禁止。,若使某一个中断源被允许中断,,除了,IE,相应的位的被置“1”,还必须使,EA,位=1。,改变,IE,的内容,可由位操作指令来实现,即:,SETB bit;,CLR bit。,例,7-,补,1,若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置,IE,的相应程序段,(1)用位操作指令来编写如下程序段,:,CLR ES,;禁止串行口中断,CLR EX1 ;,禁止外部中断1中断,CLR EX0;,禁止外部中断0中断,SETB ET0 ;,允许定时器/计数器,T0,中断,SETB ET1 ;,允许定时器/计数器,T1,中断,SETB EA ;CPU,开中断,(2)用字节操作指令来编写,:,MOV IE,#8AH,或者用:,MOV 0A8H,#8AH,;A8H,为,IE,寄存器字节地址,2.,中断优先级寄存器,IP,两个中断优先级,可实现两级中断嵌套。如图,7-2,示。,可归纳为下面,两条基本规则,:,(1)低优先级可被高优先级中断,反之则不能。,(2)同级中断不会被它的同级中断源所中断。,若,CPU,正在执行高优先级的中断,则不能被任何中断源所中断,。,中断优先级寄存器,IP,,,其字节地址为,B8H,。,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,的中断系统,有,两个,不可寻址的“优先级激活触发器”,:,一个,用来指示某高优先级的中断正在执行,所有后来的中断均被阻止。,另一个,用来指示某低优先级的中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。,在同时收到,几个同一优先级的中断请求,时,,优先响应哪一个中断,取决于,内部的查询顺序,。,查询顺序,如下:,表,7-1,中断源 同级内的中断顺序,外部中断0最先,T0,溢出中断,外部中断1,T1,溢出中断,串行口中断最后,例,7-,补,2,设置,IP,寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级。,(1)用位操作指令,SETB PX0,;2,个外中断为高优先级,SETB PX1,CLR PS,;,串口为低优先级中断,CLR PT0,;,2,个定时器/计数器低优先级中断,CLR PT1,(2),用字节操作指令,MOV IP,#05H,或:,MOV 0B8H,#05H;B8H,为,IP,寄存器的字节地址,7.3,中断的处理过程,7.3.1,中断响应,1.,中断响应条件,一个中断请求被响应,需满足以下必要条件:,(1),IE,寄存器中的中断总允许位,EA=1。,(2),该中断源发出中断请求,即该中断源对应的中,断请求标志为“1”。,(3)该中断源的中断允许位=1,即该中断没有被屏,蔽。,(4)无同级或更高级中断正在被服务。,2.,中断响应过程:,首先由硬件自动生成一条长调用指令:,LCALL addr16,接着就由,CPU,执行该指令,将,PC,的内容压入堆栈以保护断点,,再将,中断入口地址装入,PC,。,各中断源服务程序的,入口地址固定,,如下所示:,中断源 入口地址,外部中断0 0003,H,定时器/计数器,T0 000BH,外部中断1 0013,H,定时器/计数器,T1001BH,串行口中断0023,H,中断响应是有条件的,遇到,下列三种情况,之一时,中断响应被封锁:,(1),CPU,正在处理同级的或更高优先级的中断,。,(2),所查询的机器周期,不是所当前正在执行指令的最后一个机器周期,。只有在当前指令执行完毕后,才能进行中断响应。,(3),正在执行的指令是,RETI,或是访问,IE,或,IP,的指令。,需要再去执行完一条指令,才能响应新的中断请求。,如果存在上述三种情况之一,,CPU,将丢弃中断查询结果,不能对中断进行响应。,3.,外部中断的响应时间,-,记住结论即可,外部中断的,最短,的响应时间为3个机器周期:,(1)中断请求标志位查询占,1个机器周期,。,(2)子程序调用指令,LCALL,转到相应的中断服务程序入口,需,2个机器周期,。,外部中断响应的,最长,的响应时间为8个机器周期,:,(1),发生在,CPU,进行中断标志查询时,刚好是开始,执行,RETI,或是访问,IE,或,IP,的指令,,则,需把当前指令执行完,再继续执行一条指令后,才能响应中断,,最长需2个机器周期,。,(,2,),接着再执行一条指令,按最长指令(乘法指令,MUL,和除法指令,DIV),来算,也只有,4个机器周期,。,(,3,),加上,硬件子程序调用,指令,LCALL,的执行,需要,2个机器周期,。,所以,,外部中断响应最长时间为,8个机器周期,。,如果已在处理同级或更高级中断,,响应时间无法计算。,在一个单一中断的系统里,,MCS-51,单片机,对外部中断请求的响应的时间总是在,38个机器周期,之间。,7.3.2,中断服务,保护断点,一段,特殊,的“子程序”,7.3.3,中断返回,入栈与出栈的,配合,请求,服务,,返回前,撤销,中断请求,否则重复中断,。,补充:外部中断的触发方式选择,两种触发方式,:,电平触发,方式和,跳沿触发,方式。,7,补,1,电平触发方式,CPU,在每个机器周期采样到的外部中断输入线的电平。,在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),,否则,CPU,返回主程序后会再次响应中断。,适于外中断以低电平输入且中断服务程序能清除外部中断请求(即外部中断输入电平又变为高电平)的情况。,7,补,2,跳沿触发方式,连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断请求标志,直到,CPU,响应此中断时,该标志才清0。这样不会丢失中断,但,输入的负脉冲宽度至少保持1个机器周期,。,*,中断请求的撤消 定时,+,外部,+,串行,1,定时器/计数器中断请求,的撤消,中断请
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6