《51单片机中断.ppt》由会员分享,可在线阅读,更多相关《51单片机中断.ppt(41页珍藏版)》请在课桌文档上搜索。
1、2023/3/10,1,6章中断系统,2023/3/10,2,6章、80C51的中断系统,6.1 80C51的中断系统结构,一、中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。,2023/3/10,3,MCS-51单片机的中断系统结构,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,2023/3/10,4,引起CPU中断的根源,称为中断源。中断源向C
2、PU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。,2023/3/10,5,随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:,分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;,实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;,可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,2023/3/10,6,数据的输入/输出传送方式,查询传送方式
3、(LOOK UP):传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待,中断传送方式(IRQ):一方通过申请中断的方式与另一方进行数据传送,无条件传送方式:一方对另一方来说总是准备好的,直接存储器存取方式(DMA):双方直接通过总线传送数据,不经CPU中转,2023/3/10,7,数据传送的双方平时各自做自己的工作,一旦甲方要求与乙方进行数据传送,就主动发出信号提出申请,乙方接到申请后若同意传送,安排好当前的工作,再响应与甲方发生数据传送。完事后,回去继续做打断前的工作。,中断功能强弱是计算机性能优劣的重要标志提高CPU效率 解决速度矛盾 实现并行工作 应付突发事件,中断传
4、送方式特点,2023/3/10,8,中断源 中断申请开放中断保护现场中断服务恢复现场中断返回,中断涉及的几个环节,(前面提到的甲方)(甲方发出信号提出申请)(乙方同意传送)(安排好当前的工作)(响应乙方的要求)(完事后,回去)(继续做打断前的工作),2023/3/10,9,单片机的中断源及TCON,CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。,51子系列允许5个(52子系列6个)中断源:2个外部中断请求:INT0,INT1 2个片内定时器/计数器T0和T1中断请求:TF0,TF1,(TF252子系列有T2)1个串行口中断请求:TI/R
5、I,CPU识别中断申请的依据:,2023/3/10,10,定时器控制寄存器TCON(88H),TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TCON,TF0/TF1:定时器溢出中断申请标志位:=0:定时器未溢出;=1:定时器溢出申请中断,进中断后自动清零。,TR0/TR1:定时器运行启停控制位:=0:定时器停止运行;=1:定时器启动运行。,TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断),2023/3/10,11,定时器控制寄存器TCON(88H),TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TCON,IE0/IE1:外部中
6、断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。,IT0/IT1:外部中断请求的触发方式选择位:=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效.,TCON:Timer控制寄存器,低4位管理外部中断,2023/3/10,12,在CPU已经开放了外部中断允许的前提下:在INT0/INT1引脚输入一个负脉冲或低电平,TCON寄存器中的IE0/IE1标志位自动变“1”,检测到IE0/IE1变“1”后,将产生指令:LCALL 0003H(/0013H)执行中断服务程序,并将IE0/IE1标志位自动清“0”,以备下次申请。,外部中断(
7、INT0,INT1)申请过程,2023/3/10,13,PT2 PS PT1 PX1 PT0 PX0,IP,中断优先级控制寄存器IP(0B8H),2023/3/10,14,对同时发生多个中断申请时:不同优先级的中断同时申请 先高后低(很难遇到)相同优先级的中断同时申请 按序执行(很难遇到)正处理低优先级中断又接到高级别中断 高打断低正处理高优先级中断又接到低级别中断 高不理低,中断优先级处理原则,2023/3/10,15,没有同级的中断或更高级别的中断正在处理;,在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件:,正在执行的指令必须执行完最后 1个机器周期;,若正在
8、执行RETI,或正在访问IE或IP寄存器,须执行完上述指令和下一条指令以后方能响应中断。,2023/3/10,16,EA ET2 ES ET1 EX1 ET0 EX0,IE,中断允许寄存器IE(0A8H),EX0/EX1/ET1/ET0/ES 位:分别是INT0/1,Timer0/1,串行口的中断允 许控制位:=0 时禁止中断;=1 时允许中断。ET2:T2中断允许控制位(仅52子系列有)=0 时禁止中断;=1 时允许中断。EA:总的中断允许控制位(总开关):=0 时禁止全部中断;=1 时允许中断。,2023/3/10,17,中断系统硬件结构,注:各中断允许控制位=0,开关断开;=1,开关接通
9、,IE0,EX0,TF0,IE1,TF1,TI,ES,ET1,EX1,ET0,外部中断 请求0,外部中断 请求1,内部 定时器0,内部 定时器1,内部 串行口,T,R,RI,IE寄存器,EA位,IP寄存器,各单路开关,总开关,中断源标志位查询机构,高中断级中断请求,低中断级中断请求,中断入口,中断源标志位,INT0,INT1,中断入口,中断源标志位,2023/3/10,18,80C51中断系统的结构 80C51的中断系统有5个中断源(8052有 6个),2个优先级,可实现二级中断嵌套。,2023/3/10,19,80C51的中断源 一、中断源,2023/3/10,20,1、(P3.2)。可由I
10、T0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。,2023/3/10,21,2、(P3.3)。可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。,2023/3/10,22,3、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。,2023/3/10,23,4、TF1(TCON.7),片内定时/计数器T1
11、溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。,2023/3/10,24,5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。,2023/3/10,25,中断请求标志1、TCON的中断标志,IT0(TCON.0),外部中断0触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断0中断请求标志位。IT1(TCON.2),外部中断1触发方式控制位。IE1(TCON.3),外部中断1中断
12、请求标志位。TF0(TCON.5),定时/计数器T0溢出中断请求标志位。TF1(TCON.7),定时/计数器T1溢出中断请求标志位。,2023/3/10,26,2、SCON的中断标志,RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。,2023/3/10,27,一、中断允许控制 CPU对中断系统所有中断以及某个中断源的
13、开放和屏蔽是由中断允许寄存器IE控制的。,80C51中断的控制,EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断0允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA(IE.7),CPU中断允许(总允许)位。,2023/3/10,28,二、中断优先级控制 80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的。,PX0(IP.0),外部中断0优先级设定位;PT0(IP.1),定时/计数器T0优先级设定位;PX
14、1(IP.2),外部中断0优先级设定位;PT1(IP.3),定时/计数器T1优先级设定位;PS(IP.4),串行口优先级设定位;PT2(IP.5),定时/计数器T2优先级设定位。,2023/3/10,29,PX0(IPH.0),外部中断0优先级设定位;PT0(IPH.1),定时/计数器T0优先级设定位;PX1(IPH.2),外部中断0优先级设定位;PT1(IPH.3),定时/计数器T1优先级设定位;PS(IPH.4),串行口优先级设定位;PT2(IPH.5),定时/计数器T2优先级设定位。,而80C52单片机有四个中断优先级,即可实现四级中断服务嵌套。每个中断源的中断优先级由中断优先级寄存器I
15、P和IPH中的相应位的状态来规定的。,2023/3/10,30,同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:,2023/3/10,31,设置52单片机的4个中断源,使他们的优顺序为T1,INT1,INT0,T0.,IPH=0X08;PT1=1;,IP=0X40;PX1=1;,2023/3/10,32,80C51单片机的中断优先级有三条原则:,CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断
16、请求所中断。,为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。,2023/3/10,33,80C51单片机中断处理过程,一、中断响应条件 中断源有中断请求;此中断源的中断允许位为1;CPU开中断(即EA=1)。同时满足时,CPU才有可能响应中断。,中断响应条件和时间,2023/3/10,34,中断服务的进入:CPU执行程序过程中,在每个机器周期的S5P2期间,中断系统对各个中断源进行采样。这些采样值在下一个机器周期内按优先级
17、和内部顺序被依次查询。如果某个中断标志在上一个机器周期的S5P2时被置成了1,那么它将于现在的查询周期中及时被发现。接着CPU便执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。,2023/3/10,35,遇以下任一条件,硬件将受阻,不产生LCALL指令:CPU正在处理同级或高优先级中断;当前查询的机器周期不是所执行指令的最后一个机器周期。即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断;正在执行的指令为RET、RETI或任何访问IE或IP寄存器的指令。即只有在这些指令后面至少再执行一条指令时才能接受中断请求。,若由于上述
18、条件的阻碍中断未能得到响应,当条件消失时该中断标志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经有效,但未获响应,查询过程在下个机器周期将重新进行。,2023/3/10,36,中断响应时间,响应时间-从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)2个周期(长调用LCALL)(2)最长时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。
19、,2023/3/10,37,将相应的优先级状态触发器置1(以阻断后来的同级或低级的中断请求)。执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC。(P116)执行中断服务程序。,中断响应过程,中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用户编写程序来完成。,2023/3/10,38,中断返回,RETI指令的具体功能是:将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序;将相应中断优先级状态触发器清0,通知中断系统,中断服务程序已执行完毕。,注意,不能用RET指令代替RETI指令
20、。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点。,2023/3/10,39,若外部中断定义为电平触发方式,中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的低电平保持到请求获得响应时为止,不然就会漏掉;而在中断服务程序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将再次产生中断。,电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片8255的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平
21、触发方式的中断比较方便。,2023/3/10,40,若外部中断定义为边沿触发方式,在相继连续的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。即便是CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期(若晶振为12MHz时,为1微秒)。边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为80C51的中断输入。,2023/3/10,41,C51 中中断的应用,中断服务程序函数名()interrupt n using m,