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

    单片机原理及接口技术(C51编程)第6章-中断系统课件.ppt

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

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

    单片机原理及接口技术(C51编程)第6章-中断系统课件.ppt

    第第6 6章章 AT89S51AT89S51单片机的中断系统单片机的中断系统1 6.1 AT89S516.1 AT89S51中断技术概述中断技术概述 中中断断技技术术主主要要用用于于实实时时监监测测与与控控制制,要要求求单单片片机机能能及及时时地地响响应应中中断断请请求求源源提出的服务请求,并快速响应与及时处理。提出的服务请求,并快速响应与及时处理。当当中中断断请请求求源源发发出出中中断断请请求求时时,如如中中断断请请求求被被允允许许,单单片片机机暂暂时时中中止止当当前前正正在在执执行行的的主主程程序序,转转到到中中断断服服务务处处理理程程序序处处理理中中断断服服务务请请求求,处处理理完完中中断断服服务务请请求求后后,再再回回到到原原来来被被中中止止的的程程序序之之处处(断断点点),继继续续执执行行被被中中断断的的主主程序。程序。图图6-16-1显示单片机对外设中断服务请求整个中断响应和处理过程。显示单片机对外设中断服务请求整个中断响应和处理过程。图图6-16-1 中断响应和处理过程中断响应和处理过程 如如没没有有中中断断系系统统,单单片片机机大大量量时时间间可可能能会会浪浪费费在在查查询询是是否否有有服服务务请请求求的的定定时查询操作上,即不论是否有服务请求,都必须去查询。时查询操作上,即不论是否有服务请求,都必须去查询。采采用用中中断断技技术术完完全全消消除除查查询询方方式式的的等等待待,大大大大提提高高单单片片机机工工作作效效率率和和实实时时性。性。6.2 AT89S516.2 AT89S51中断系统结构中断系统结构中中断断系系统统结结构构见见图图6-26-2。中中断断系系统统有有5 5个个中中断断请请求求源源(简简称称中中断断源源),2 2个个中中断断优优先先级级,可可实实现现2 2级级中中断断服服务务程程序序嵌嵌套套。每每一一中中断断源源可可用用软软件件独独立立控控制制为允许中断或关闭中断状态;每一个中断源的优先级均可用软件设置。为允许中断或关闭中断状态;每一个中断源的优先级均可用软件设置。6.2.1 6.2.1 中断请求源中断请求源 由图由图6-26-2,中断系统共有,中断系统共有5 5个中断请求源,它们是:个中断请求源,它们是:(1 1)INT0*INT0*外外部部中中断断请请求求0 0,外外部部中中断断请请求求信信号号(低低电电平平或或负负跳跳变变有有效效)由由INT0*INT0*引脚输入,中断请求标志为引脚输入,中断请求标志为IE0IE0。(2 2)INT1*INT1*外外部部中中断断请请求求1 1,外外部部中中断断请请求求信信号号(低低电电平平或或负负跳跳变变有有效效)由由INT1*INT1*引脚输入,中断请求标志为引脚输入,中断请求标志为IE1IE1。(3 3)定时器)定时器/计数器计数器T0T0计数溢出的中断请求,标志为计数溢出的中断请求,标志为TF0TF0。(4 4)定时器)定时器/计数器计数器T1T1计数溢出的中断请求,标志为计数溢出的中断请求,标志为TF1TF1。(5 5)串行口中断请求,标志为发送中断)串行口中断请求,标志为发送中断TITI或接收中断或接收中断RIRI。6.2.2 6.2.2 中断请求标志寄存器中断请求标志寄存器5 5个个中中断断请请求求源源的的中中断断请请求求标标志志分分别别由由特特殊殊功功能能寄寄存存器器TCONTCON和和SCONSCON相相应应位位锁锁存(见图存(见图6-26-2)。)。1 1TCONTCON寄存器寄存器为为定定时时器器/计计数数器器的的控控制制寄寄存存器器,字字节节地地址址为为88H88H,可可位位寻寻址址。既既包包括括定定时时器器/计计数数器器T0T0、T1T1溢溢出出中中断断请请求求标标志志位位TF0TF0和和TF1TF1,也也包包括括两两个个外外部部中中断断请请求求的的标标志志位位IE1IE1与与IE0IE0,还还包包括括两两个个外外部部中中断断请请求求源源的的中中断断触触发发方方式式选选择择位位。TCONTCON格式见格式见图图6-36-3。图图6-3 特殊功能寄存器特殊功能寄存器TCON的格式的格式 (5 5)IT1IT1选择外中断请求选择外中断请求1 1为跳沿触发还是电平触发方式。为跳沿触发还是电平触发方式。0-0-电电平平触触发发方方式式,加加到到INT0*INT0*脚脚上上的的外外中中断断请请求求输输入入信信号号为为低低电电平平有有效效,并把并把IE1IE1置置“1”1”。转向中断服务程序时,则。转向中断服务程序时,则由硬件自动把由硬件自动把IE1IE1清清“0”0”。1-1-跳跳沿沿触触发发方方式式,加加到到INT1*INT1*脚脚上上的的外外中中断断请请求求输输入入信信号号从从高高到到低低的的负负跳跳变变有有效效,并并把把IE1IE1置置“1”1”。转转向向中中断断服服务务程程序序时时,则则由由硬硬件件自自动动把把IE1IE1清清“0”0”。(6 6)IT0IT0选选择择外外中中断断请请求求0 0为为跳跳沿沿触触发发方方式式还还是是电电平平触触发发方方式式,与与IT1IT1类类似。似。当当AT89S51AT89S51复位后复位后,TCONTCON被清被清“0”0”,5 5个中断源的中断请求标志均为个中断源的中断请求标志均为0 0。TR1TR1(D6D6位)、位)、TR0TR0(D4D4位)这位)这2 2位与中断系统无关,仅与位与中断系统无关,仅与定时器定时器/计数器计数器T1T1和和T0T0有关,将在第有关,将在第6 6章定时器章定时器/计数器中介绍。计数器中介绍。2 2SCONSCON寄存器寄存器串串行行口口控控制制寄寄存存器器,字字节节地地址址为为98H98H,可可位位寻寻址址。SCONSCON的的低低二二位位锁锁存存串串口口的的发送中断发送中断和和接收中断接收中断的中断请求标志的中断请求标志TITI和和RIRI,格式见格式见图图6-46-4。图图6-46-4 SCON SCON中的中断请求标志位中的中断请求标志位6.3 6.3 中断允许中断允许与与中断优先级的控制中断优先级的控制实实现现中中断断允允许许控控制制和和中中断断优优先先级级控控制制分分别别中中断断允允许许寄寄存存器器IEIE和和中中断断优优先先级级寄存器寄存器IPIP实现。下面介绍两个特殊功能寄存器。实现。下面介绍两个特殊功能寄存器。6.3.1 中断允许寄存器中断允许寄存器IE 各中断源开放或屏蔽,是由片内中断允许寄存器各中断源开放或屏蔽,是由片内中断允许寄存器IE控制。控制。IE字节地址为字节地址为A8H,可进行位寻址,格式,可进行位寻址,格式见见图图6-5。IEIE中各位的功能如下:中各位的功能如下:(1 1)EAEA中断允许总开关控制位。中断允许总开关控制位。EA=0EA=0,所有的中断请求被屏蔽。,所有的中断请求被屏蔽。EA=1EA=1,所有的中断请求被开放。,所有的中断请求被开放。(2 2)ESES串行口中断允许位。串行口中断允许位。ES=0ES=0,禁止串行口中断。,禁止串行口中断。ES=1ES=1,允许串行口中断。,允许串行口中断。(3 3)ET1ET1定时器定时器/计数器计数器T1T1溢出中断允许位。溢出中断允许位。ET1=0ET1=0,禁止,禁止T1T1溢出中断。溢出中断。ET1=1ET1=1,允许,允许T1T1溢出中断。溢出中断。(4 4)EX1EX1外部中断外部中断1 1中断允许位。中断允许位。EX1=0EX1=0,禁止外部中断,禁止外部中断1 1中断。中断。EX1=1EX1=1,允许外部中断,允许外部中断1 1中断。中断。(5 5)ET0ET0定时器定时器/计数器计数器T0T0的溢出中断允许位。的溢出中断允许位。ET0=0ET0=0,禁止,禁止T0T0溢出中断。溢出中断。ET0=1ET0=1,允许,允许T0T0溢出中断。溢出中断。(6 6)EX0EX0外部中断外部中断0 0中断允许位。中断允许位。EX0=0EX0=0,禁止外部中断,禁止外部中断0 0中断。中断。EX0=1EX0=1,允许外部中断,允许外部中断0 0中断。中断。AT89S51AT89S51复复位位后后,IEIE被被清清“0”“0”,所所有有中中断断请请求求被被禁禁止止。IEIE中中与与各各个个中中断断源源相相应应位位可可用用指指令令置置“1”“1”或或清清“0”“0”,即即可可允允许许或或禁禁止止各各中中断断源源的的中中断断申申请请。若若使使某某一一个个中中断断源源被被允允许许中中断断,除除了了IEIE相相应应位位被被置置“1”“1”外外,还还必必须须使使EAEA位位置置“1”“1”。图图6-6 两级中断嵌套过程两级中断嵌套过程 各中断源的中断优先级关系,可归纳为下面两条基本规则:各中断源的中断优先级关系,可归纳为下面两条基本规则:(1 1)低优先级可被高优先级中断,高优先级不能被低优先级中断。)低优先级可被高优先级中断,高优先级不能被低优先级中断。(2 2)任任何何一一种种中中断断(不不管管是是高高级级还还是是低低级级)一一旦旦得得到到响响应应,不不会会再再被被它它的的同同级级中中断断源源所所中中断断。如如果果某某一一中中断断源源被被设设置置为为高高优优先先级级中中断断,在在执执行行该该中中断断源的中断服务程序时,则不能被任何其他的中断源的中断请求所中断。源的中断服务程序时,则不能被任何其他的中断源的中断请求所中断。AT89S51AT89S51片片内内有有一一个个中中断断优优先先级级寄寄存存器器IPIP,字字节节地地址址为为B8HB8H,可可位位寻寻址址。只只要要用用程程序序改改变变其其内内容容,即即可可进进行行各各中中断断源源中中断断优优先先级级设设置置,IPIP寄寄存存器器格格式式见图见图6-76-7。图图6-7 IP寄存器的格式寄存器的格式中断优先级寄存器中断优先级寄存器IPIP各位含义:各位含义:(1 1)PSPS串行口中断优先级控制位,串行口中断优先级控制位,11高级;高级;00低级。低级。(2 2)PT1PT1T1T1中断优先级控制位,中断优先级控制位,11高级;高级;00低级。低级。(3 3)PX1PX1外部中断外部中断1 1中断优先级控制位,中断优先级控制位,11高级;高级;00低级。低级。(4 4)PT0PT0T0T0中断优先级控制位,中断优先级控制位,11高级;高级;00低级。低级。(5 5)PX0PX0外部中断外部中断0 0中断优先级控制位,中断优先级控制位,11高级;高级;00低级。低级。中中断断优优先先级级控控制制寄寄存存器器IPIP各各位位都都可可由由程程序序置置“1”“1”和和清清“0”“0”,用用位位操操作作指指令或字节操作指令可更新令或字节操作指令可更新IPIP的内容,改变各中断源的中断优先级。的内容,改变各中断源的中断优先级。AT89S51AT89S51复位后,各中断源均为低优先级中断。复位后,各中断源均为低优先级中断。IPIP内容为内容为0 00 0下面介绍下面介绍AT89S51AT89S51的中断优先级结构。的中断优先级结构。中中断断系系统统有有两两个个不不可可寻寻址址的的“优优先先级级激激活活触触发发器器”,其其中中一一个个指指示示某某高高优优先先级级中中断断正正在在执执行行,所所有有后后来来中中断断均均被被阻阻止止;另另一一个个触触发发器器指指示示某某低低优优先先级级中中断断正正在在执执行行,所所有有同同级级中中断断都都被被阻阻止止,但但不不阻阻断断高高优优先先级级的的中中断断请请求。求。在在同同时时收收到到几几个个同同优优先先级级的的中中断断请请求求时时,哪哪一一个个中中断断请请求求能能优优先先得得到到响响应应,取取决决于于内内部部查查询询顺顺序序。这这相相当当于于在在同同一一个个优优先先级级还还存存在在另另一一辅辅助助优优先先级结构,其级结构,其查询顺序见表查询顺序见表6-16-1。由由表表6-16-1,各各中中断断源源在在同同一一优优先先级级条条件件下下,外外部部中中断断0 0中中断断优优先先权权最最高高,串行口中断的优先权最低。串行口中断的优先权最低。6.4 6.4 响应中断请求的条件响应中断请求的条件一个中断源中断请求被响应,须满足以下必要条件:一个中断源中断请求被响应,须满足以下必要条件:(1 1)总中断允许开关接通,即)总中断允许开关接通,即IEIE寄存器中的中断总允许位寄存器中的中断总允许位EA=1EA=1。(2 2)该中断源发出中断请求,即该中断源对应的中断请求标志为)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”“1”。(3 3)该中断源的中断允许位)该中断源的中断允许位=1=1,即该中断被允许。,即该中断被允许。(4 4)无同级或更高级中断正在被服务。)无同级或更高级中断正在被服务。中中断断响响应应就就是是CPUCPU对对中中断断源源提提出出的的中中断断请请求求的的接接受受,当当查查询询到到有有效效的的中中断断请请求时,满足上述条件时,紧接着就进行中断响应。求时,满足上述条件时,紧接着就进行中断响应。中断响应过程:中断响应过程:首首先先由由硬硬件件自自动动生生成成一一条条长长调调用用指指令令“LCALL“LCALL addr16”addr16”。即即程程序序存存储储区区中中相相应应的的中中断断入入口口地地址址。例例如如,对对于于外外部部中中断断1 1的的响响应应,硬硬件件自自动动生生成成的的长长调调用用指令为:指令为:LCALL 0013HLCALL 0013H 生生成成LCALLLCALL指指令令后后,紧紧接接着着就就由由CPUCPU执执行行该该指指令令。首首先先将将程程序序计计数数器器PCPC内内容容压压入入堆堆栈栈以以保保护护断断点点,再再将将中中断断入入口口地地址址装装入入PCPC,使使程程序序转转向向响响应应中中断断请请求的中断入口地址。各中断源服务程序入口地址是固定的,见求的中断入口地址。各中断源服务程序入口地址是固定的,见表表6-26-2。其其中中两两个个中中断断入入口口间间只只相相隔隔8 8字字节节,一一般般情情况况下下难难以以安安放放一一个个完完整整的的中中断断服务程序。服务程序。(3 3)正正在在执执行行的的指指令令是是RETIRETI或或是是访访问问IEIE或或IPIP的的指指令令。因因为为按按中中断断系系统统的的规定,在执行完这些指令后,需再执行完一条指令,才响应新的中断请求。规定,在执行完这些指令后,需再执行完一条指令,才响应新的中断请求。如如存存在在上上述述3 3种种情情况况之之一一,CPUCPU将将丢丢弃弃中中断断查查询询结结果果,不不能能对对中中断断进进行行响响应。应。6.5 外部中断的响外部中断的响应时间在使用外部中断时,有时需考虑从外部中断请求有效(外部中断请求标志置在使用外部中断时,有时需考虑从外部中断请求有效(外部中断请求标志置“1”)到转向中断入口地址所需要的响应时间,即外部中断响应的实时)到转向中断入口地址所需要的响应时间,即外部中断响应的实时性问题。下面就来讨论这个问题。性问题。下面就来讨论这个问题。外外中中断断最最短短响响应应时时间间为为3 3个个机机器器周周期期。其其中中中中断断请请求求标标志志位位查查询询占占1 1个个机机器器周周期期,而而这这个个机机器器周周期期恰恰好好处处于于指指令令的的最最后后一一个个机机器器周周期期。在在这这个个机机器器周周期期结结束束后后,中中断断即即被被响响应应,CPUCPU接接着着执执行行1 1条条硬硬件件子子程程序序调调用用指指令令LCALLLCALL以以转转到相应的中断服务程序入口,这需要到相应的中断服务程序入口,这需要2 2个机器周期。个机器周期。6.6 6.6 外部中断的触发方式选择外部中断的触发方式选择 外部中断有两种触发方式:外部中断有两种触发方式:电平触发电平触发方式和方式和跳沿触发跳沿触发方式。方式。6.6.1 6.6.1 电平触发方式电平触发方式 若若外外中中断断定定义义为为电电平平触触发发方方式式,外外部部中中断断申申请请触触发发器器状状态态随随着着CPUCPU在在每每个个机机器器周周期期采采样样到到的的外外部部中中断断输输入入引引脚脚电电平平变变化化而而变变化化,这这能能提提高高CPUCPU对对外外部部中中断断请请求求的的响响应应速速度度。当当外外部部中中断断源源被被设设定定为为电电平平触触发发方方式式时时,在在中中断断服服务务程程序序返返回回之之前前,外外部部中中断断请请求求输输入入必必须须无无效效(即即外外部部中中断断请请求求输输入入已已由由低低电平变为高电平),否则电平变为高电平),否则CPUCPU返回主程序后会再次响应中断。返回主程序后会再次响应中断。所所以以电电平平触触发发适适合合于于外外部部中中断断以以低低电电平平输输入入且且中中断断服服务务程程序序能能清清除除外外部部中中断断请请求求源源(即即外外部部中中断断输输入入电电平平又又变变为为高高电电平平)的的情情况况。如如何何清清除除电电平平触发的外部中断请求源的电平信号,本章后将介绍。触发的外部中断请求源的电平信号,本章后将介绍。6.6.2 6.6.2 跳沿触发方式跳沿触发方式 外外部部中中断断若若定定义义为为跳跳沿沿触触发发方方式式,外外部部中中断断申申请请触触发发器器能能锁锁存存外外部部中中断断输输入入线线上上的的负负跳跳变变。即即便便是是CPUCPU暂暂时时不不能能响响应应,中中断断请请求求标标志志也也不不会会丢丢失失。在在这这种种方方式式下下,如如果果相相继继连连续续两两次次采采样样,一一个个机机器器周周期期采采样样到到外外部部中中断断输输入入为为高高,下下一一机机器器周周期期采采样样为为低低,则则中中断断申申请请触触发发器器置置“1”“1”,直直到到CPUCPU响响应此中断时,该标志才清应此中断时,该标志才清“0”“0”。这样就不会丢失中断,但输入的负脉冲。这样就不会丢失中断,但输入的负脉冲宽宽度度至至少少要要保保持持1 1个个机机器器周周期期(若若晶晶振振频频率率为为6MHz6MHz,则则为为2s2s),才才能能被被CPUCPU采采样到。外部中断的跳沿触发方式适合于以样到。外部中断的跳沿触发方式适合于以负脉冲形式输入负脉冲形式输入的外部中断请求。的外部中断请求。6.7 6.7 中断请求的撤销中断请求的撤销 某某中中断断请请求求被被响响应应后后,就就存存在在着着一一个个中中断断请请求求撤撤销销问问题题。下下面面按按中中断断请请求源的类型分别说明中断请求的撤销方法。求源的类型分别说明中断请求的撤销方法。1 1定时器定时器/计数器中断请求的撤销计数器中断请求的撤销 定定时时器器/计计数数器器中中断断的的中中断断请请求求被被响响应应后后,硬硬件件会会自自动动把把中中断断请请求求标标志志位位(TF0TF0或或TF1TF1)清)清“0”“0”,因此定时器,因此定时器/计数器中断请求是自动撤销的。计数器中断请求是自动撤销的。2 2外部中断请求的撤销外部中断请求的撤销(1 1)跳沿方式外部中断请求的撤销)跳沿方式外部中断请求的撤销 中中断断请请求求撤撤销销两两项项内内容容:中中断断标标志志位位清清“0”“0”和和外外中中断断信信号号的的撤撤销销。其其中中,中中断断标标志志位位(IE0IE0或或IE1IE1)清清“0”“0”是是在在中中断断响响应应后后由由硬硬件件自自动动完完成成的的。而而外外中中断断请请求求信信号号的的撤撤销销,由由于于跳跳沿沿信信号号过过后后也也就就消消失失了了,所所以以跳跳沿沿方方式式的的外外部部中中断请求也是自动撤销的。断请求也是自动撤销的。(2 2)电平方式外中断请求撤销)电平方式外中断请求撤销 中中断断请请求求标标志志自自动动撤撤销销,但但中中断断请请求求信信号号低低电电平平可可能能继继续续存存在在,在在以以后后的的机机器器周周期期采采样样时时,又又会会把把已已清清“0”“0”的的IE0IE0或或IE1IE1标标志志位位重重新新置置“1”“1”。要要彻彻底底解解决决电电平平方方式式外外部部中中断断请请求求撤撤销销,除除标标志志位位清清“0”“0”之之外外,还还需需在在中中断断响响应应后后把把中中断断请请求求信信号号输输入入引引脚脚从从低低电电平平强强制制改改变变为为高高电电平平。为为此此,可可增增加加图图6-86-8所所示电路。示电路。图图6-8 电平方式的外部中断请求的撤销电路电平方式的外部中断请求的撤销电路由由图图6-86-8,D D触触发发器器锁锁存存外外来来的的中中断断请请求求低低电电平平,并并通通过过其其输输出出端端Q Q接接到到(INT0*INT0*或或INT1*INT1*)。所所以以,增增加加的的D D触触发发器器不不影影响响中中断断请请求求。中中断断响响应应后后,为为撤撤销销中中断断请请求求,可可利利用用D D触触发发器器直直接接置置“1”SD“1”SD端端实实现现,即即把把SDSD端端接接AT89S51AT89S51的的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。6.8 6.8 中断函数中断函数 为为直直接接使使用用C51C51编编写写中中断断服服务务程程序序,C51C51中中定定义义了了中中断断函函数数。这这在在第第3 3章章中中已已简简要要介介绍绍。由由于于C51C51编编译译器器在在编编译译时时对对声声明明为为中中断断服服务务程程序序的的函函数数自自动动添添加加相相应应现现场场保保护护、阻阻断断其其他他中中断断、返返回回时时自自动动恢恢复复现现场场等等处处理理的的程程序序段段,因因而而在编写中断函数时可不必考虑这些问题,减小编写中断服务程序烦琐程度。在编写中断函数时可不必考虑这些问题,减小编写中断服务程序烦琐程度。中断服务函数的一般形式为:中断服务函数的一般形式为:函数类型函数类型 函数名(形式参数表)函数名(形式参数表)interrupt n using ninterrupt n using n 关关键键字字interruptinterrupt后后面面的的 n n是是中中断断号号,对对于于80518051单单片片机机,n n的的取取值值为为0 04 4,编编译译器器从从8n+38n+3处处产产生生中中断断向向量量。AT89S51AT89S51中中断断源源对对应应的的中中断断号号和和中中断断向向量量见见表表6-36-3。AT89S51AT89S51内内部部RAMRAM中中可可使使用用4 4个个工工作作寄寄存存器器区区,每每个个工工作作寄寄存存器器区区包包含含8 8个个工工作作寄寄存存器器(R0R0R7R7)。关关键键字字usingusing后后面面的的n n用用来来选选择择4 4个个工工作作寄寄存存器器区区。usingusing是是一一选选项项,如如不不选选,中中断断函函数数中中的的所所有有工工作作寄寄存存器器内内容容将将被被保保存存到到堆堆栈栈中。中。关键字关键字usingusing对函数目标代码的影响如下:对函数目标代码的影响如下:在在中中断断函函数数的的入入口口处处将将当当前前工工作作寄寄存存器器区区内内容容保保护护到到堆堆栈栈中中,函函数数返返回回前前将将被被保保护护的的寄寄存存器器区区内内容容从从堆堆栈栈中中恢恢复复。使使用用usingusing在在函函数数中中确确定定一一个个工工作作寄寄存存器器区区须须十十分分小小心心,要要保保证证任任何何工工作作寄寄存存器器区区的的切切换换都都只只在在指指定定的的控控制制区区域域中发生,否则将产生不正确的函数结果。中发生,否则将产生不正确的函数结果。例如,例如,外中断外中断1 1()中断服务函数如下:()中断服务函数如下:void int1()interrupt 2 using 0/void int1()interrupt 2 using 0/中断号中断号n=2n=2,选择,选择0 0区工作寄存器区区工作寄存器区中中断断调调用用与与标标准准C C的的函函数数调调用用是是不不一一样样的的,当当中中断断事事件件发发生生后后,对对应应的的中中断函数被自动调用,即没有参数,也没有返回值,会带来如下影响。断函数被自动调用,即没有参数,也没有返回值,会带来如下影响。(1 1)编译器会为中断函数自动生成中断向量。)编译器会为中断函数自动生成中断向量。(2 2)退退出出中中断断函函数数时时,所所有有保保存存在在堆堆栈栈中中的的工工作作寄寄存存器器及及特特殊殊功功能能寄寄存存器器被恢复。被恢复。(3 3)在在必必要要时时特特殊殊功功能能寄寄存存器器AccAcc、B B、DPHDPH、DPLDPL以以及及PSWPSW的的内内容容被被保保存存到到堆栈中。堆栈中。编写中断程序,应遵循以下规则:编写中断程序,应遵循以下规则:(1 1)中中断断函函数数没没有有返返回回值值,如如果果定定义义一一个个返返回回值值,将将会会得得到到不不正正确确结结果果。建议建议将中断函数定义为将中断函数定义为voidvoid类型类型,明确说明无返回值。,明确说明无返回值。(2 2)中中断断函函数数不不能能进进行行参参数数传传递递,如如果果中中断断函函数数中中包包含含任任何何参参数数声声明明都都将将导致编译出错。导致编译出错。(3 3)任任何何情情况况下下都都不不能能直直接接调调用用中中断断函函数数,否否则则会会产产生生编编译译错错误误。因因为为中中断断函函数数的的返返回回是是由由汇汇编编语语言言指指令令RETIRETI完完成成的的。RETIRETI指指令令会会影影响响AT89S51AT89S51硬硬件件中中断断系系统统内内的的不不可可寻寻址址的的中中断断优优先先级级寄寄存存器器的的状状态态。如如没没有有实实际际中中断断请请求求情情况况下下,直直接接调调用用中中断断函函数数,也也就就不不会会执执行行RETIRETI指指令令,其其操操作作结结果果有有可可能能产产生生一一个致命错误。个致命错误。(4 4)如如在在中中断断函函数数中中再再调调用用其其他他函函数数,则则被被调调用用的的函函数数所所用用的的寄寄存存器器区区必必须与中断函数使用的寄存器区不同。须与中断函数使用的寄存器区不同。6.9 6.9 中断系统应用举例中断系统应用举例本节通过几个例程介绍有关中断应用程序的编写。本节通过几个例程介绍有关中断应用程序的编写。6.9.16.9.1 单一外中断的应用单一外中断的应用【例例6-16-1】在在单单片片机机P1P1口口上上接接有有8 8只只LEDLED。在在外外部部中中断断0 0输输入入引引脚脚(P3.2P3.2)接接一一只只按按钮钮开开关关K1K1。要要求求将将外外部部中中断断0 0设设置置为为电电平平触触发发。程程序序启启动动时时,P1P1口口上上的的8 8只只LEDLED全全亮亮。每每按按一一次次按按钮钮开开关关K1K1,使使引引脚脚接接地地,产产生生一一个个低低电电平平触触发发的的外外中中断断请请求求,在在中中断断服服务务程程序序中中,让让低低4 4位位的的LEDLED与与高高4 4位位的的LEDLED交交替替闪闪烁烁5 5次次。然后从中断返回,控制然后从中断返回,控制8 8只只LEDLED再次全亮。原理电路及仿真结果见再次全亮。原理电路及仿真结果见图图6-96-9。图图6-96-9 利用中断控制利用中断控制8 8只只LEDLED交替闪烁交替闪烁1 1次的电路次的电路参考程序如下:参考程序如下:#include#include#define uchar unsigned char#define uchar unsigned charvoid Delay(unsigned int i)void Delay(unsigned int i)/延时函数延时函数Delay()Delay(),i i形式参数,不能赋初值形式参数,不能赋初值 unsigned int j;unsigned int j;for(;i 0;i-)for(;i 0;i-)for(j=0;j333;j+)/for(j=0;j333;j+)/晶振为晶振为12MHz12MHz,j j选择与晶振频率有关选择与晶振频率有关 ;/空函数空函数 void main()void main()/主函数主函数 EA=1;EA=1;/总中断允许总中断允许 EX0=1;EX0=1;/允许外部中断允许外部中断0 0中断中断 IT0=1;IT0=1;/选择外部中断选择外部中断0 0为为跳沿触发跳沿触发方式方式while(1)while(1)/循环循环 P1=0;P1=0;/P1/P1口的口的8 8只只LEDLED全亮全亮 void int0()interrupt 0 using 0 void int0()interrupt 0 using 0 /外中断外中断0 0的中断服务函数的中断服务函数 uchar m;uchar m;EX0=0;EX0=0;/禁止外部中断禁止外部中断0 0中断中断 for(m=0;m5;m+)for(m=0;m5;m+)/交替闪烁交替闪烁5 5次次 P1=0 x0f;P1=0 x0f;/低低4 4位位LEDLED灭,高灭,高4 4位位LEDLED亮亮 Delay(400);Delay(400);/延时延时 P1=0 xf0;P1=0 xf0;/高高4 4位位LEDLED灭,低灭,低4 4位位LEDLED亮亮 Delay(400);Delay(400);/延时延时 EX0=1;EX0=1;/中断返回前,打开外部中断中断返回前,打开外部中断0 0中断中断 本本例例程程包包含含两两部部分分,一一部部分分是是主主程程序序段段,完完成成中中断断系系统统初初始始化化,并并把把8 8个个LEDLED全全部部点点亮亮。另另一一部部分分是是中中断断函函数数部部分分,控控制制4 4个个LEDLED交交替替闪闪烁烁1 1次次,然然后后从从中断返回。中断返回。6.9.2 6.9.2 两个外中断的应用两个外中断的应用当当需需要要多多个个中中断断源源时时,只只需需增增加加相相应应的的中中断断服服务务函函数数即即可可。例例6-26-2是是处处理理两个外中断请求的例子。两个外中断请求的例子。【例例6-26-2】如如图图6-106-10所所示示,在在单单片片机机P1P1口口上上接接有有8 8只只LEDLED。在在外外部部中中断断0 0输输入入引引脚脚(P3.2P3.2)接接有有一一只只按按钮钮开开关关K1K1。在在外外部部中中断断1 1输输入入引引脚脚(P3.3P3.3)接接有有一一只只按按钮钮开开关关K2K2。要要求求K1K1和和K2K2都都未未按按下下时时,P1P1口口的的8 8只只LEDLED呈呈流流水水灯灯显显示示,仅仅K1K1(P3.2P3.2)按按下下再再松松开开时时,上上下下各各4 4只只LEDLED交交替替闪闪烁烁1010次次,然然后后再再回回到到流流水水灯灯显显示示。如如果果按按下下再再松松开开K2K2(P3.3P3.3)时时,P1P1口口的的8 8只只LEDLED全全部部闪闪烁烁1010次次,然然后后再再回到流水灯显示。设置两个外中断的优先级相同。回到流水灯显示。设置两个外中断的优先级相同。图图6-106-10 两个外中断控制两个外中断控制8 8只只LEDLED显示的电路显示的电路参考程序如下:参考程序如下:#include#include#define uchar unsigned char#define uchar unsigned charvoid Delay(unsigned int i)void Delay(unsigned int i)/延时函数延时函数Delay(),Delay(),i i为形式参为形式参 /数,不能赋初值数,不能赋初值 uchar j;uchar j;for(;i0;i-)for(;i0;i-)for(j=0;j125;j+)for(j=0;j125;j+);/空函数空函数 void main()void main()/主函数主函数 uchar uchar display9display9=0 xff,0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;=0 xff,0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/流水灯流水灯显示数据数组显示数据数组unsigned int a;unsigned int a;for(;)for(;)EA=1;EA=1;/总中断允许总中断允许EX0=1;EX0=1;/允许外部中断允许外部中断0 0中断中断EX1=1;EX1=1;/允许外部中断允许外部中断1 1中断中断IT0=1;IT0=1;/选择外部中断选择外部中断0 0为跳沿触发方式为跳沿触发方式IT1=1;IT1=1;/选择外部中断选择外部中断1 1为跳沿触发方式为跳沿触发方式IP=0;IP=0;/两个外部中断均为低优先级两个外部中断均为低优先级for(a=0;a9;a+)for(a=0;a9;a+)Delay(500);Delay(500);/延时延时P1=displaya;P1=displaya;/将已经定义的流水灯显示数据送到将已经定义的流水灯显示数据送到P1P1口口 void int0_isr(void)interrupt 0 using 1/void int0_isr(void)interrupt 0 using 1/外中断外中断0 0的中断服务函数的中断服务函数 uchar n;uchar n;for(n=0;n10;n+)for(n=0;n10;n+)/高、低高、低4 4位显示位显示1010次次 P1=0 x0f;P1=0 x0f;/低低4 4位位LEDLED灭,高灭,高4 4位位LEDLED亮亮 Delay(500);Delay(500);/延时延时 P1=0 xf0;P1=0 xf0;/高高4 4位位LEDLED灭,低灭,低4 4位位LEDLED亮亮 Delay(500);Delay(500);/延时延时 void int1_isr(void)interrupt 2 using 2/void int1_isr(void)interrupt 2 using 2/外中断外中断1 1中断服务函数中断服务函数 uchar m;uchar m;for(m=0;m10;m+)for(m=0;m10;m+)/闪烁显示闪烁显示1010次次 P1=0 xff;P1=0 xff;/全灭全灭 Delay(500);Delay(500);/延时延时 P1=0;P1=0;/全亮全亮 Delay(500);Delay(500);/延时延时 6.9.3 6.9.3 中断嵌套的应用中断嵌套的应用 中中断断嵌嵌套套只只发发生生正正执执行行一一个个低低优优先先级级中中断断,此此时时又又有有一一高高优优先先级级中中断断产产生生,就就会会去去执执行行高高优优先先级级中中断断服服务务程程序序。高高优优先先级级中中断断服服务务程程序序完完成成后后,再再继续执行低优先级中断程序。继续执行低优先级中断程序。【例例6-36-3】电电路路见见图图6-106-10,设设计计一一中中

    注意事项

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

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




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

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

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

    收起
    展开