1、1.中断的基本概念2.MCS-51的中断系统3.中断源和中断标志4.中断的允许和优先权5.中断的处理过程6.外部中断源的扩展7.中断的应用第第章章中中断断系系统统 本章内容本章内容Single Chip Microcomputer中断系统中断系统中断的基本概念v日常生活中断的例子v单片机中的中断概念v中断技术的优点 日常中断的例子日常中断的例子 你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。计算机中的中断概念计算机中的中断概念中断中断是指由于某种随机事件的发生,计算机暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来
2、的程序继续运行。将能引起中断的事件称为中断源中断源。CPU现行运行的程序称为主程序主程序。处理随机事件的程序称为中断服务中断服务子程序子程序。中断技术的优点中断技术的优点v分时操作分时操作 CPU可以同多个外设“同时”工作v实时处理实时处理 CPU及时处理随机事件v故障处理故障处理 电源掉电、存储出错、运算溢出 MCS-51中断系统v中断源中断源v中断标志中断标志v中断允许中断允许v中断优先级中断优先级vMCS-51MCS-51中断系统结构中断系统结构v中断寄存器中断寄存器 MCS-51MCS-51的中断系统的中断系统中断源中断源8051单片机有5个个中断请求源:单片机单片机INT0或 外部输
3、入中断源INT0(P3.2)INT1或 外部输入中断源INT1(P3.3)T0 片内定时器T0的溢出T1 片内定时器T1的溢出串行口 片内串行口发送或接收中断源 MCS-51MCS-51的中断系统的中断系统中断标志中断标志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断源中断标志位中断标志位 每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。MCS-51MCS-51的中断系统的中断系统中断允许中断允许CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断源中断标志位中断标志位 EA总中断允许位,总中断允许位
4、,EA=1开放所有中断,开放所有中断,EA=0,禁止所有中断;禁止所有中断;某一个中断源还有相应的中断允许位,某一个中断源还有相应的中断允许位,1允许相应中断源的中断,允许相应中断源的中断,0禁禁止相应中断源的中断。止相应中断源的中断。中断允许中断允许ESET0EX0EX1ET1EA MCS-51MCS-51的中断系统的中断系统中断优先级中断优先级CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断源中断标志位中断标志位 单片机中有两个中断优先级,即高优先级中断和低优先级中断,前单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设
5、置,相应位者优先权高于后者(在程序中设置,相应位=1=1,为高优先级);,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。形成,无法改变)。中断允许中断允许ESET0EX0EX1ET1EA自然优先级自然优先级高低优先控制优先控制PSPT0PX0PX1PT1 IE0TCONSCONINT0 IT0=0 IT0=1INT1 IT1=0 IT1=1TF0 IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级自然优先级矢量地址高级中断请求高级中断请求自然优先级自然优先级矢量地址
6、低级中断请求低级中断请求PX0PT0PX1PT1PSIEIP MCS-51 MCS-51的中断系统结构图的中断系统结构图中断标志位中断源允许总允许中断优先级TCON寄存器T0和T1控制寄存器 TF1 TF0 IE1 IT1 IE0 IT0TCONT1溢出中断标志溢出中断标志(TCON.7):T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。76543210 TF1 TF0 IE1 IT1 IE0 IT0TCON 88H外部中断外部中断INT1中断标志中断标志位位(TCON.3):IE11,外部
7、中断1向CPU申请中断 外部中断外部中断INT1触发方触发方式控制位式控制位(TCON.2):IT1=0,电平触发方式 IT1=1,下降沿触发方式76543210TCON寄存器T0和T1控制寄存器注意:该寄存器可以位寻址。TI(SCON.1)串行发送中断标志。RI(SCON.0)串行接收中断标志。TI RISCON寄存器串行口控制寄存器SCON 98H76543210注意:该寄存器可以位寻址。IE寄存器中断允许寄存器 IE A8H EA ESET1EX1 ET0EX0例:允许定时器T0中断:SETB EA SETB ET0 或 MOV IE,#82H76543210注意:该寄存器可以位寻址。5
8、1单片机有两个中断优先级单片机有两个中断优先级高级和低级高级和低级 专用寄存器专用寄存器IP为中断优先级寄存器,用户可用软件设定为中断优先级寄存器,用户可用软件设定 相应位为相应位为1,对应的中断源被设置为,对应的中断源被设置为高优先级高优先级,相应位为,相应位为0,对应,对应的中断源被设置为低优先级的中断源被设置为低优先级 系统复位时,均为低优先级系统复位时,均为低优先级 该寄存器可以位寻址该寄存器可以位寻址 PSPT1PX1PT0PX0IP寄存器中断优先级寄存器 IP B8H 76543210在中断源与CPU之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开
9、关,由IE控制。中断控制(两级管理)中断控制(两级管理)1 1、中断屏蔽(第一级管理)、中断屏蔽(第一级管理)IEEX0ET0EX1ET1 ES EAEA 总控制位总控制位“”未定义位未定义位ES 串口控制位串口控制位 ET1 T1中断控制位中断控制位 EX1/INT1控制位控制位 ET0 T0中断控制位中断控制位 EX0/INT0控制位控制位 若为若为“1”,开关接通,允,开关接通,允许许例如例如 SETB EA若为若为“0”,开关断开,不,开关断开,不允许允许例如例如 CLR IE.72、中断优先级(第二级管理)、中断优先级(第二级管理)为什么要有为什么要有中断优先级中断优先级?CPU同一
10、时间只能响应一个中断请求。同一时间只能响应一个中断请求。若同时来了两个或两个若同时来了两个或两个以上中断请求,就必须有先有后。以上中断请求,就必须有先有后。!为此将为此将5个中断源分成高级、低级两个级别,高级优先,由个中断源分成高级、低级两个级别,高级优先,由IP控制。控制。IPPX0PT0PX1PT1 PSP S 串口的中断优先级别串口的中断优先级别PT1 定时定时/计数器计数器T1的中断优先级别的中断优先级别PX1 外部中断外部中断1 的中断优先级别的中断优先级别PT0 定时定时/计数器计数器T0的中断优先级别的中断优先级别PX0 外部中断外部中断0 的中断优先级别的中断优先级别该位是该位
11、是“1”时,为高级优先级时,为高级优先级该位是该位是“0”时,为低级优先时,为低级优先级级同一级中的同一级中的5个中断源的优先顺序是:个中断源的优先顺序是:/INT0中断中断 T0溢出中断溢出中断 /INT1中断中断 T1溢出中断溢出中断 串口中断串口中断 高高低低出厂前已由厂家固化顺序出厂前已由厂家固化顺序事先约定事先约定中断优先原则:(概括为四句话)中断优先原则:(概括为四句话)1、低级不打断高级、低级不打断高级2、高级不睬低级、高级不睬低级3、同级不能打断、同级不能打断4、同级、同时中断、同级、同时中断,事先约定事先约定。事件事件1事件事件2子程序子程序2子程序子程序1中断中断嵌套嵌套的
12、概念:的概念:主程序主程序中断中断中断中断中断处理过程 中断处理过程分为三个阶段:中断响应、中断处理和中断返回。v 中断响应v 中断处理(又称中断服务)v 中断返回v 中断请求的撤除中断请求的撤除 中断响应中断返回四、四、MCS-51中断的响应过程中断的响应过程 CPU每个机器周期都需要顺序检查每个中断源,当检测到有每个机器周期都需要顺序检查每个中断源,当检测到有中断请求时,能否响应,还要看下述情况是否存在:中断请求时,能否响应,还要看下述情况是否存在:(1)CPU正处理相同级别或更高级别的中断;正处理相同级别或更高级别的中断;(2)正在执行指令,还未到最后一个机器周期;)正在执行指令,还未到
13、最后一个机器周期;(3)正在执行的指令是)正在执行的指令是RETI或访问或访问IP、IE指令,则执行完上指令,则执行完上 述指令后,再执行一条指令后,才会响应新中断。述指令后,再执行一条指令后,才会响应新中断。日常生活中日常生活中的中断与的中断与单片机单片机中断的比较:中断的比较:某同学某同学 单片机单片机 过程说明过程说明正在看书正在看书 执行主程序执行主程序有人找出去有人找出去 中断信号中断信号 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点出去做事出去做事 执行中断程序执行中断程序 中断服务
14、中断服务回来继续看回来继续看 返回主程序返回主程序 中断返回中断返回中断响应(以外部中断0为例)中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。中断响应过程:保护断点地址;中断响应 把程序转向中断服务程序的入口地址(通常称矢量地址)。特别注意:这些工作是硬件自动完成的!断点地址中断服务子程序的入口地址外部中断外部中断0 0入口地址入口地址0003ZD0AJMP ORG 0003HAJMP ZD0ZD0中断响应中断服务子程序入口地址又称为中断矢量或中断向量。中断响应单片机中5个中断源的矢量地址是固定固定的,不能改动。断点地址中断服务子程序的入口地址程序存储器程序存储器R
15、OMROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处存放一条跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去!程序存储器程序存储器ROMROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH包含T0中断服务子程序的程序结构:ORG 0000H
16、ORG 0000HAJMP MAINORG 000BHORG 000BHAJMP INTT0ORG 0100HORG 0100HMAIN:.INTT0:.RETI ENDAJMP MAINAJMP INTT0中断处理中断处理中断服务程序从中断子程序入入口地址口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。中断响应入口地址入口地址RETI中断处理中断处理INTT0:PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DP
17、H POP ACC RETI保护现场恢复现场中断返回 中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RETI来实现。中断响应中断返回中断返回 RETI指令功能:把断点地断点地址取出,送回到程序计数器址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。特别注意:不能用不能用RET指指令代替令代替RETI指令!指令!中断响应中断返回 保护断点与保护现场以及恢保护断点与保护现场以及恢复断点与恢复现场的区别。复断点与恢复现场的区别。外部中断响应时间在外部中断响应时间在3 8个个机器周期之间。机
18、器周期之间。中断处理过程示意图中断源发中断请求中断源发中断请求中断响应条件中断响应条件 是否满足?是否满足?中断是否受阻?中断是否受阻?把把PC断点地址压入堆栈断点地址压入堆栈 相应中断源的中断入口地址相应中断源的中断入口地址送入送入PC,转向中断服务程序转向中断服务程序NYYN 由硬件自动完成 关中断关中断保护现场保护现场中断服务中断服务 开中断开中断 关中断关中断恢复现场恢复现场 开中断开中断中断返回中断返回断点地址由堆栈弹入断点地址由堆栈弹入PC保护现场和恢复现场的过程中不允许中断,以免现场遭到破坏。保护和恢复现场之后的开中断是为了允许有更高级中断打断此中断服务程序。中断服务程序硬件自动
19、完成中断请求的撤除中断请求的撤除 CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TFO或TF1,即中断请求是自动撤除的中断请求是自动撤除的。边沿激活的外部中断:CPU在响应中断后,也是用硬件自动用硬件自动清除清除有关的中断请求标志IE0或IE1。串行口中断:CPU响应中断后,没有用硬件清除T1、R1,故这些中断不能自动撤除,而要靠软件来清除相应的标志要靠软件来清除相应的标志。电平触发外部中断撤除方法较复杂。因为在电平触发方式中,CPU响应中断时不会自动清除IE1或IE0标志,所以在响应中断后应立
20、即撤除INT0或INT1引脚上的低电平。在硬件上,CPU对INT0和INT1引脚的信号不能控制,所以这个问题要通过硬件,再配合软件来解决。电平触发的外部中断源中断标志的撤除电平触发的外部中断源中断标志的撤除开相应中断源的中断设定所用中断的优先级若为外部中断,则应规定低电平还是负边沿的触发方式中断系统的初始化中断系统的初始化例:写出例:写出INT0INT0为低电平触发的中断系统的初始化程序为低电平触发的中断系统的初始化程序.SETB EASETB EX0SETB PX0CLR IT0MOV IE,#81HORL TCON,#0FEH外部中断源的扩展v单片机仅有两个外部中断输入端.v可用两种方法扩
21、展:1.定时器T0,T1。(工作在计数方式下)2.中断和查询结合。1用定时器作外部中断源 例例5.5 将定时器T0扩展为外部中断源。解解:将定时器T0设定为方式2(自动恢复计数初值),TH0和TF0的初值均设置为FFH,允许T0中断,CPU开放中断,源程序如下:MOVTMOD,#06H MOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA T0引脚每输入一个负跳变,TF0都会置1,向CPU请求中断 T0脚相当于边沿触发的外部中断源输入线。脚相当于边沿触发的外部中断源输入线。2中断和查询相结合 MCS-511P3.3P1.0P1.1P1.2P1.3EXINT0
22、EXINT1EXINT2EXINT3图:一个外中断扩展成多个外中断的原理图中断服务程序如下:中断服务程序如下:ORG0003H;外部中断0入口 AJMP INT0;转向中断服务程序入口 INT0:PUSH PSW ;保护现场 PUSH ACC JB P1.0,EXT0 ;中断源查询并转相应中断服务程序 JB P1.1,EXT1 JB P1.2,EXT2 JB P1.3,EXT3 EXIT:POP ACC ;恢复现场 POP PSW RETIEXT0:;EXINT0中断服务程序 AJMPEXITEXT1:;EXINT1中断服务程序 AJMPEXITEXT2:;EXINT2中断服务程序AJMPEX
23、ITEXT3:;EXINT3中断服务程序 AJMP EXIT 同样,外部中断同样,外部中断1也可作相应的扩展。也可作相应的扩展。例:在例:在P1.0上产生周期为上产生周期为10ms的方波,设晶振频率的方波,设晶振频率12MHz.(要求分别以查询方式和中断方式设计程序)要求分别以查询方式和中断方式设计程序)查查询询方方式式:ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H SETB TR1WAIT:JBC TF1,NX SJMP WAIT NX:CPL P1.0 MOV TH1,#0CEH MOV TL1,#78H SJMP WAIT END中中断断方方式式:ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H MOV IE,#88H SETB TR1WAIT:SJMP WAIT ORG 001BH CPL P1.0 MOV TH1,#0CEH MOV TL1,#78H RETI
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。