




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章51单片机中断系统单片机原理与接口技术第5章51单片机中断系统单片机原理与接口技术主要内容5.1中断概述 5.1.1中断的基本概念 5.1.2中断系统的功能5.251单片机中断系统结构 5.2.1中断系统结构 5.2.2中断的控制5.3中断的响应 5.3.1中断响应条件 5.3.2中断的响应—中断处理流程 5.3.3系统的复位5.4中断系统的应用(以外部中断为例) 5.4.1中断程序的初始化 5.4.2外部中断源的应用2主要内容5.1中断概述25.1中断概述CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理;CPU暂停当前的程序,转到中断服务程序去处理所发生的事件;处理完该事件后,再回到原来被中止的地方,继续原来的程序,这就是中断。CPU处理事件的过程,称为CPU的中断响应过程。对事件的整个处理过程,称为中断处理(或中断服务)。单片机实现上述中断功能的部件称为中断系统。产生中断的请求源称为中断请求源。中断源向CPU提出的处理请求称为中断请求。35.1中断概述3中断的优点:提高CPU效率解决速度矛盾实现并行工作应付突发事件中断服务程序中断涉及的几个环节:
①中断源
②中断申请
③开放中断
④保护现场⑤中断服务⑥恢复现场⑦中断返回4中断的优点:中断服务程序中断涉及的几个环节:⑤中断服务45.2中断系统结构51系列单片机中断系统:有5个中断源(52系列有6个)2个外部中断源2个定时中断源1个串行中断两级中断优先级,能实现两级中断嵌套每个中断源的优先级都可由IP编程确定中断请求能否得到响应,由IE编程控制55.2中断系统结构51系列单片机中断系统:5一、51单片机中断系统结构IE0TF0IE1TF1INT0INT1T0T1TIRIEX0ET0EX1ET1ES1EAPX0PT0PX1PT1PS中断
向量地址高低查询循序PC高级中断请求PC低级中断请求中断
向量地址高低01IT1IT01010101010TXRX查询循序01SCONIEIPTCON硬件查询6一、51单片机中断系统结构IE0TF0IE1TF1INT01、中断源(1)外部中断源——INT0、INT1:由引脚P3.2、P3.3输入的两个中断源;可直接触发TCON的IE0、IE1标志位;触发方式:边沿触发、电平触发;触发方式由TCON中的IT0、IT1来选择。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)图EAIE0INT0EX0PX001IT010高优先级低优先级IEIPTCON71、中断源TF1TR1TF0TR0IE1IT1IE0IT0(IE0:INT0的中断请求标志位。当INT0引脚上出现低电平或下降沿时,由硬件自动将IE0置“1”,产生中断请求标志。IT0:INT0触发方式控制位,由软件来选择。IT0=1:INT0为下降沿有效。IT0=0:INT0为低电平有效。IE1:INT1的请求标志位。同IE0。IT1:INT1触发方式控制位。同IT0。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)图8IE0:INT0的中断请求标志位。TF1TR1TF0TR0I(2)内部中断源——T0、T1,TI/RI①T0、T1:定时器/计数器(T/C0、1)溢出中断源T/C0、1内部有各自的计数器,当计满溢出时,使标志位TF0、TF1置“1”,产生中断请求;TF0:T/C0的溢出中断标志位;TF1:T/C1的溢出中断标志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)EATF0T0ET0PT010IEIPTCON高优先级低优先级图9(2)内部中断源——T0、T1,TI/RITF1TR1②TI/RI:串口发送/接收中断源可直接触发SCON的TI、RI标志位;TI:发送中断请求标志。RI:接收中断请求标志。串口的发送和接收中断(逻辑或)共用一个中断源。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)EATIRIES1PS10TXRXIEIPSCON高优先级低优先级图10②TI/RI:串口发送/接收中断源SM0SM1SM2RENT2.中断优先级
51系列单片机中断系统:有5个中断源;两级中断优先级,能实现两级中断嵌套;每个中断源的优先级都可由IP编程确定;中断请求能否得到响应,由IE控制。主程序或子程序中断服务1中断服务2断点PT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)图112.中断优先级主程序或子程序中断服务1中断服务2断点PT2二、中断的控制51中断系统有4个SFR:
⑴TCON(88H):
⑵SCON(98H):
⑶IE(0A8H):
⑷IP(0B8H):单片机中断系统就是由这4个SFR来控制的。TF1TR1TF0TR0IE1IT1IE0IT0PT2PSPT1PX1PT0PX0SM0SM1SM2RENTB0RB0TIRIEAET2ESET1EX1ET0EX012二、中断的控制51中断系统有4个SFR:TF1TR1TF01.中断请求标志(1)TCON的中断标志位TCON为T/C控制寄存器,也锁存T0和T1的溢出中断标志和INT0和INT1的中断标志等。当中断源有中断时,由硬件自动对相应位置“1”。响应中断后由硬件自动清除相应的标志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)图131.中断请求标志(1)TCON的中断标志位TF1TR1TF0(2)SCON的中断标志位SCON为串口控制寄存器,锁存TI和RI的中断标志。串口的发送和接收中断(逻辑或)共用一个中断源。当发送或接收有中断时,由硬件对TI或RI置“1”。中断响应后需要由软件判断TI和RI位,并只能由软件清除TI或RI标志位。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)图14(2)SCON的中断标志位SM0SM1SM2RENTB0RB2.中断允许寄存器IEEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)中断申请后,CPU是否相应中断,由IE相应位控制,可通过对IE编程来设置。IE各位如下("1"有效):EX0:INT0中断允许位;ET0:T/C0中断允许位;EX1:INT1中断允许位;ET1:T/C1中断允许位;ES:串口中断允许位;ET2:T/C2中断允许位(仅52系列有);EA:CPU中断总允许位。图152.中断允许寄存器IEEAET2ESET1EX1ET0EX051单片机复位后,IE被清“0”,即所有中断被禁止。要使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。改变IE的内容,可由位操作指令来实现,即: SETBbit; CLRbit。 也可按自己来实现:MOVIE,#XXHEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)1651单片机复位后,IE被清“0”,即所有中断被禁止。EAE例1若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段。(1)用位操作指令来编写如下程序段:CLRES ;禁止串行口中断CLREX1 ;禁止外部中断1中断CLREX0 ;禁止外部中断0中断SETBET0 ;允许定时器/计数器T0中断SETBET1 ;允许定时器/计数器T1中断SETBEA ;CPU开中断(2)用字节操作指令来编写:MOVIE,#8AHEAET2ESET1EX1ET0EX017例1若允许片内2个定时器/计数器中断,禁止其它中断源的中断3.中断优先级IPPT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)5个中断源可分2个优先级,由IP通过编程来设置。IP各位如下(“1”选为高级,“0”选为低级):PX0:INT0优先级设定位;PT0:T/C0优先级设定位;PX1:INT1优先级设定位;PT1:T/C1优先级设定位;PS:串行口优先级设定位;PT2:T/C2优先级设定位(仅52系列有)。183.中断优先级IPPT2PSPT1PX1PT0PX0(MSB由软件可改变各中断源的中断优先级。
51的中断系统有两个不可寻址的“优先级激活触发器”:一个是指示某高优先级的中断正在执行,所有后来的中断均被阻止。另一个是指示某低优先级的中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。当几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。 查询顺序如下:19由软件可改变各中断源的中断优先级。19中断源中断标志同级内优先级外部中断0(INT0)IE0最高定时器0溢出中断(T0)TF0↓外部中断1(INT1)IE1↓定时器1溢出中断(T1)TF1↓串口中断RI或TI↓定时器2溢出中断(T2)TF2或EXF最低2个优先级中,同级中断的优先次序如下:20中断源中断标志同级内优先级外部中断0(INT0)IE0最高例2
设置IP寄存器的初始值,使2个外部中断请求为高优先级,其它中断请求为低优先级。(1)用位操作指令 SETBPX0 ;2个外中断为高优先级 SETBPX1 CLRPS ;串口为低优先级中断 CLRPT0 ;2个定时器/计数器低优先级中断 CLRPT1(2)用字节操作指令 MOVIP,#05HPT2PSPT1PX1PT0PX021例2设置IP寄存器的初始值,使2个外部中断请求为高优先级5.3中断的响应一、中断响应条件中断请求被响应需满足以下必要条件:(1)中断源有请求;(2)IE的EA=1,且IE相应的中断允许位为1;(3)无同级或高级中断正在服务;(4)现行指令执行完最后一个机器周期。若有下列任何一种情况存在,中断响应都会受到阻断。(1)CPU正在执行一个同级或高优先级的中断服务程序。(2)正在执行的指令尚未执行完。(3)正在执行中断返回指令RETI或者对专用寄存器IE、IP进行读/写的指令。图225.3中断的响应一、中断响应条件图22二、中断的响应CPU响应中断后由硬件完成以下任务:(1)被响应的中断优先级状态触发器置“1”;(2)当前PC的内容压入堆栈,然后执行中断服务程序; (相当于隐含执行一条LCALL指令。)(3)清相应的中断标志位; (串口中断标志RI和TI须由软件清除!)(4)被响应的中断服务程序入口地址送入PC,转入相应的中断服务程序。各中断源服务程序入口地址是固定的,如下所示:图23二、中断的响应图23中断源服务程序的入口地址中断源中断标志中断入口同级内优先级外部中断0(INT0)IE00003H最高定时器0溢出中断(T0)TF0000BH↓外部中断1(INT1)IE10013H↓定时器1溢出中断(T1)TF1001BH↓串口中断RI或TI0023H↓定时器2溢出中断(T2)TF2或EXF002BH最低24中断源服务程序的入口地址中断源中断标志中断入口同级内优先级外三、复位状态寄存器复位状态寄存器复位状态PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIP×××00000SBUF××××××××IE0××00000PCON0×××0000025三、复位状态寄存器复位状态寄存器复位状态PC0000HTMO四、外部中断的响应时间外部中断的最短响应时间为3个机器周期:(1)查询中断请求标志位占1个机器周期。(2)指令LCALL转到相应的中断入口需2个机器周期。
外部中断的最长响应时间为8个机器周期:(1)发生在CPU对中断标志查询时,刚好正要执行RETI或是访问IE或IP指令,则需把当前指令执行完再继续执行一条指令后才能响应中断,最长需2个机器周期。(2)接着再执行一条指令,按最长指令(MUL和DIV)4个机器周期。(3)硬件调用LCALL的执行需要2个机器周期。※对外部中断请求的响应时间在3~8个机器周期之间。26四、外部中断的响应时间26五、程序的初始化复位后,PC指向0000H,一般在0000H处放置一条SJMP或AJMP指令跳转到0030H后,避开被占用区域;
(由于中断服务的入口地址0003H、000BH、0013H、001BH、0023H、002BH被占用,故选在0030H以后。)在中断服务程序各入口地址处放置一条LJMP指令,指向实际中断服务程序;一般将SP指向30H后,避开内部RAM的工作寄存器组和位寻址区。
(复位后,SP指向内部RAM的07H单元,因内部RAM的00H~1FH为R0~R7的4个区,而20H~2FH为位寻址区。)27五、程序的初始化2751单片机程序的初始化: ORG0000H AJMPMAIN ;转主程序 ORG0003H LJMPPINT0 ;转外部中断0 ORG000BH LJMPTINT0 ;转定时器0 ORG0013H LJMPPINT1 ;转外部中断1 ORG001BH LJMPTINT1 ;转定时器1 ORG0023H LJMPSINT ;转串行通信ORG0030HMAIN:MOVSP,#30H......LJMPXXXPINT0:......RETITINT0:......RETIPINT1:......RETITINT1:......RETISINT:......RETI2851单片机程序的初始化:ORG0030H28对4个SFR的有关控制位进行赋值:
(1)对IP选优先级;(2)对IE选各中断允许(总中断允许位EA暂不选);(3)若是外部中断,则对TCON确定触发方式;(4)最后开总中断EA=1。29对4个SFR的有关控制位进行赋值:29外部中断的触发方式选择(1)电平触发方式CPU每个机器周期采样INT引脚,低电平就响应中断。在中断服务返回之前,INT引脚电平必须撤销,否则CPU返回主程序会再次响应中断。适于外中断以低电平输入且中断服务程序能清除外部中断请求的情况。5.4中断系统的应用INTxP1.0CLKSQD外来中断申请信号(低电平)MCS-5174LS74S=0则Q=1外部低电平中断的撤除30外部中断的触发方式选择5.4中断系统的应用INTxP1.0(2)边沿触发方式CPU连续两次采样INT引脚,若一个机器周期采样到为高,下一个机器周期为低,则中断请求标志置“1”。CPU响应此中断时,该标志清“0”。INT引脚输入的负脉冲宽度至少保持1个机器周期。31(2)边沿触发方式31例3:若规定外部中断0为电平触发方式,高优先级,写出有关的初始化程序。解:采用位操作指令来实现: SETBEX0 ;允许外中断0中断 SETBPX0 ;外中断0定为高优先级 CLRIT0 ;电平触发 SETBEA ;开总中断EAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCONPT2PSPT1PX1PT0PX0IP32例3:若规定外部中断0为电平触发方式,高优先级,写出有关的初例4编制一外部中断的服务程序。现场保护:PSW、A典型的中断服务程序如下:INT:CLREA;CPU关中断,防止有高级中断PUSHPSW;现场保护PUSHACCSETBEA;CPU开中断......;中断处理程序段CLREA;CPU关中断,防止有高级中断POPACC;现场恢复POPPSWSETBEA;CPU开中断RETI;中断返回,恢复断点33例4编制一外部中断的服务程序。33几点说明:(1)本例现场保护仅涉及到PSW和A,如有其它需保护的只需再加几条PUSH和POP指令即可。(2)“中断处理程序段”应根据任务的具体要求来编写。(3)如果本中断服务程序不允许被其它的中断所中断,可将“中断处理程序段”前后的“SETBEA”和“CLREA”两条指令去掉。(4)中断服务程序的最后一条指令必须是RETI。34几点说明:34例5要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。1.边沿触发:每次跳变引起一次中断请求。单片机INT0P1.0+5VEAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCON35例5要求每次按动按键,使外接发光二极管LED改变一次亮灭
ORG0000H ;复位入口 AJMPMAIN
ORG0003H ;中断入口 AJMPPINT0
ORG0030H ;主程序MAIN:MOVSP,#40H ;设堆栈 SETB EX0 ;开INT0中断 SETB IT0 ;负跳变触发中断 SETB EA ;开总中断允许H: SJMPH ;执行其它任务 ORG0200H ;中断服务程序PINT0:CPLP1.0 ;改变LED
RETI ;返回主程序36 ORG0000H ;复位入口 362.
电平触发:
ORG0000H ;复位入口 AJMPMAIN
ORG 0003H ;中断入口 AJMPPINT0
ORG 0030H ;主程序MAIN:MOVSP,#40H ;设堆栈SETB EX0 ;开INT0中断;CLR IT0 ;低电平触发中断SETB EA ;开总中断允许H:SJMP H ;执行其它任务ORG0200H ;中断服务程序PINT0:CPLP1.0 ;改变LEDWAIT:JNB P3.2,WAIT ;等按键释放
RETI ;返回主程序372.电平触发:37例6故障源显示电路。无故障时3个故障源X1~X3全为低,对应的3个显示灯全灭;当某部分出现故障时,对应的输入端由低变高而引起中断。中断服务程序的任务是判定故障,并点亮对应发光二极管。其中发光二极管LED1~LED3对应3个输入端X1~X3。+INT0P1.0P1.1P1.2P1.3P1.4P1.5X1X2X3+5VLED1LED2LED3RRR38例6故障源显示电路。+INT0P1.0P1.3X1+5VL
主程序为:
ORG0000H AJMPMAIN
ORG0003H LJMPSERVEMAIN:ORLP1,#0FFH ;灯全灭,准备读入 SETBIT0 ;选择边沿触发方式 SETBEX0 ;允许INT0中断 SETBEA ;CPU开总中断 SJMP$ ;等待中断EAET2ESET1EX1ET0EX0IE39主程序为:EAET2ESET1EX1ET0EX0IE39中断服务子程序为:
ORG2000HSERVE:JNBP1.0,L1 ;若X1无故障,跳到L1 CLRP1.3 ;点亮LED1L1: JNBP1.1,L2 ;若X2有故障,跳到L2 CLRP1.4 ;点亮LED2L2: JNBP1.2,L3 ;若X3有故障,跳到L3 CLRP1.5 ;点亮LED3L3: RETI+INT0P1.0P1.1P1.2P1.3P1.4P1.5X1X2X3+5VLED1LED2LED3RRR40中断服务子程序为:+INT0P1.0P1.3X1+5VLED例7通过外部中断1在中断服务中将P1口内容左环移一位。
已知:(B)=01H,要求采用边沿触发,低优先级。此例的实际意义:在INT1引脚接一个按键,每按一下按键就申请一次中断。中断服务:依次点亮八盏灯中的一盏。P1.0P1.7INT130041例7通过外部中断1在中断服务中将P1口内容左环移一位。PORG0000HLJMPMAINORG0013H;外部中断1的中断入口LJMPINTMAIN:SETBEX1;开外中断1CLRPX1;低优先级(此句可省略)SETBIT1;边沿触发MOVB,#01H;给B寄存器赋初值CLRASETBEA;开总中断HERE:INCASJMPHERE;循环等待中断INT:PUSHACC;保护现场MOVP1,B;输出到P1口MOVA,BRLA;左环移一次MOVB,A;存回BPOPACC;现场恢复RETI中断服务程序本章完42ORG0000HINT:PUSHACC第5章51单片机中断系统单片机原理与接口技术第5章51单片机中断系统单片机原理与接口技术主要内容5.1中断概述 5.1.1中断的基本概念 5.1.2中断系统的功能5.251单片机中断系统结构 5.2.1中断系统结构 5.2.2中断的控制5.3中断的响应 5.3.1中断响应条件 5.3.2中断的响应—中断处理流程 5.3.3系统的复位5.4中断系统的应用(以外部中断为例) 5.4.1中断程序的初始化 5.4.2外部中断源的应用44主要内容5.1中断概述25.1中断概述CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理;CPU暂停当前的程序,转到中断服务程序去处理所发生的事件;处理完该事件后,再回到原来被中止的地方,继续原来的程序,这就是中断。CPU处理事件的过程,称为CPU的中断响应过程。对事件的整个处理过程,称为中断处理(或中断服务)。单片机实现上述中断功能的部件称为中断系统。产生中断的请求源称为中断请求源。中断源向CPU提出的处理请求称为中断请求。455.1中断概述3中断的优点:提高CPU效率解决速度矛盾实现并行工作应付突发事件中断服务程序中断涉及的几个环节:
①中断源
②中断申请
③开放中断
④保护现场⑤中断服务⑥恢复现场⑦中断返回46中断的优点:中断服务程序中断涉及的几个环节:⑤中断服务45.2中断系统结构51系列单片机中断系统:有5个中断源(52系列有6个)2个外部中断源2个定时中断源1个串行中断两级中断优先级,能实现两级中断嵌套每个中断源的优先级都可由IP编程确定中断请求能否得到响应,由IE编程控制475.2中断系统结构51系列单片机中断系统:5一、51单片机中断系统结构IE0TF0IE1TF1INT0INT1T0T1TIRIEX0ET0EX1ET1ES1EAPX0PT0PX1PT1PS中断
向量地址高低查询循序PC高级中断请求PC低级中断请求中断
向量地址高低01IT1IT01010101010TXRX查询循序01SCONIEIPTCON硬件查询48一、51单片机中断系统结构IE0TF0IE1TF1INT01、中断源(1)外部中断源——INT0、INT1:由引脚P3.2、P3.3输入的两个中断源;可直接触发TCON的IE0、IE1标志位;触发方式:边沿触发、电平触发;触发方式由TCON中的IT0、IT1来选择。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)图EAIE0INT0EX0PX001IT010高优先级低优先级IEIPTCON491、中断源TF1TR1TF0TR0IE1IT1IE0IT0(IE0:INT0的中断请求标志位。当INT0引脚上出现低电平或下降沿时,由硬件自动将IE0置“1”,产生中断请求标志。IT0:INT0触发方式控制位,由软件来选择。IT0=1:INT0为下降沿有效。IT0=0:INT0为低电平有效。IE1:INT1的请求标志位。同IE0。IT1:INT1触发方式控制位。同IT0。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)图50IE0:INT0的中断请求标志位。TF1TR1TF0TR0I(2)内部中断源——T0、T1,TI/RI①T0、T1:定时器/计数器(T/C0、1)溢出中断源T/C0、1内部有各自的计数器,当计满溢出时,使标志位TF0、TF1置“1”,产生中断请求;TF0:T/C0的溢出中断标志位;TF1:T/C1的溢出中断标志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)EATF0T0ET0PT010IEIPTCON高优先级低优先级图51(2)内部中断源——T0、T1,TI/RITF1TR1②TI/RI:串口发送/接收中断源可直接触发SCON的TI、RI标志位;TI:发送中断请求标志。RI:接收中断请求标志。串口的发送和接收中断(逻辑或)共用一个中断源。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)EATIRIES1PS10TXRXIEIPSCON高优先级低优先级图52②TI/RI:串口发送/接收中断源SM0SM1SM2RENT2.中断优先级
51系列单片机中断系统:有5个中断源;两级中断优先级,能实现两级中断嵌套;每个中断源的优先级都可由IP编程确定;中断请求能否得到响应,由IE控制。主程序或子程序中断服务1中断服务2断点PT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)图532.中断优先级主程序或子程序中断服务1中断服务2断点PT2二、中断的控制51中断系统有4个SFR:
⑴TCON(88H):
⑵SCON(98H):
⑶IE(0A8H):
⑷IP(0B8H):单片机中断系统就是由这4个SFR来控制的。TF1TR1TF0TR0IE1IT1IE0IT0PT2PSPT1PX1PT0PX0SM0SM1SM2RENTB0RB0TIRIEAET2ESET1EX1ET0EX054二、中断的控制51中断系统有4个SFR:TF1TR1TF01.中断请求标志(1)TCON的中断标志位TCON为T/C控制寄存器,也锁存T0和T1的溢出中断标志和INT0和INT1的中断标志等。当中断源有中断时,由硬件自动对相应位置“1”。响应中断后由硬件自动清除相应的标志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)图551.中断请求标志(1)TCON的中断标志位TF1TR1TF0(2)SCON的中断标志位SCON为串口控制寄存器,锁存TI和RI的中断标志。串口的发送和接收中断(逻辑或)共用一个中断源。当发送或接收有中断时,由硬件对TI或RI置“1”。中断响应后需要由软件判断TI和RI位,并只能由软件清除TI或RI标志位。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)图56(2)SCON的中断标志位SM0SM1SM2RENTB0RB2.中断允许寄存器IEEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)中断申请后,CPU是否相应中断,由IE相应位控制,可通过对IE编程来设置。IE各位如下("1"有效):EX0:INT0中断允许位;ET0:T/C0中断允许位;EX1:INT1中断允许位;ET1:T/C1中断允许位;ES:串口中断允许位;ET2:T/C2中断允许位(仅52系列有);EA:CPU中断总允许位。图572.中断允许寄存器IEEAET2ESET1EX1ET0EX051单片机复位后,IE被清“0”,即所有中断被禁止。要使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。改变IE的内容,可由位操作指令来实现,即: SETBbit; CLRbit。 也可按自己来实现:MOVIE,#XXHEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)5851单片机复位后,IE被清“0”,即所有中断被禁止。EAE例1若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段。(1)用位操作指令来编写如下程序段:CLRES ;禁止串行口中断CLREX1 ;禁止外部中断1中断CLREX0 ;禁止外部中断0中断SETBET0 ;允许定时器/计数器T0中断SETBET1 ;允许定时器/计数器T1中断SETBEA ;CPU开中断(2)用字节操作指令来编写:MOVIE,#8AHEAET2ESET1EX1ET0EX059例1若允许片内2个定时器/计数器中断,禁止其它中断源的中断3.中断优先级IPPT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)5个中断源可分2个优先级,由IP通过编程来设置。IP各位如下(“1”选为高级,“0”选为低级):PX0:INT0优先级设定位;PT0:T/C0优先级设定位;PX1:INT1优先级设定位;PT1:T/C1优先级设定位;PS:串行口优先级设定位;PT2:T/C2优先级设定位(仅52系列有)。603.中断优先级IPPT2PSPT1PX1PT0PX0(MSB由软件可改变各中断源的中断优先级。
51的中断系统有两个不可寻址的“优先级激活触发器”:一个是指示某高优先级的中断正在执行,所有后来的中断均被阻止。另一个是指示某低优先级的中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。当几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。 查询顺序如下:61由软件可改变各中断源的中断优先级。19中断源中断标志同级内优先级外部中断0(INT0)IE0最高定时器0溢出中断(T0)TF0↓外部中断1(INT1)IE1↓定时器1溢出中断(T1)TF1↓串口中断RI或TI↓定时器2溢出中断(T2)TF2或EXF最低2个优先级中,同级中断的优先次序如下:62中断源中断标志同级内优先级外部中断0(INT0)IE0最高例2
设置IP寄存器的初始值,使2个外部中断请求为高优先级,其它中断请求为低优先级。(1)用位操作指令 SETBPX0 ;2个外中断为高优先级 SETBPX1 CLRPS ;串口为低优先级中断 CLRPT0 ;2个定时器/计数器低优先级中断 CLRPT1(2)用字节操作指令 MOVIP,#05HPT2PSPT1PX1PT0PX063例2设置IP寄存器的初始值,使2个外部中断请求为高优先级5.3中断的响应一、中断响应条件中断请求被响应需满足以下必要条件:(1)中断源有请求;(2)IE的EA=1,且IE相应的中断允许位为1;(3)无同级或高级中断正在服务;(4)现行指令执行完最后一个机器周期。若有下列任何一种情况存在,中断响应都会受到阻断。(1)CPU正在执行一个同级或高优先级的中断服务程序。(2)正在执行的指令尚未执行完。(3)正在执行中断返回指令RETI或者对专用寄存器IE、IP进行读/写的指令。图645.3中断的响应一、中断响应条件图22二、中断的响应CPU响应中断后由硬件完成以下任务:(1)被响应的中断优先级状态触发器置“1”;(2)当前PC的内容压入堆栈,然后执行中断服务程序; (相当于隐含执行一条LCALL指令。)(3)清相应的中断标志位; (串口中断标志RI和TI须由软件清除!)(4)被响应的中断服务程序入口地址送入PC,转入相应的中断服务程序。各中断源服务程序入口地址是固定的,如下所示:图65二、中断的响应图23中断源服务程序的入口地址中断源中断标志中断入口同级内优先级外部中断0(INT0)IE00003H最高定时器0溢出中断(T0)TF0000BH↓外部中断1(INT1)IE10013H↓定时器1溢出中断(T1)TF1001BH↓串口中断RI或TI0023H↓定时器2溢出中断(T2)TF2或EXF002BH最低66中断源服务程序的入口地址中断源中断标志中断入口同级内优先级外三、复位状态寄存器复位状态寄存器复位状态PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIP×××00000SBUF××××××××IE0××00000PCON0×××0000067三、复位状态寄存器复位状态寄存器复位状态PC0000HTMO四、外部中断的响应时间外部中断的最短响应时间为3个机器周期:(1)查询中断请求标志位占1个机器周期。(2)指令LCALL转到相应的中断入口需2个机器周期。
外部中断的最长响应时间为8个机器周期:(1)发生在CPU对中断标志查询时,刚好正要执行RETI或是访问IE或IP指令,则需把当前指令执行完再继续执行一条指令后才能响应中断,最长需2个机器周期。(2)接着再执行一条指令,按最长指令(MUL和DIV)4个机器周期。(3)硬件调用LCALL的执行需要2个机器周期。※对外部中断请求的响应时间在3~8个机器周期之间。68四、外部中断的响应时间26五、程序的初始化复位后,PC指向0000H,一般在0000H处放置一条SJMP或AJMP指令跳转到0030H后,避开被占用区域;
(由于中断服务的入口地址0003H、000BH、0013H、001BH、0023H、002BH被占用,故选在0030H以后。)在中断服务程序各入口地址处放置一条LJMP指令,指向实际中断服务程序;一般将SP指向30H后,避开内部RAM的工作寄存器组和位寻址区。
(复位后,SP指向内部RAM的07H单元,因内部RAM的00H~1FH为R0~R7的4个区,而20H~2FH为位寻址区。)69五、程序的初始化2751单片机程序的初始化: ORG0000H AJMPMAIN ;转主程序 ORG0003H LJMPPINT0 ;转外部中断0 ORG000BH LJMPTINT0 ;转定时器0 ORG0013H LJMPPINT1 ;转外部中断1 ORG001BH LJMPTINT1 ;转定时器1 ORG0023H LJMPSINT ;转串行通信ORG0030HMAIN:MOVSP,#30H......LJMPXXXPINT0:......RETITINT0:......RETIPINT1:......RETITINT1:......RETISINT:......RETI7051单片机程序的初始化:ORG0030H28对4个SFR的有关控制位进行赋值:
(1)对IP选优先级;(2)对IE选各中断允许(总中断允许位EA暂不选);(3)若是外部中断,则对TCON确定触发方式;(4)最后开总中断EA=1。71对4个SFR的有关控制位进行赋值:29外部中断的触发方式选择(1)电平触发方式CPU每个机器周期采样INT引脚,低电平就响应中断。在中断服务返回之前,INT引脚电平必须撤销,否则CPU返回主程序会再次响应中断。适于外中断以低电平输入且中断服务程序能清除外部中断请求的情况。5.4中断系统的应用INTxP1.0CLKSQD外来中断申请信号(低电平)MCS-5174LS74S=0则Q=1外部低电平中断的撤除72外部中断的触发方式选择5.4中断系统的应用INTxP1.0(2)边沿触发方式CPU连续两次采样INT引脚,若一个机器周期采样到为高,下一个机器周期为低,则中断请求标志置“1”。CPU响应此中断时,该标志清“0”。INT引脚输入的负脉冲宽度至少保持1个机器周期。73(2)边沿触发方式31例3:若规定外部中断0为电平触发方式,高优先级,写出有关的初始化程序。解:采用位操作指令来实现: SETBEX0 ;允许外中断0中断 SETBPX0 ;外中断0定为高优先级 CLRIT0 ;电平触发 SETBEA ;开总中断EAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCONPT2PSPT1PX1PT0PX0IP74例3:若规定外部中断0为电平触发方式,高优先级,写出有关的初例4编制一外部中断的服务程序。现场保护:PSW、A典型的中断服务程序如下:INT:CLREA;CPU关中断,防止有高级中断PUSHPSW;现场保护PUSHACCSETBEA;CPU开中断......;中断处理程序段CLREA;CPU关中断,防止有高级中断POPACC;现场恢复POPPSWSETBEA;CPU开中断RETI;中断返回,恢复断点75例4编制一外部中断的服务程序。33几点说明:(1)本例现场保护仅涉及到PSW和A,如有其它需保护的只需再加几条PUSH和POP指令即可。(2)“中断处理程序段”应根据任务的具体要求来编写。(3)如果本中断服务程序不允许被其它的中断所中断,可将“中断处理程序段”前后的“SETBEA”和“CLREA”两条指令去掉。(4)中断服务程序的最后一条指令必须是RETI。76几点说明:34例5要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。1.边沿触发:每次跳变引起一次中断请求。单片机INT0P1.0+5VEAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCON77例5要求每次按动按键,使外接发光二极管LED改变一次亮灭
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025营口职业技术学院辅导员考试试题及答案
- 2025苏州经贸职业技术学院辅导员考试试题及答案
- 2025福州软件职业技术学院辅导员考试试题及答案
- 堆垛机结构设计
- 浙江宁波慈溪文旅集团有限公司招聘笔试题库2025
- 老人摔倒急救指南
- 糖尿病系统解析与防治策略
- 工程管理硕士研究生入学考试题及答案2025年
- 2025年职业病防治考试试卷及答案
- 2025年智能交通系统工程考试题及答案
- 计算机基础考试知识试题及答案集
- DB31T 1400-2023 药品生产全过程数字化追溯体系建设和运行规范
- 浙江省温州市2025届高三下学期三模政治试题 含解析
- 福建厦门双十中学2025届物理八下期末质量跟踪监视试题含解析
- 成人患者营养不良诊断与应用指南(2025版)解读课件
- 十五五时期经济社会发展座谈会十五五如何谋篇布局
- 遵义市购房合同协议
- 2024年四川省天全县事业单位公开招聘医疗卫生岗笔试题带答案
- 育儿嫂签合同协议
- 【7语期中】合肥市包河区2024-2025学年七年级下学期4月期中语文试题
- (三诊)成都市2022级高中高三毕业班第三次诊断性检物理试卷(含答案)
评论
0/150
提交评论