中断概念和外部中断.ppt

上传人:za****8 文档编号:3180003 上传时间:2019-12-06 格式:PPT 页数:30 大小:311.51KB
返回 下载 相关 举报
中断概念和外部中断.ppt_第1页
第1页 / 共30页
中断概念和外部中断.ppt_第2页
第2页 / 共30页
中断概念和外部中断.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
,看电视,中断处理,中断请求,实际生活,中断返回,电话铃响,接听电话,看电视,主程序,计算机,事件发生,事件处理,主程序,5.1.1中断的概念,5.180C51单片机的中断系统,中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须中止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程。采用了中断技术后的计算机,可以解决CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高了计算机处理故障与应变的能力。,中断解决了快速主机与慢速I/O设备的数据传送,还具有如下优点:,分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;,实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;,可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,图5.1MCS-51中断系统结构框图,中断源是指在计算机系统中向CPU发出中断请求的来源,中断可以人为设定,也可以是为响应突发性随机事件而设置。,5.1.2中断源,表5.18051中断源,1.中断控制寄存器TCON,(MSB),(LSB),图5.2TCON格式,与中断标志相关的寄存器,位地址:8FH8EH8DH8CH8BH8AH89H88H,TF1:定时器T1溢出中断标志位,硬件复位为0,T1溢出中断为1。,TF0:定时器T0溢出中断标志位,硬件复位为0,T0溢出中断为1。,TR1、TR0:定时器运行控制位,置0可以停止T0、T1计数,置1可以启动T0、T1计数。,IE1、IE0:外部中断请求标志位;外部中断请求有效时自动置位,CPU响应中断请求后,由硬件自动复位,以等待下次中断。硬件复位为0,来中断则相应置1。,IT1、IT0:外部中断触发方式控制位,置0可以设为电平触发,置1可以设为负边沿触发。,2.串行口控制寄存器SCON,图5.3SCON格式,(MSB),LSB,位地址:9FH9EH9DH9CH9BH9AH99H98H,TI:发送中断标志位RI:接收中断标志位CPU能自动置位,执行中断服务程序后由指令来清除标志位,以便响应下次中断请求。,MCS-51单片机有5个(8052有6个)中断源,为了使每个中断源都能独立地被允许或禁止,以便用户能灵活使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器。只有该触发器无效,它所对应的中断请求信号才能进入CPU,即此类型中断开放。否则,即使其对应的中断标志位置1,CPU也不会响应中断,即此类型中断被屏蔽了。同时CPU内还设置了一个中断允许触发器,它控制CPU能否响应中断。,5.1.2中断控制,1.中断允许控制(IE),图5.4IE格式,(MSB),(LSB),位操作(EA1;ET11;)或字节操作(IE0 x88;),EA:中断总控开关。EA=1,CPU开总中断;EA=0,CPU关总中断。ET2:定时器2中断允许位。ET2=1,允许T2中断;ET2=0,禁止T2中断;ES:串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断;ET1:定时器1中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断;,EX1:外部中断1INT1允许位。EX1=1,允许INT1中断;EX1=0,禁止INT1中断;ET0:定时器0中断允许位。ET0=1,允许T0中断;ET1=0,禁止T0中断;EX0:外部中断1INT0允许位。EX0=1,允许INT0中断;EX0=0,禁止INT0中断;,2.中断优先级的控制(IP),(MSB),(LSB),图5.5IP的格式,分两级中断,每个中断源均可设置为高或低两种中断级别,高优先级中断先得到执行,而且可以在低优级中断服务程序中响应高优先级的中断,形成两级中断嵌套。高优先级置1,低优先级置0。,表5.2同级内第二优先级次序,中断优先级越高,则响应优先权就越高。当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高级中断申请,待高级中断处理程序完毕再返回原中断程序断点处继续执行,这一过程称为中断嵌套。,1.中断响应的条件,5.280C51单片机中断处理过程,5.2.1中断响应条件和时间,(1)有中断请求;(2)对应中断允许位为1;(3)开中断(即EA=1)。,同时满足时,才可能响应中断。,中断响应受阻的情况:,(1)同级或高优先级的中断已在进行中;(2)当前的机器周期还不是正在执行指令的最后一个机器周期(换言之,正在执行的指令完成前,任何中断请求都得不到响应);(3)正在执行的是一条RETI或者访问特殊功能寄存器IE或IP的指令(换言之,在RETI或读写IE或IP之后,不会马上响应中断请求,而至少执行一条其它指令之后才会响应)。,单片机一旦响应中断请求,就由硬件完成以下功能:(1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1;(2)执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈;(3)清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);(4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。,2.中断响应过程,表5.3中断服务程序入口地址表,分三种不同的情况:(1)TF0,TF1两个标志CPU响应中断后自动清除;(2)串行口的TI,RI必须由软件清除(TI0;RI0;);(3)外部中断的撤除:边沿触发方式:CPU响应中断后自动清除标志位;电平触发方式:要求有效低电平应在中断程序返回前变为高电平。,3.中断请求的撤除,5.3MCS51单片机中断的C语言程序设计方法,1.中断初始化(在main函数开始的地方设定)2.中断服务子函数。,在单片机C语言程序设计里,中断程序的编写一般包含两个部分:,一、中断初始化:1、关总中断2、清除所有中断标志;3、若为外部中断,则设定触发方式,电平触发还是负边沿触发;4、若为定时器中断,则设定计数初值;5、设定中断优先级别;6、开相应的中断;7、若为定时器中断,则启动定时器计时;8、开总中断。注意:程序设计中虽然不一定要按照上面的步骤,但这样是最可靠的。程序设计中根据需要有些步骤是可以省略的。,中断服务子函数在main函数里不需要人工调用,当有中断信号到来时,单片机自动调用中断服务子函数,在中断服务子函数里也可以调用其他用户自定义的子函数,当顺序执行到中断服务子函数的末尾时则单片机自动跳回原来程序执行的地方。,中断服务子函数:,void中断服务子函数名称(void)interrupt中断标号1、清除相应中断标志位或关相应中断;2、完成相应中断的服务功能;(在此可以调用其他子函数)3、打开相应中断。其中,中断标号为0、1、2、3、4分别顺序代表外部中断INT0、定时器中断T0、外部中断INT1、定时器中断T1、串行中断。这是一个很重要的标记,它规定着当前这个子函数是哪个中断源的中断服务子程序。,中断服务子函数的编写格式为:,P1,P3.0,Q,D,CLK,CLR,选通信号,+5V,INT0,数据,80C51,Vcc,例:单外中断源,#include#defineuncharunsignedcharsbitRESET=P30;voidDelay(unchardelaytime);voidDelay(unchardelaytime)/延时函数unchari=0;uncharj=0;for(i=0;idelaytime;i+)for(j=0;j120;j+);,voidInterruptINT0(void)interrupt0EA=0;RESET=0;Delay(10);RESET=1;P1=0 xff;ai=P1;EA=1;,voidmain(void)EA=0;/关总中断IE0=0;/清除外部中断INT0标志位IT0=0;/设定为负边沿触发EX0=1;/开外部中断INT0EA=1;/开总中断while(1)./系统主循环,
展开阅读全文
相关资源
相关搜索

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


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

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


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