您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > MCS51单片机原理课件(第四章)
4.1中断的概念4.2中断系统的结构4.3中断请求与中断控制4.4中断响应4.5中断响应时间4.6外部中断的触发方式选择4.7中断请求的撤消4.8中断服务程序的设计4.9处理外部中断举例4.10多中断源系统第4章MCS-51的中断系统4.1中断的概念中断是指在CPU正在处理某项事务的时候,如果外界或内部发生了紧急事件,要求CPU暂停正在运行的工作转而去处理这个紧急事件,待处理完后再回到原来被中断的地方,继续原来被打断了的工作的过程。中断是计算机中一个很重要的概念,中断技术的引入使计算机的发展和应用都大大地推进了一步。可以说:没有中断技术,就没有目前计算机的广泛应用。中断流程:比方说某人看书执行主程序日常事务电话铃响中断信号INT=0中断请求暂停看书暂停执行主程序中断响应书中作记号当前PC入栈保护断点电话谈话执行中断程序中断服务继续看书返回主程序中断返回图4--1中断服务系统对中断事件的处理过程中断源产生中断的请求源称为中断源.中断请求中断源向CPU提出处理请求保护断点把当前PC值压栈(硬件自动完成)保护现场用户把需要保护的寄存器、累加器、标志位等信息压栈(需要用户编程实现)恢复现场中断服务完成后,恢复有关数据。中断返回从堆栈中弹出断点地址到PC,继续执行被中断的程序。4.2中断系统的结构MCS-51的中断系统共有5个中断请求源,具有两个中断优先级,可实现两级中断服务程序嵌套。用户可通过软件来屏蔽所有的中断请求或其中某个中断请求,也可用软件使CPU接收中断请求;每个中断源的中断优先级别均可通过软件设置。MCS-51的中断系统结构如图4—2所示。图4-2中断系统的结构框图4.3中断请求与中断控制中断源(MCS-51共有5个中断请求源)1.外部中断源中断请求标志INT0---由P3.2端口线引入,低电平或下降沿引起。IE0INT1---由P3.3端口线引入,低电平或下降沿引起。IE12.内部中断源(如图4-2所示)T0:定时/计数器0中断,由T0回零溢出引起。TF0T1:定时/计数器1中断,由T1回零溢出引起。TF1TI/RI:串行I/O中断,完成一帧字符发送/接收引起。TI/RI这5个中断源的请求标志位位于TCON和SCON中1.TCON寄存器TCON是定时器/计数器0和1(T0、T1)的控制寄存器,同时也用来锁存T0、T1的溢出中断申请标志和外部中断请求标志。TCON位地址TF1TR1TF0TR0IE1IT1IE0IT08FH8DH8BH8AH89H88HD0D1D2D3D4D5D6D7IT0和IT1选择外部中断请求INT0和INT1为跳沿触发或电平触发方式的控制位其值为1:下降沿触发为0:电平触发IE0和IE1外部中断INT0和INT1的中断请求标志位TF0和TF151片内定时器/计数器T0和T1的中断请求标志位。当T0、T1的最高位产生溢出时将向CPU申请中断。2SCON寄存器SCON为串行口控制寄存器,其中的低2位用作串行口中断请求标志。TI为串行口的数据发送中断请求标志位。RI为串行口的数据接收中断请求标志位。SCON位地址TIRI99H98HD0D1D2D3D4D5D6D7中断控制1.中断允许寄存器IE(A8H)IE在特殊功能寄存器中,字节地址A8H,位地址分别是A8H~AFH。IE控制CPU对中断源总的开放或禁止以及每个中断源是否允许中断。其格式如图4-3所示。2.中断优先寄存器IP(B8H)IP在特殊功能寄存器中,字节地址为B8H,位地址分别是B8H~BFH,IP用来锁存各中断源优先级的控制位,其格式如图4-4所示。0:关INT中断01:开INT中断00:关T中断1:开T中断001:开T中断0:关T中断0:关INT中断1:开INT中断11110:关T中断1:开T中断221:开所有中断0:关所有中断1:开串行口中断0:关串行口中断位地址IEEAAFADETACESABETAAEXA9ETA8EX00112图4-3中断允许寄存器IE图4-4中断优先寄存器IP返回本节中断优先权1.当同时有多个中断请求信号,先响应优先级别高的中断请求。2.高优先级中断请求信号可中断低优先级中断服务。反之则不能3.同级别的中断之间不能相互被中断。一旦一个中断被设置成高级中断,则它在响应过程中将不会被其他任何中断请求所中断。日常事务程序中断服务程序1中断服务程序2低优先级高优先级4.当CPU同时收到多个同级别的中断请求时,哪个中断被响应将取决于内部硬件的查询顺序。见书58页表4.4中断响应一个中断源的中断请求要被响应,需要满足以下条件:1.该中断源发出了中断请求2.CPU开中断,即中断总允许位EA=13.申请中断的中断源的中断允许位=1(即该中断未被屏蔽)4.无同级或更高级中断的中断服务程序正在被执行。单片机在每个机器周期的S5P2期间,顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断处理。中断得到响应后自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断地址装入程序计数器PC,使程序转向中断向量地址单元中去执行相应的中断服务程序。各个中断源在程序存储器中的中断入口地址如下:中断源入口地址(ROM中)INT0(外部中断0)0003HTF0(T0中断)000BHINT1(外部中断1)0013HTFl(T1中断)001BHRI/TI(串行口中断)0023H比如对于外部中断1的响应,系统自动产生的长调用指令为:LCALL0013H由于各个中断入口地址相隔甚近,不便于存放各个较长的中断服务程序,故通常在中断入口地址开始的二三个单元中,安排一条转移类指令,以转入到安排在那儿的中断服务程序。比如对外中断1的响应,我们可以在ROM中地址为0013H的单元中放入一条长调用指令:LCALL3000H(转移到用户所编制的中断服务程序中去下列任何一种情况存在时中断申请将被封锁:(1)CPU正在执行一个同级或高一级的中断服务程序。(2)当前正在执行的那条指令还未执行完。(3)当前正在执行的指令是RETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。返回本节4.5中断响应时间在不同的情况下CPU响应中断的时间是不同的。以外部中断为例,INT0和INT1引脚的电平在每个机器周期的S5P2时刻经反相锁存到TCON的IE0和IE1标志位,CPU在下一个机器周期才会查询到新置入的IE0和IE1,如果满足响应条件,CPU响应中断时要用两个机器周期执行一条硬件长调用指令“LCALL”,由硬件完成将中断向量地址装入程序计数器PC中,使程序转入中断向量入口。因此,从产生外部中断到开始执行中断程序至少需要三个完整的机器周期。外部中断响应所需要的最长时间为8个机器周期。该情况发生在中断标志查询时,刚好是执行RETI或是在访问IE和IP的指令,执行这些指令最长时间为2个周期,然后按照规定,需要再执行一条其他的指令,按最长指令计算为4个周期(乘除法),再加上硬件子程序调用指令LCALL为2个机器周期,总共8个机器周期。所以,在单一的中断系统里,中断响应时间在3—8个机器周期之间。4.6外部中断的触发方式选择电平触发方式此方式下,外部中断申请触发器的状态随外部中断输入线的电平变化而变化,能提高CPU对外部中断请求的响应速度。适合于中断服务程序能清除外部中断请求源的情况。跳沿触发方式中断申请标志不会丢失,适合以负脉冲形式输入的外部中断请求。4.7中断请求的撤消中断源提出中断申请,在CPU响应此中断请求后,该中断源之中断请求在中断返回之前应当撤除,以免引起重复中断,被再次响应。对于边沿触发的外部中断,CPU在响应中断后由硬件自动清除相应的中断请求标志IE0和IE1。对于定时器溢出中断,CPU在响应中断后就由硬件消除了相应的中断请求标志TF0、TF1。对于串行口中断,CPU在响应中断后并不自动清除中断请求标志RI或TI,因此必须在中断服务程序中用软件来清除中断请求标志RI或TI。即:CLRTICLRRI对于电平触发的外部中断,除了硬件自动清除相应的中断请求标志外,中断服务程序还应该能清除外部中断请求源,即把请求源强制改为高电平。例书61页图4.84.8中断服务程序的设计中断程序设计的基本任务:1.设置中断允许控制器IE2.设置中断优先级寄存器IP3.对外部中断,还要设置触发方式IT1,IT04.编写中断服务程序,处理中断请求对于前面3点,应该在主程序的初始化程序段中完成采用中断时的程序结构ORG0000HLJMPMAINORG中断入口地址LJMPINTMAIN:主程序INT:中断程序中断服务程序的流程关中断现场保护开中断中断处理关中断恢复现场开中断中断返回INT:CLREA;CPU关中断PUSHPSW;保护现场PUSHASETBEA;CPU开中断{中断处理程序段}CLREA;CPU关中断POPAPOPPSW;恢复现场SETBEA;开中断RETI;中断返回4.9处理外部中断举例例:要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。单片机INT0P1.01+5V1.跳变触发:每次跳变引起一次中断请求。ORG0000H;复位入口AJMPMAINORG0003H;中断入口AJMPPINT0ORG0100H;主程序MAIN:MOVSP,#40H;设栈底SETBEA;开总允许开关SETBEX0;开INT0中断SETBIT0;负跳变触发中断H:SJMPH;执行其它任务ORG0200H;中断服务程序PINT0:CPLP1.0;改变LEDRETI;返回主程序1.软件等待按键释放。2.硬件清除中断信号。2.电平触发:避免一次按键引起多次中断响应ORG0000H;复位入口AJMPMAINORG0003H;中断入口AJMPPINT0ORG0100H;主程序MAIN:MOVSP,#40H;设栈底SETBEA;开总允许开关SETBEX0;开INT0中断CLRIT0;低电平触发中断H:SJMPH;执行其它任务ORG0200H;中断服务程序PINT0:CPLP1.0;改变LEDWAIT:JNBP3.2,WAIT;等按键释放RETI;返回主程序当外部中断源多于中断输入引脚时,可采取以下措施:1.用定时器计数输入信号端T0、T1作外部中断入口引脚2.用串行口接收端RXD作外部中断入口引脚3.用一个中断入口接受多个外部中断源,并加入中断查询电路。4.10多中断源系统
本文标题:MCS51单片机原理课件(第四章)
链接地址:https://www.777doc.com/doc-3175621 .html