51单片机中断原理.ppt_第1页
51单片机中断原理.ppt_第2页
51单片机中断原理.ppt_第3页
51单片机中断原理.ppt_第4页
51单片机中断原理.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元七MCS-51单片机的中断,一、中断的概述二、MCS-51中断系统三、中断系统的应用,5.1中断的概述,1.中断中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须中止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程。,采用了中断技术后的计算机,可以解决CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高了计算机处理故障与应变的能力。“中断”与“查询”相比:执行效率实时性,2.中断源中断源是指在计算机系统中可以向CPU发出中断请求的来源。通常有I/O设备、实时控制系统中的随机参数和信息故障源等。,3.中断优先级中断优先级越高,则响应优先权就越高。当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高级中断申请,待高级中断处理程序完毕再返回原中断程序断点处继续执行,这一过程称为“中断嵌套”。,4.中断响应的一般过程(1)在每条指令结束后,系统都自动检测中断请求信号,如果有中断请求,且CPU处于开中断状态下,则响应中断。(2)保护现场,在保护现场前,一般要关中断,以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。,(3)中断服务,即为相应的中断源服务。(4)恢复现场,用堆栈指令将保护在堆栈中的数据弹出来,在恢复现场前要关中断,以防止现场被破坏。在恢复现场后应及时开中断。(5)返回,此时CPU将推入到堆栈的断点地址弹回到程序计数器,从而使CPU继续执行刚才被中断的程序。,5.2MCS-51中断系统,图5.1MCS-51中断系统结构框图,5.2.1中断源,表5.18051中断源,中断标志(Flag)IE0:外部中断0中断标志TF0:定时器/计数器0中断标志IE1:外部中断1中断标志TF1:定时器/计数器1中断标志TI:串行口发送中断标志RI:串行口接收中断标志,1.定时器控制寄存器TCON的格式(88H),(MSB),(LSB),IT0:外部中断0触发方式选择位0:低电平触发1:负跳变触发IE0:外部中断0中断请求标志IT1、IE1类似IT0、IE0TR0:定时/计数器0运行控制位0:停止1:运行TF1:定时/计数器0中断请求标志位TR1、TF1类似TR0、TF0,2.特殊功能寄存器SCON的格式(98H),SM0和SM1:串行口工作方式选择位SM2:多机通信使能位REN:接收允许位TB8:发送数据位8RB8:接收数据位8TI:串行口发送中断请求标志RI:串行口接收中断请求标志,MSB,LSB,5.2.2中断控制,1.中断允许控制MCS-51单片机有5个(8052有6个)中断源,为了使每个中断源都能独立地被允许或禁止,以便用户能灵活使用,CPU内部在每个中断信号的通道中设置了一个中断允许触发器,它控制CPU能否响应中断。只有对应的中断允许触发器被使能(置“1”),相应的中断才能得到相应。,EX0:外部中断0允许位ET0:定时器/计数器0中断允许位EX1:外部中断1允许位ET1:定时器/计数器1中断允许位ES:串行口中断允许位EA:中断总允许位,(MSB),(LSB),中断允许控制寄存器IE(0A8H),2.中断优先级控制寄存器IP(0B8H),(MSB),(LSB),PX0:外部中断0允许位PT0:定时器/计数器0中断允许位PX1:外部中断1允许位PT1:定时器/计数器1中断允许位PS:串行口中断允许位,当两个以上的中断源同时提出申请时,CPU到底相应哪个中断呢?中断响应遵循两条规则:(1)低优先级中断可以被高优先级中断所中断,反之不能;(2)一种中断(不论哪个优先级)一旦得到响应,与它同级的中断不能再中断它。,表5.2同级内第二优先级次序,当同时收到处于同一优先级的多个中断请求时,哪一个中断能得到响应,取决于“内部查询次序”,相当于在每个优先级中,还有一个“内部优先级”,如下表所示:,例如,某软件中对寄存器IE、IP设置如下:MOVIE,8FHMOVIP,06H则此时该系统中:CPU中断允许;允许外部中断0、外部中断1、定时器/计数器0、定时器/计数器1提出的中断申请;允许中断源的中断优先次序为:定时器/计数器0外部中断1外部中断0定时器/计数器1。,2019/12/13,19,可编辑,5.2.3中断响应Theinterruptrequestflagsaresampledineachmachinecycle.Thesampledflagsarepolledduringthefollowingmachinecycle.Ifoneoftheflagswasinasetconditionintheprecedingcycle,thepollingcyclewillfinditandtheinterruptcontrollerwillcausetheCPUtobranchtothevectoraddressoftheappropriateserviceroutinebygeneratinganinternalLCALL.,中断标志检测与响应过程,5.2.3.1中断响应的阻断条件在EA1且相应的中断允许位也为1的情况下,检测到的最高级的中断请求将会得到相应。但此时如果发生下列三种情况中的任何一种,中断响应的过程将被阻断:(1)同级或高优先级的中断已在进行中;(2)当前的机器周期还不是正在执行指令的最后一个机器周期(换言之,正在执行的指令完成前,任何中断请求都得不到响应);(3)正在执行的是一条RETI或者访问特殊功能寄存器IE或IP的指令(换言之,在RETI或读写IE或IP之后,不会马上响应中断请求,而至少执行一条其它指令之后才会响应)。,当上述阻断条件存在时,中断不能被相应,且丢弃查询结果。若阻断条件结束时,中断标志已经消失,则这个被拖延了的中断请求可能不会再得到响应。在单一外部中断的系统里(即不考虑上述阻断条件中断的第一个条件),外部中断响应时间总是在38个机器周期之间。,2.单片机一旦响应中断请求,由硬件完成以下功能:(1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1;(2)执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈;(3)清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);(4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。,中断响应过程,相当于执行了一条隐含的调用指令(或称隐指令)LCALL。例如当TF0被置1且得到中断响应时,CPU就自动的执行一条隐指令“LCALL000BH”。应当注意,在中断服务子程序的调用过程中,仅仅保存了PC的信息,其余的现场信息(如寄存器的值等)都要由编程人员通过软件来进行保护。,表5.3中断服务程序入口地址表,例如,现有外部中断1提出申请,且主程序中有R0、R1、DPTR、累加器A需保护,则编制程序应为:,ORG0000HAJMPMAINORG0013HLJMPINT1ORG0100HMAIN:;主程序ORG1000H,INT1:PUSHACC;中断服务程序PUSHDPH;若有更高级中断,PUSHDPL;应先关闭EAPUSHR0;待现场保护完成后PUSHR1;再打开EAPOPR1;恢复现场时相同POPR0POPDPLPOPDPHPOPACCRETI,编程中应注意:(1)在0000H放一条跳转到主程序的跳转指令,这是因为MCS-51单片机复位后,PC的内容变为0000H,程序从0000H开始执行,紧接着0003H是中断程序入口地址,故在此中间只能插入一条转移指令;(2)响应中断时,先自动执行一条隐指令“LCALL0013H”,而0013H至001BH(定时器1溢出中断入口地址)之间可利用的存储单元不够,故放一条无条件转移指令。(3)在中断服务程序的末尾,必须安排一条中断返回指令RETI,使程序自动返回主程序。,5.3中断系统的应用,例1单步操作的中断实现。把一个外部中断(设为INT0)设置为电平激活方式。其中断服务程序的末尾写上如下几条指令:JNBP3.2,$;在INT0变高前,原地等待(死循环)JBP3.2,$;在INT0变低前,原地等待(死循环)RETI;返回并执行一条指令,现在,若INT0保持低电平,且允许INT0中断,则CPU就进入外部中断0服务程序,由于有上述几条指令,它就会停在JNB处,原地等待。当INT0端出现一个正脉冲(由低到高,再到低)时,程序就会往下执行,执行RETI后,将返回主程序,往下执行一条指令,然后又立即响应中断,以等待INT0端出现的下一个正脉冲。这样在INT0端每出现一个正脉冲,主程序就执行一条指令,实现了单步执行的目的,要注意的是,这个正脉冲的高电平持续时间不小于2个周期,以确保CPU能采集到高电平值。,例2多中断源。MCS-51单片机有两个外部中断输入端,当有2个以上中断源时,它的中断输入端就不够了。此时,可以将定时器/计数器作为外部中断源使用,也可以采用中断与查询相结合的方法来实现。可以使每个中断源都接在同一个外部中断输入端上,同时利用输入口线作为多中断源情况下各中断源的识别线。,图5.6多中断源,ORG0003HLJMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论