您好,欢迎访问三七文档
要求:1、掌握MCS-51单片机的5个中断源2、掌握MCS-51单片机接受中断必须设置的三个寄存器TCON、IE、IP3、掌握MCS-51单片机5个中断程序的入口地址表4、会编写较简单的中断程序。第5章MCS-51的中断系统5.1中断的概念什么是中断?中断是指CPU暂时中止它正在执行的主程序,转去执行请求中断的那个外设的中断服务程序,处理完毕后,又返回主程序的过程。子程序的调用是固定的,而中断程序的执行是随机的。图5-1所示。对事件的整个处理过程,称为中断处理(或中断服务)。能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源。中断源向CPU提出的处理请求,称为中断请求(或中断申请)。进入中断→保护现场→中断处理恢复现场→中断返回中断方式优点:大大地提高了CPU的工作效率。5.2MCS-51中断系统的结构有5个中断请求源,两个中断优先级,可两级嵌套。中断系统结构示意图如下图所示。中断的过程分为以下几步1、中断源进行中断申请(MCS-51有5个中断源)INT0INT1T0T1串行口使对应的中断请求标志置12、系统接受中断申请MCS-51系统接受中断申请受4个特殊功能寄存器控制TCON定时控制寄存器SCON串行口控制寄存器IE中断使能寄存器IP中断优先权寄存器3、转去执行中断服务程序(通过中断程序入口表)P454、中断返回RETI中断请求标志位串行口控制寄存器中断请求标志位中断允许寄存器中断优先级寄存器外部中断申请0外部中断申请1定时器/计数器0定时器/计数器1串行口发送/接收5.3中断请求源五个中断请求源:(1)INT0*—外部中断请求0,由引脚P3.2INT0*输入,中断请求标志为IE0。(2)INT1*—外部中断请求1,由引脚P3.3INT1*输入,中断请求标志为IE1。(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。(5)串行口中断请求,中断请求标志为TI或RI。由特殊功能寄存器TCON和SCON的相应位锁存。中断程序入口地址五个中断程序的入口地址为:外中断0(INT0):0003H定时器0(T0):000BH外中断1(INT1):0013H定时器1(T1):001BH串行口(RI/TI):0023H5.4与中断有关的特殊功能寄存器SFRMCS-51共有21个特殊功能寄存器SFR,与中断有关的SFR共有4个,它们为定时器控制寄存器TCON、串行口控制寄存器SCON、中断允许寄存器IE、中断优先权寄存器IP。简下表。寄存器名称D7D6D5D4D3D2D1D0TCON(88H)TF1TF0IE1IT1IE0IT0定时器控制寄存器位地址8FH8EH8DH8CH8BH8AH89H88HSCON(98H)TIRI串行口控制寄存器位地址9FH9EH9DH9CH9BH9AH99H98HIE(A8H)EAESET1EX1ET0EX0中断允许寄存器位地址AFHACHABHAAHA9HA8HIP(B8H)PSPT1PX1PT0PX0中断优先级寄存器位地址BCHBBHBAHB9HB8H1、TCON为定时器/计数器的控制寄存器字节地址为88H。包含:(1)T0和T1的溢出中断请求标志位TF1和TF0(2)外部中断请求标志位IE1与IE0。格式如下所示:各标志位的功能:(1)IT0—选择外部中断请求0为跳沿触发方式还是电平触发方式:IT0=0,为电平触发方式。IT0=1,为跳沿触发方式。可由软件置“1”或清“0”。(2)IE0—外部中断请求0的中断请求标志位。IE0=0,无中断请求。IE0=1,外部中断0有中断请求。当CPU响应该中断,转向中断服务程序时,由硬件清“0”IE0。(3)IT1—外部中断请求1为跳沿触发方式还是电平触发方式,意义与IT0类似。(4)IE1—外部中断请求1的中断请求标志位,意义与IE0类似。(5)TF0—T0溢出中断请求标志位。T0计数后,溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断时,硬件自动清“0”TF0,TF0也可由软件清0。(6)TF1—T1的溢出中断请求标志位,功能和TF0类似。TR1、TR02个位与中断无关。当MCS-51复位后,TCON被清0,则CPU关中断,所有中断请求被禁止。2、SCON为串行口控制寄存器字节地址为98H。串行口的发送中断和接收中断的中断请求标志TI和RI,格式如下:各标志位的功能:(1)TI—发送中断请求标志位。串口每发送完一帧串行数据后,硬件自动置“1”TI。必须在中断服务程序中用软件对TI标志清“0”。(2)RI—接收中断请求标志位。串口接收完一个数据帧,硬件自动置“1”RI标志。必须在中断服务程序中用软件对RI标志清“0”。3、中断允许寄存器IECPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。字节地址为A8H,可位寻址。格式如下:IE对中断的开放和关闭为两级控制总的开关中断控制位EA(IE.7位):EA=0,所有中断请求被屏蔽。EA=1,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。IE中各位的功能如下:(1)EA:中断允许总控制位0:CPU屏蔽所有的中断请求(CPU关中断);1:CPU开放所有中断(CPU开中断)。(2)ES:串行口中断允许位0:禁止串行口中断;1:允许串行口中断。(3)ET1:定时器/计数器T1的溢出中断允许位0:禁止T1溢出中断;1:允许T1溢出中断。(4)EX1:外部中断1中断允许位0:禁止外部中断1中断;1:允许外部中断1中断。(5)ET0:定时器/计数器T0的溢出中断允许位0:禁止T0溢出中断;1:允许T0溢出中断。(6)EX0:外部中断0中断允许位。0:禁止外部中断0中断;1:允许外部中断0中断。MCS-51复位后,IE清0,所有中断请求被禁止。若使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。改变IE的内容,可由位操作指令来实现,即:SETBbit;CLRbit。例5-1若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段(1)用位操作指令来编写如下程序段:CLRES;禁止串行口中断CLREX1;禁止外部中断1中断CLREX0;禁止外部中断0中断SETBET0;允许定时器/计数器T0中断SETBET1;允许定时器/计数器T1中断SETBEA;CPU开中断(2)用字节操作指令来编写:MOVIE,#8AH或者用:MOV0A8H,#8AH;A8H为IE寄存器字节地址4、中断优先级寄存器IP两个中断优先级,可实现两级中断嵌套。如图5-6示。可归纳为下面两条基本规则:(1)低优先级可被高优先级中断,反之则不能。(2)同级中断不会被它的同级中断源所中断。若CPU正在执行高优先级的中断,则不能被任何中断源所中断。中断优先级寄存器IP,其字节地址为B8H。IP各个位的含义:(1)PS——串行口中断优先级控制位1:高优先级中断;0:低优先级中断。(2)PT1——定时器T1中断优先级控制位1:高优先级中断;0:低优先级中断。(3)PX1——外部中断1中断优先级控制位1:高优先级中断;0:低优先级中断。(4)PT0——定时器T0中断优先级控制位1:高优先级中断;0:低优先级中断。(5)PX0——外部中断0中断优先级控制位1:高优先级中断;0:低优先级中断。在同时收到几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。查询顺序如下:中断源中断级别外部中断0最高T0溢出中断外部中断1T1溢出中断串行口中断最低例5-2设置IP寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级。(1)用位操作指令SETBPX0;2个外中断为高优先级SETBPX1CLRPS;串口为低优先级中断CLRPT0;2个定时器/计数器低优先级中断CLRPT1(2)用字节操作指令MOVIP,#05H或:MOV0B8H,#05H;B8H为IP寄存器的字节地址5.5响应中断请求的条件一个中断请求被响应,需满足以下4个必要条件:(1)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。(2)IE寄存器中的中断总允许位EA=1。(3)该中断源的中断允许位=1,即该中断没有被屏蔽。(4)无同级或更高级中断正在被服务。当前指令执行结束吗?有满足4个必要条件的中断申请吗?YNN系统硬件自动调用如下指令:LCALL对应中断程序入口地址,图2-4-4中断响应过程简图(在每个机器周期最后状态执行)刚才执行的指令是RETI或是访问IP、IE的指令吗?执行下一条指令NY相应的中断程序执行结束后返回主程序断点处Y响应中断时首先由硬件自动生成一条长调用指令:LCALLaddr16接着就由CPU执行该指令,将PC的内容压入堆栈以保护断点,再将中断入口地址装入PC。各中断源服务程序的入口地址是固定的,如下所示:中断源入口地址外部中断00003H定时器/计数器T0000BH外部中断10013H定时器/计数器T1001BH串行口中断0023H中断响应是有条件的,遇到下列三种情况之一时,中断响应被封锁:(1)CPU正在处理同级的或更高优先级的中断。(2)所查询的机器周期不是所当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应。(3)正在执行的指令是RETI或是访问IE或IP的指令。需要再去执行完一条指令,才能响应新的中断请求。如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。5.6外部中断的响应时间外部中断的最短的响应时间为3个机器周期:(1)中断请求标志位查询占1个机器周期。(2)子程序调用指令LCALL转到相应的中断服务程序入口,需2个机器周期。外部中断响应的最长的响应时间为8个机器周期:(1)发生在CPU进行中断标志查询时,刚好是开始执行RETI或是访问IE或IP的指令,则需把当前指令执行完再继续执行一条指令后,才能响应中断,最长需2个机器周期。(2)接着再执行一条指令,按最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。(3)加上硬件子程序调用指令LCALL的执行,需要2个机器周期。所以,外部中断响应最长时间为8个机器周期。如果已在处理同级或更高级中断,响应时间无法计算。在一个单一中断的系统里,MCS-51单片机对外部中断请求的响应的时间总是在3~8个机器周期之间。5.7外部中断的触发方式选择两种触发方式:电平触发方式和跳沿触发方式。外中断的采样:INT0、INT1•只有外中断源才有采样问题•MCS-51单片机在每个机器周期的S5P2对外中断请求引脚(P3.2、P3.3)采样,若有中断请求,则置位IE0和IE1。•由于每个机器周期只采样一次,故为确保采样,在P3.2、P3.3引脚上的信号电平至少保持1个机器周期。两种触发方式:电平触发方式和跳沿触发方式。5.7.1电平触发方式•TCON.0=IT0=0(或TCON.2=IT1=0)时•若CPU采样到INT0或INT1为低电平(该电平来自外部硬件,CPU无法控制)即可申请中断。在CPU响应前引脚必须保持低电平,但若低电平保持时间过长,在执行了一次中断程序后仍未撤销,还会引起中断。故在采用电平触发情况时,在这次中断服务程序执行完之前,引脚上必须变成高电平。。5.7.2跳沿触发方式•边沿触发方式:TCON.0=IT0=1(或TCON.2=IT1=1)时•CPU在S5P2采样,如果在相邻的两次采样中,第一次采到引脚=1,第二次采样引脚=0则置位IE0或IE1,申请中断。IE0和IE1状态可一直保持,直到CPU响应中断。进入中断服务程序后,IE0和IE1有硬件自动清0。所以该方式适合于以脉冲形式输入的外部中断请求。5.8中断请求标志位的撤消1、中断请求被响应后。硬件会自动清TF0或TF1或IE0、IE1。2、中断请求标志位TI、RI,中断请求被响应后,只能用软件清除CLRTI;清TI标志位CLRRI;清RI标志位除了标志位清“0”之外,还需在中断响
本文标题:接口技术—中断.
链接地址:https://www.777doc.com/doc-2377582 .html