欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第6章 中断系统.ppt

    • 资源ID:15608472       资源大小:477.50KB        全文页数:65页
    • 资源格式: PPT        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第6章 中断系统.ppt

    课程主讲人:第6章 中断系统2 第第6 6章章 AT89S52AT89S52单片机的中断系统单片机的中断系统23 【内容概要内容概要】本章介绍本章介绍AT89S52单片机片内功能部件中断系统的硬件单片机片内功能部件中断系统的硬件结构和工作原理。结构和工作原理。AT89S52的中断系统能够实时地响应片内功能部件和外的中断系统能够实时地响应片内功能部件和外围设备发出的中断请求并进入中断服务子程序进行处理。通过本章学习,围设备发出的中断请求并进入中断服务子程序进行处理。通过本章学习,读者应重点掌握与中断系统有关的特殊功能寄存器及中断系统的应用特性读者应重点掌握与中断系统有关的特殊功能寄存器及中断系统的应用特性,应能熟练地进行中断系统的初始化编程以及中断函数的设计。,应能熟练地进行中断系统的初始化编程以及中断函数的设计。在计算机(单片机)系统中,都具有在计算机(单片机)系统中,都具有对外界随机发生的事件对外界随机发生的事件的的作出及时作出及时响应并处实时处理响应并处实时处理的功能,这是靠中断技术来实现的。的功能,这是靠中断技术来实现的。46.1 6.1 单片机中断技术概述单片机中断技术概述 中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并快速响应与及时处理。提出的服务请求,并快速响应与及时处理。 图图6-16-1显示单片机对外设中断服务请求整个中断响应和处理过程。显示单片机对外设中断服务请求整个中断响应和处理过程。图图6-1 中断响应和处理过程中断响应和处理过程5当某个中断请求源发出中断请求时,并且中断请求被允许的话,单片机当某个中断请求源发出中断请求时,并且中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。中暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。中断服务请求处理完后,再回到原来被中止的程序之处(断点),继续执行被断服务请求处理完后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。中断的主程序。如没有单片机中断系统,大量时间可能会浪费在查询是否有服务请求的如没有单片机中断系统,大量时间可能会浪费在查询是否有服务请求的定时查询操作上,即不论是否有服务请求,都必须去查询。采用中断技术完定时查询操作上,即不论是否有服务请求,都必须去查询。采用中断技术完全消除查询方式的等待,大大提高单片机工作效率和实时性。全消除查询方式的等待,大大提高单片机工作效率和实时性。6.2 AT89S56.2 AT89S52 2中断系统结构中断系统结构中断系统结构见中断系统结构见图图6-26-2。中断系统有。中断系统有6 6个中断请求源个中断请求源(简称中断源),(简称中断源),2 2个个中断优先级,可实现中断优先级,可实现2 2级级中断服务程序嵌套。每一中断源可用软件独立控制中断服务程序嵌套。每一中断源可用软件独立控制为允许中断或关闭中断状态;每一个中断源的优先级均可用软件设置。为允许中断或关闭中断状态;每一个中断源的优先级均可用软件设置。6 图图6-26-2 AT89S5 AT89S52 2的中断系统结构的中断系统结构7 6.2.1 6.2.1 中断请求源中断请求源 由由图图6-26-2,中断系统共有,中断系统共有6 6个中断请求源,它们是:个中断请求源,它们是:(1 1)INT0INT0* *外部中断请求外部中断请求0 0,外部中断请求信号(低电平或负跳变有效),外部中断请求信号(低电平或负跳变有效)由由INT0INT0* *引脚输入,中断请求标志为引脚输入,中断请求标志为IE0IE0。(2 2)INT1INT1* *外部中断请求外部中断请求1 1,外部中断请求信号(低电平或负跳变有效),外部中断请求信号(低电平或负跳变有效)由由INT1INT1* *引脚输入,中断请求标志为引脚输入,中断请求标志为IE1IE1。(3 3)定时器定时器/ /计数器计数器T0T0计数溢出的中断请求,标志为计数溢出的中断请求,标志为TF0TF0。(4 4)定时器定时器/ /计数器计数器T1T1计数溢出的中断请求,标志为计数溢出的中断请求,标志为TF1TF1。(5 5)串行口中断请求,标志为发送中断串行口中断请求,标志为发送中断TITI或接收中断或接收中断RIRI。 (6 6)定时器定时器/ /计数器计数器T2T2的中断请求源,含有计数溢出(的中断请求源,含有计数溢出(TF2TF2)和)和“捕捉捕捉”(EXF2EXF2)两种中断请求标志,经或门共用一个中断向量。两种中断触发是由)两种中断请求标志,经或门共用一个中断向量。两种中断触发是由T2T2的两种不同工作方式决定的。的两种不同工作方式决定的。 8 6.2.2 6.2.2 中断请求标志寄存器中断请求标志寄存器6 6个中断请求源的中断请求标志分别由个中断请求源的中断请求标志分别由特殊功能寄存器特殊功能寄存器TCONTCON和和SCONSCON相应位相应位锁存(见锁存(见图图6-26-2)。)。1 1TCONTCON寄存器寄存器为定时器为定时器/ /计数器的控制寄存器,计数器的控制寄存器,字节地址为字节地址为88H88H,可位寻址。既包括定时,可位寻址。既包括定时器器/ /计数器计数器T0T0、T1T1溢出中断请求标志位溢出中断请求标志位TF0TF0和和TF1TF1,也包括两个外部中断请求的,也包括两个外部中断请求的标志位标志位IE1IE1与与IE0IE0,还包括两个外部中断请求源的中断触发方式选择位。,还包括两个外部中断请求源的中断触发方式选择位。TCONTCON格式见格式见图图6-36-3。9图图6-3 特殊功能寄存器特殊功能寄存器TCON的格式的格式10 TCONTCON寄存器中与中断系统有关各标志位功能如下:寄存器中与中断系统有关各标志位功能如下:(1 1)TF1TF1定时器定时器/ /计数器计数器T1T1的溢出中断请求标志位。的溢出中断请求标志位。 当启动当启动T1T1计数后,计数后,T1T1从初值开始加从初值开始加1 1计数,当最高位产生溢出时,硬件计数,当最高位产生溢出时,硬件 置置TF1TF1为为“1”1”,向,向CPUCPU申请中断,申请中断,响应响应TF1TF1中断时,中断时,TF1TF1标志硬件自动清标志硬件自动清“0”“0”,TF1TF1也可由软件清也可由软件清“0”“0”。(2 2)TF0TF0定时器定时器/ /计数器计数器T0T0溢出中断请求标志位,与溢出中断请求标志位,与TF1TF1类似。类似。(3 3)IE1IE1外部中断请求外部中断请求1 1中断请求标志位。中断请求标志位。(4 4)IE0IE0外部中断请求外部中断请求0 0中断请求标志位,与中断请求标志位,与IE1IE1类似。类似。 11(5 5)IT1IT1选择外中断请求选择外中断请求1 1为跳沿触发还是电平触发方式。为跳沿触发还是电平触发方式。0 0-电平触发电平触发方式,加到方式,加到INT0INT0* *脚脚上的外中断请求输入信号为低电平上的外中断请求输入信号为低电平有效,并把有效,并把IE1IE1置置“1”1”。转向中断服务程序时,则。转向中断服务程序时,则由硬件自动把由硬件自动把IE1IE1清清“0”0”。1 1-跳沿触发跳沿触发方式,加到方式,加到INT1INT1* *脚脚上的外中断请求输入信号从上的外中断请求输入信号从高到低高到低的负跳变的负跳变有效,并把有效,并把IE1IE1置置“1”1”。转向中断服务程序时,则。转向中断服务程序时,则由硬件自动把由硬件自动把IE1IE1清清“0”0”。(6 6)IT0IT0选择外中断请求选择外中断请求0 0为跳沿触发方式还是电平触发方式,与为跳沿触发方式还是电平触发方式,与IT1IT1类似。类似。当当AT89S52AT89S52复位后复位后,TCONTCON被清被清“0”0”,6 6个中断源的中断请求标志均为个中断源的中断请求标志均为0 0。TR1TR1(D6D6位)、位)、TR0TR0(D4D4位)这位)这2 2位与中断系统无关,仅与定时器位与中断系统无关,仅与定时器/ /计数器计数器T1T1和和T0T0有关,将在有关,将在第第7 7章章定时器定时器/ /计数器中介绍。计数器中介绍。122 2SCONSCON寄存器寄存器串行口控制寄存器,串行口控制寄存器,字节地址字节地址为为98H98H,可位寻址。,可位寻址。SCONSCON的低二位锁存的低二位锁存串口串口的的发送中断发送中断和和接收中断接收中断的中断请求标志的中断请求标志TITI和和RIRI,格式见格式见图图6-46-4。 图图6-46-4 SCON SCON中的中断请求标志位中的中断请求标志位13SCONSCON标志位功能:标志位功能:(1 1)TITI串口发送中断请求标志位。串口发送中断请求标志位。CPUCPU将将1 1字节的数据写入串口的发字节的数据写入串口的发送缓冲器送缓冲器SBUFSBUF时,就启动一帧串行数据的发送,每发送完一帧串行数据后时,就启动一帧串行数据的发送,每发送完一帧串行数据后,硬件使,硬件使TITI自动置自动置“1 1”。CPUCPU响应串口发送中断时,并不清除响应串口发送中断时,并不清除TITI中断请求中断请求标志,标志,TITI标志标志必须在中断服务程序中用指令对其清必须在中断服务程序中用指令对其清“0”0”。(2 2)RIRI串行口接收中断请求标志位。在串口接收完一个串行数据帧串行口接收中断请求标志位。在串口接收完一个串行数据帧,硬件自动使,硬件自动使RIRI中断请求标志置中断请求标志置“1”1”。CPUCPU在响应串口接收中断时,在响应串口接收中断时,RIRI标标志并不清志并不清“0”0”,须,须在中断服务程序中用指令对在中断服务程序中用指令对RIRI清清“0”0”。143定时器定时器2的控制寄存器的控制寄存器T2CON特殊功能寄存器特殊功能寄存器T2CON的的字节地址字节地址为为C8H,可位寻址,位地址为,可位寻址,位地址为C8HCFH。格式见。格式见图图6-5。T2CON中的最高两位为定时器中的最高两位为定时器/计数器计数器T2的中断请求标志位的中断请求标志位TF2和和EXF2(1)TF2(D7):当:当T2的计数器(的计数器(TL2、TH2)计数计满溢出回)计数计满溢出回0时,时,由内部硬件置位由内部硬件置位TF2(寄存器(寄存器T2CON.7),向),向CPU发出中断请求。但是当发出中断请求。但是当RCLK位或位或TCLK位为位为1时将不予置位。本标志位必须由软件清时将不予置位。本标志位必须由软件清0。 图图6-5 T2CON格式格式15(2)EXF2(D6):当由引脚:当由引脚T2EX(P1.1脚)上的负跳变引起脚)上的负跳变引起“捕捉捕捉”或或“重新装载重新装载”且且EXEN2位为位为1,则置位,则置位EXF2标志位(寄存器标志位(寄存器T2CON.6),),向向CPU发出中断请求。发出中断请求。 上述两种中断请求,在满足中断响应条件时,上述两种中断请求,在满足中断响应条件时,CPU都将响应其中断请求,都将响应其中断请求,转向同一个中断向量地址进行中断处理。因此,必须在转向同一个中断向量地址进行中断处理。因此,必须在T2的中断服务程序的中断服务程序中对中对TF2和和EXF2两个中断请求标志位进行查询,然后正确转入对应的中断两个中断请求标志位进行查询,然后正确转入对应的中断处理程序。处理程序。 中断结束后,中断请求标志位中断结束后,中断请求标志位TF2或或EXF2必须由软件清必须由软件清0。166.3 6.3 中断允许中断允许与与中断优先级的控制中断优先级的控制实现中断允许控制和中断优先级控制分别中实现中断允许控制和中断优先级控制分别中断允许寄存器断允许寄存器IEIE和和中断优先中断优先级寄存器级寄存器IPIP实现。下面介绍两个特殊功能寄存器。实现。下面介绍两个特殊功能寄存器。6.3.1 中断允许寄存器中断允许寄存器IE各中断源开放或屏蔽,是由片内中断允许寄存器各中断源开放或屏蔽,是由片内中断允许寄存器IE控制。控制。IE字节地址为字节地址为A8H,可进行,可进行位寻址位寻址,格式见,格式见图图6-6。17 图图6-6-6 6 中断允许寄存器中断允许寄存器IEIE的格式的格式 IEIE对对中断开放中断开放和和关闭关闭实现两级控制实现两级控制。两级控制就是有一个总的中断开关控。两级控制就是有一个总的中断开关控制位制位EAEA(IE.7IE.7位),当位),当EA=0EA=0,所有中断请求被屏蔽,所有中断请求被屏蔽,CPUCPU对任何中断请求都不对任何中断请求都不接受;当接受;当EA=1EA=1时,时,CPUCPU开中断,但开中断,但5 5个中断源的中断请求是否允许,还要由个中断源的中断请求是否允许,还要由IEIE中的低中的低6 6位所对应的位所对应的6 6个中断请求允许个中断请求允许控制位控制位的状态来决定(见的状态来决定(见图图6-6-6 6)。)。18IEIE中各位的功能如下:中各位的功能如下:(1 1)EAEA中断允许总开关控制位。中断允许总开关控制位。EA=0EA=0,所有的中断请求被屏蔽。,所有的中断请求被屏蔽。 EA=1 EA=1,所有的中断请求被开放。,所有的中断请求被开放。(2 2)ET2ET2定时器定时器/ /计数器计数器T2T2的中断允许位。的中断允许位。ET2=0ET2=0,禁止,禁止T2T2中断。中断。ET2=1ET2=1,允许,允许T2T2中断。中断。 (3 3)ESES串行口中断允许位。串行口中断允许位。 ES=0 ES=0,禁止串行口中断。,禁止串行口中断。 ES=1 ES=1,允许串行口中断。,允许串行口中断。19 (4 4)ET1ET1定时器定时器/ /计数器计数器T1T1溢出中断允许位。溢出中断允许位。 ET1=0 ET1=0,禁止,禁止T1T1溢出中断。溢出中断。 ET1=1 ET1=1,允许,允许T1T1溢出中断。溢出中断。 (5 5)E EX1X1外部中断外部中断1 1的中断允许位。的中断允许位。 E EX1X1=0=0,禁止外部中断,禁止外部中断1 1中断。中断。E EX1X1=1=1,允许外部中断,允许外部中断1 1中断。中断。(6 6)E ET T00定时器定时器/ /计数器计数器T0T0的溢出的溢出中断允许位。中断允许位。E ET T0=00=0,禁止,禁止T T0 0中断。中断。E ET T0=10=1,允许,允许T T0 0中断。中断。(7)EX0EX0外部中断外部中断0 0中断允许位。中断允许位。 EX0=0EX0=0,禁止外部中断,禁止外部中断0 0中断。中断。 EX0=1 EX0=1,允许外部中断,允许外部中断0 0中断。中断。20AT89S52复位以后,复位以后,IE被清被清“0”,所有的中断请求被禁止。,所有的中断请求被禁止。IE中与各中与各个中断源相应的位可用指令置个中断源相应的位可用指令置“1”或清或清“0”,即可允许或禁止各中断源的,即可允许或禁止各中断源的中断申请。若使某一个中断源被允许中断,除了中断申请。若使某一个中断源被允许中断,除了IE相应的位被置相应的位被置“1”外,外,还必须使还必须使EA位置位置“1”,即,即EA位置位置“1”为中断请求的必要条件。为中断请求的必要条件。改变改变IE的内容,可向寄存器的内容,可向寄存器IE写入相应的内容。写入相应的内容。【例【例6-1】 单片机复位后,若允许两个外中断源中断,并禁止其他中断单片机复位后,若允许两个外中断源中断,并禁止其他中断源的中断请求,请编写设置源的中断请求,请编写设置IE的命令语句。的命令语句。(1)采用对)采用对IE寄存器寄存器和和TCON寄存器寄存器进行进行位操作位操作。 EA=1;/总中断允许总中断允许EX0=1; /允许外部中断允许外部中断0中断中断21EX1=1;/允许外部中断允许外部中断1中断中断IT0=1; /设置外部中断设置外部中断0为跳沿触发为跳沿触发IT1=1;/设置外部中断设置外部中断1为跳沿触发为跳沿触发由于单片机复位后,由于单片机复位后,IE寄存器各个位均为寄存器各个位均为0,所以只需要把允许中断的,所以只需要把允许中断的中断源设置为中断源设置为1即可。即可。(2)采用对)采用对IE寄存器和寄存器和TCON寄存器进行寄存器进行字节操作字节操作。IE=0 x85; /允许两个外中断中断允许两个外中断中断TCON=0 x05; /允许两个外中断均为跳沿触发允许两个外中断均为跳沿触发226.3.2 6.3.2 中断优先级寄存器中断优先级寄存器IPIP中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优先级中断或低优先级中断,也可实现先级中断或低优先级中断,也可实现两级中断嵌套两级中断嵌套。 所谓两级中断嵌套,就是所谓两级中断嵌套,就是AT89S5AT89S52 2正在执行低优先级中断的服务程序正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。优先级中断服务程序。 两级中断嵌套见两级中断嵌套见图图6-6-7 7。 23图图6-7 两级中断嵌套过程两级中断嵌套过程24各中断源的中断优先级关系,可归纳为下面各中断源的中断优先级关系,可归纳为下面两条基本规则两条基本规则:(1 1)低优先级可被高优先级中断,高优先级不能被低优先级中断。)低优先级可被高优先级中断,高优先级不能被低优先级中断。(2 2)任何一种中断(不管是高级还是低级)一旦得到响应,不会再被)任何一种中断(不管是高级还是低级)一旦得到响应,不会再被它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中断服务程序时,则不能被任何其他的中断源的中断请求所中该中断源的中断服务程序时,则不能被任何其他的中断源的中断请求所中断。断。AT89S5AT89S52 2片内有一个中断优先级寄存器片内有一个中断优先级寄存器IPIP,字节地址为,字节地址为B8HB8H,可位寻址。,可位寻址。只要用程序改变其内容,即可进行各中断源中断优先级设置,只要用程序改变其内容,即可进行各中断源中断优先级设置,IPIP寄存器格寄存器格式式见图见图6-6-8 8。 25图图6-8 IP寄存器的格式寄存器的格式26中断优先级寄存器中断优先级寄存器IPIP各位含义:各位含义:(1 1)PT2PT2T2T2中断优先级控制位中断优先级控制位 1 1T2T2中断为高优先级;中断为高优先级;0 0T2T2中断为低优先级中断为低优先级(2 2)PSPS串行口中断优先级控制位,串行口中断优先级控制位,1 1高级;高级;0 0低级。低级。(3 3)PT1PT1T1T1中断优先级控制位,中断优先级控制位,1 1高级;高级;0 0低级。低级。(4 4)PX1PX1外部中断外部中断1 1中断优先级控制位,中断优先级控制位,1 1高级;高级;0 0低级。低级。(5 5)PT0PT0T0T0中断优先级控制位,中断优先级控制位,1 1高级;高级;0 0低级。低级。 (6 6)PX0PX0外部中断外部中断0 0中断优先级控制位,中断优先级控制位,1 1高级;高级;0 0低级。低级。中断优先级控制寄存器中断优先级控制寄存器IPIP各位都可由程序置各位都可由程序置“1”“1”和清和清“0”“0”,用位操作指,用位操作指令或字节操作指令可更新令或字节操作指令可更新IPIP的内容,改变各中断源的中断优先级。的内容,改变各中断源的中断优先级。AT89S5AT89S52 2复位后,各中断源均为复位后,各中断源均为低优先级中断低优先级中断。27下面介绍下面介绍AT89S5AT89S52 2的中断优先级结构。的中断优先级结构。中断系统有中断系统有两个不可寻址两个不可寻址的的“优先级激活优先级激活触发器触发器”,其中一个指示某高其中一个指示某高优先级中断正在执行,所有后来中断均被阻止;另一个触发器指示某低优优先级中断正在执行,所有后来中断均被阻止;另一个触发器指示某低优先级中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请先级中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。求。在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于应,取决于内部查询顺序内部查询顺序。这相当于在同一个优先级还存在另一辅助优先。这相当于在同一个优先级还存在另一辅助优先级结构,其级结构,其查询顺序见查询顺序见表表6-16-1。由由表表6-16-1,各中断源在相同优先级的条件下,外部中断,各中断源在相同优先级的条件下,外部中断0 0的中断优先权最的中断优先权最高,高,T2T2溢出中断或溢出中断或EXF2EXF2中断的中断优先权最低。中断的中断优先权最低。2829 【例例6-2】设置设置IP寄存器,使寄存器,使AT89S52的两个外中断请求为高优先级,的两个外中断请求为高优先级,其他中断源的中断请求为低优先级。其他中断源的中断请求为低优先级。IP=0 x05;306.4 6.4 响应中断请求的条件响应中断请求的条件一个中断源中断请求被响应,须满足以下必要条件:一个中断源中断请求被响应,须满足以下必要条件:(1 1)总中断允许开关接通,即)总中断允许开关接通,即IEIE寄存器中的中断总允许位寄存器中的中断总允许位EA=1EA=1。(2 2)该中断源发出中断请求,即该中断源对应的中断请求标志为)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”“1”。(3 3)该中断源的中断允许位)该中断源的中断允许位=1=1,即该中断被允许。,即该中断被允许。(4 4)无同级或更高级中断正在被服务。)无同级或更高级中断正在被服务。中断响应就是中断响应就是CPUCPU对中断源提出的中断请求的接受,当查询到有效的中断对中断源提出的中断请求的接受,当查询到有效的中断请求时,满足上述条件时,紧接着就进行中断响应。请求时,满足上述条件时,紧接着就进行中断响应。31中断响应过程:中断响应过程:首先由首先由硬件自动生成硬件自动生成一条长调用指令一条长调用指令“LCALL addr16”“LCALL addr16”。即程序存储区中。即程序存储区中相应的中断入口地址。相应的中断入口地址。例如,例如,对于外部中断对于外部中断1 1的响应,硬件自动生成的长调用的响应,硬件自动生成的长调用指令为:指令为: LCALL 0013HLCALL 0013H生成生成LCALLLCALL指令后,紧接着就由指令后,紧接着就由CPUCPU执行该指令。首先将程序计数器执行该指令。首先将程序计数器PCPC内容内容压入堆栈以保护断点,再将中断入口地址装入压入堆栈以保护断点,再将中断入口地址装入PCPC,使程序转向响应中断请求,使程序转向响应中断请求的中断入口地址。各中断源服务程序入口地址是固定的,见的中断入口地址。各中断源服务程序入口地址是固定的,见表表6-26-2。其中其中两个中断入口间只相隔两个中断入口间只相隔8 8字节字节,一般情况下难以安放一个完整的中断,一般情况下难以安放一个完整的中断服务程序。因此,通常总是在中断入口地址处放置一条无条件转移指令,使服务程序。因此,通常总是在中断入口地址处放置一条无条件转移指令,使程序执行转向在其他地址存放的中断服务程序入口。程序执行转向在其他地址存放的中断服务程序入口。3233中断响应是有条件的,并不是查询到的所有中断请求都能被立即响应,中断响应是有条件的,并不是查询到的所有中断请求都能被立即响应,当遇到当遇到下列下列3 3种情况之一时种情况之一时,中断响应被封锁:,中断响应被封锁:(1 1)CPUCPU正在处理同级或更高优先级的中断。正在处理同级或更高优先级的中断。因为当一个中断被响应时因为当一个中断被响应时,要把对应的中断优先级状态触发器置,要把对应的中断优先级状态触发器置“1”“1”(该触发器指出(该触发器指出CPUCPU所处理的中所处理的中断优先级别),从而封锁了低级中断请求和同级中断请求。断优先级别),从而封锁了低级中断请求和同级中断请求。(2 2)所查询的机器周期不是当前正在执行指令的最后一个机器周期所查询的机器周期不是当前正在执行指令的最后一个机器周期。设。设定这个限制的目的是只有在当前指令执行完毕后,才能进行中断响应,以确定这个限制的目的是只有在当前指令执行完毕后,才能进行中断响应,以确保当前指令执行的完整性。保当前指令执行的完整性。(3 3)正在执行的指令是正在执行的指令是RETIRETI或是访问或是访问IEIE或或IPIP的指令。的指令。因为按中断系统的因为按中断系统的规定,在执行完这些指令后,需再执行完一条指令,才响应新的中断请求。规定,在执行完这些指令后,需再执行完一条指令,才响应新的中断请求。如存在如存在上述上述3 3种情况之一种情况之一,CPUCPU将丢弃中断查询结果,不能对中断进行响将丢弃中断查询结果,不能对中断进行响应。应。 346.5 外部中断的响应时间外部中断的响应时间在使用外部中断时,有时需考虑从在使用外部中断时,有时需考虑从外部中断请求有效外部中断请求有效(外部中断请求标志置(外部中断请求标志置“1”)到)到转向中断入口地址转向中断入口地址所所需要的响应时间需要的响应时间,即外部中断响应的实时性,即外部中断响应的实时性问题。下面就来讨论这个问题。问题。下面就来讨论这个问题。外中断外中断最短响应时间最短响应时间为为3 3个机器周期个机器周期。其中中断请求标志位查询占。其中中断请求标志位查询占1 1个机器周个机器周期,而这个机器周期恰好处于指令的最后一个机器周期。在这个机器周期期,而这个机器周期恰好处于指令的最后一个机器周期。在这个机器周期结束后,中断即被响应,结束后,中断即被响应,CPUCPU接着执行接着执行1 1条硬件子程序调用指令条硬件子程序调用指令LCALLLCALL以转以转到相应的中断服务程序入口,这需要到相应的中断服务程序入口,这需要2 2个机器周期。个机器周期。外部中断响应外部中断响应最长时间最长时间为为8 8个机器周期个机器周期。这种情况发生在。这种情况发生在CPUCPU进行中断标志查进行中断标志查询时,刚好才开始执行询时,刚好才开始执行RETIRETI或访问或访问IEIE或或IPIP的指令,则需把当前指令执行的指令,则需把当前指令执行35完再继续执行一条指令后,才能响应中断。完再继续执行一条指令后,才能响应中断。执行上述的执行上述的RETIRETI或或访问访问IEIE或或IPIP的指令,最长需要的指令,最长需要2 2个机器周期。而接着个机器周期。而接着再执行再执行1 1条指令,我们按最长的指令(乘法指令条指令,我们按最长的指令(乘法指令MULMUL和除法指令和除法指令DIVDIV)来算,)来算,也只有也只有4 4个机器周期。再加上硬件子程序调用指令个机器周期。再加上硬件子程序调用指令LCALLLCALL的执行,需要的执行,需要2 2个机个机器周期,所以,外部中断响应的最长时间为器周期,所以,外部中断响应的最长时间为8 8个机器周期。个机器周期。如已在处理同级或更高级中断,外部中断请求响应时间取决于正在执行如已在处理同级或更高级中断,外部中断请求响应时间取决于正在执行的中断服务程序的处理时间,此情况下,响应时间无法计算。的中断服务程序的处理时间,此情况下,响应时间无法计算。这样,在单一中断系统里,这样,在单一中断系统里,AT89S5AT89S522 对外部中断请求响应时间总是在对外部中断请求响应时间总是在3 38 8个个机器周期之间。机器周期之间。366.6 6.6 外部中断的触发方式选择外部中断的触发方式选择 外部中断有两种触发方式:外部中断有两种触发方式:电平触发电平触发方式和方式和跳沿触发跳沿触发方式。方式。6.6.1 6.6.1 电平触发方式电平触发方式若外中断定义为电平触发方式,外部中断申请触发器状态随着若外中断定义为电平触发方式,外部中断申请触发器状态随着 CPU CPU 在在每个机器周期采样到的外部中断输入引脚电平变化而变化,这能提高每个机器周期采样到的外部中断输入引脚电平变化而变化,这能提高CPUCPU对对外部中断请求的响应速度。当外部中断源被设定为电平触发方式时,在中外部中断请求的响应速度。当外部中断源被设定为电平触发方式时,在中断服务程序返回之前,外部中断请求输入必须无效(即外部中断请求输入断服务程序返回之前,外部中断请求输入必须无效(即外部中断请求输入已由低电平变为高电平),否则已由低电平变为高电平),否则CPUCPU返回主程序后会再次响应中断。返回主程序后会再次响应中断。所以电平触发适合于外部中断以低电平输入且中断服务程序能清除外部所以电平触发适合于外部中断以低电平输入且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。如何清除电平中断请求源(即外部中断输入电平又变为高电平)的情况。如何清除电平触发的外部中断请求源的电平信号,本章后将介绍。触发的外部中断请求源的电平信号,本章后将介绍。376.6.2 6.6.2 跳沿触发方式跳沿触发方式外部中断若定义为跳沿触发方式,外部中断申请触发器能锁存外部中断外部中断若定义为跳沿触发方式,外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是输入线上的负跳变。即便是CPUCPU暂时不能响应,中断请求标志也不会丢失。暂时不能响应,中断请求标志也不会丢失。在这种方式下,如果相继连续两次采样,一个机器周期采样到外部中断输在这种方式下,如果相继连续两次采样,一个机器周期采样到外部中断输入为高,下一机器周期采样为低,则中断申请触发器置入为高,下一机器周期采样为低,则中断申请触发器置“1”“1”,直到,直到CPUCPU响响应此中断时,该标志才清应此中断时,该标志才清“0”“0”,这样就不会丢失中断,但输入的负脉冲宽,这样就不会丢失中断,但输入的负脉冲宽度至少要保持度至少要保持1 1个机器周期(若晶振频率为个机器周期(若晶振频率为6MHz6MHz,则为,则为2s2s),才能被),才能被CPUCPU采采样到。样到。外部中断的跳沿触发方式适合于以外部中断的跳沿触发方式适合于以负脉冲形式输入负脉冲形式输入的外部中断请求。的外部中断请求。386.7 6.7 中断请求的撤销中断请求的撤销某中断请求被响应后,就存在着一个中断请求撤销问题。下面按中断请某中断请求被响应后,就存在着一个中断请求撤销问题。下面按中断请求源的类型分别说明中断请求的撤销方法。求源的类型分别说明中断请求的撤销方法。1 1定时器定时器/ /计数器计数器T1T1、T0T0中断请求的撤销中断请求的撤销定时器定时器/ /计数器计数器T1T1、T0T0中断的中断请求被响应后,硬件会自动把中断请中断的中断请求被响应后,硬件会自动把中断请求标志位(求标志位(TF0TF0或或TF1TF1)清)清“0”“0”,因此定时器,因此定时器/ /计数器计数器T1T1、T0T0中断请求是自中断请求是自动撤销的。动撤销的。2 2外部中断请求的撤销外部中断请求的撤销(1 1)跳沿方式外部中断请求的撤销)跳沿方式外部中断请求的撤销中断请求撤销两项内容:中断标志位清中断请求撤销两项内容:中断标志位清“0”“0”和外中断信号的撤销。其和外中断信号的撤销。其39中,中断标志位(中,中断标志位(IE0IE0或或IE1IE1)清)清“0”“0”是在中断响应后由硬件自动完成的是在中断响应后由硬件自动完成的。而外中断请求信号的撤销,由于跳沿信号过后也就消失了,所以跳沿方式。而外中断请求信号的撤销,由于跳沿信号过后也就消失了,所以跳沿方式的外部中断请求也是自动撤销的。的外部中断请求也是自动撤销的。(2 2)电平方式外中断请求撤销)电平方式外中断请求撤销中断请求标志自动撤销,但中断请求信号低电平可能继续存在,在以后的中断请求标志自动撤销,但中断请求信号低电平可能继续存在,在以后的机器周期采样时,又会把已清机器周期采样时,又会把已清“0”“0”的的IE0IE0或或IE1IE1标志位重新置标志位重新置“1”“1”。要彻底。要彻底解决电平方式外部中断请求撤销,除标志位清解决电平方式外部中断请求撤销,除标志位清“0”“0”之外,还需在中断响应后之外,还需在中断响应后把中断请求信号输入引脚从低电平强制改变为高电平。为此,可增加把中断请求信号输入引脚从低电平强制改变为高电平。为此,可增加图图6-6-9 9所所示电路。示电路。40图图6-9 电平方式的外部中断请求的撤销电路电平方式的外部中断请求的撤销电路41由由图图6-6-9 9,D D触发器锁存外来的中断请求低电平,并通过其输出端触发器锁存外来的中断请求低电平,并通过其输出端Q Q接接到(到(INT0INT0* *或或INT1INT1* *)。所以,增加的)。所以,增加的D D触发器不影响中断请求。中断响应后触发器不影响中断请求。中断响应后,为撤销中断请求,可利用,为撤销中断请求,可利用D D触发器直接置触发器直接置“1”SD“1”SD端实现,即把端实现,即把SDSD端接端接AT89S5AT89S52 2的的P1.0P1.0。因此,只要。因此,只要P1.0P1.0端输出一个负脉冲就可以使端输出一个负脉冲就可以使D D触发器置触发器置“1”“1”,从而就撤销低电平的中断请求信号。负脉冲可在中断服务程序中先,从而就撤销低电平的中断请求信号。负脉冲可在中断服务程序中先P1.0P1.0置置1 1,再让,再让P1.0P1.0为为0 0,再把,再把P1.0P1.0置置1 1。3 3串行口中断请求的撤销串行口中断请求的撤销只有标志位清只有标志位清“0”“0”的问题。串行口中断标志位是的问题。串行口中断标志位是TITI和和RIRI,但对这两个中,但对这两个中断标志断标志CPUCPU不自动清不自动清“0”“0”。因为响应串口中断后,因为响应串口中断后,CPUCPU无法知道是接收中断还是发送中断,还需测试无法知道是接收中断还是发送中断,还需测试这两个中断标志位来判定,然后才清除。所以串口中断请求撤销只能这两个中断标志位来判定,然后才清除。所以串口中断请求撤销只能使用软使用软件在中断服务程序中件在中断服务程序中把串行口中断标志位把串行口中断标志位TITI、RIRI清清0 0。 424定时器定时器/计数器计数器T2中断请求的撤销中断请求的撤销定时器定时器/计数器计数器T2的中断请求包括的中断请求包括两种两种:TF2和和EXF2。上述两种中断请求,在满足中断响应条件时,上述两种中断请求,在满足中断响应条件时,CPU都将响应其中断请求都将响应其中断请求,转向同一个中断入口地址。,转向同一个中断入口地址。因此,必须在因此,必须在T2的中断函数中对的中断函数中对TF2和和EXF2两个中断请求标志位进行查两个中断请求标志位进行查询,然后正确转入对应的中断处理程序。中断结束后,中断请求标志位询,然后正确转入对应的中断处理程序。中断结束后,中断请求标志位TF2或或EXF2必须由软件清必须由软件清0。所以定时器。所以定时器/计数器计数器T2中断请求的撤销只能使用软中断请求的撤销只能使用软件的方法,在中断函数返回前完成。件的方法,在中断函数返回前完成。436.8 6.8 中断函数中断函数为直接使用为直接使用C51C51编写中断服务程序,编写中断服务程序,C51C51中中定义了定义了中断函数中断函数。由于由于C51C51编译器在编译时对声明为中断服务程序的函数自动添加相应现编译器在编译时对声明为中断服务程序的函数自动添加相应现场保护、阻断其他中断、返回时自动恢复现场等处理的程序段,因而在编场保护、阻断其他中断、返回时自动恢复现场等处理的程序段,因而在编写中断函数时可不必考虑这些问题,减小编写中断服务程序烦琐程度。写中断

    注意事项

    本文(第6章 中断系统.ppt)为本站会员(春哥&#****71;)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开