版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1中断系统教学目的理解中断的概念理解中断系统的结构和类型掌握中断系统的中断响应过程掌握外部中断的使用2023/2/41本章内容中断的概念中断系统的内部结构和控制寄存器中断系统的响应过程中断仿真实例2023/2/4289C52的中断系统
3.1.189C52的中断系统结构一、中断的概念
CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);
CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。2023/2/43MCS-51单片机的中断系统结构执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回2023/2/44引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。2023/2/45
随着计算机技术的深入应用,应用者发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:
分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。2023/2/46二、89C52中断系统的结构
89C52的中断系统有6个中断源,2个优先级,可实现二级中断嵌套
。T2中断2023/2/47中断源的控制通过设置允许中断寄存器IE、中断优先级寄存器IP的控制字实现。EA×ET2ESET1EX1ET0EX0(MSB)(LSB)IE:允许中断寄存器控制字EA(IE.7)总允许位。若EA=0,禁止一切中断。若EA=1,每个中断源允许否,则分别由各自的允许位确定。_(IE.6)保留位ET2(IE.5)定时器2中断允许位。若ET2=0,禁止定时器2中断。ES(IE.4)串行口中断允许位。若ES=0,禁止串行口中断。ET1(IE.3)定时器1中断允许位,若ET1=0,禁止定时器1中断。EX1(IE.2)外部中断1允许位,若EX1=0,禁止外部中断1ET0(IE.1)定时器0中断允许位,若ET0=0,禁止定时器0中断。EX0(IE.0)外部中断0允许位,若EX0=0,禁止外部中断02023/2/483.1.289C52的中断源
一、中断源(外部引脚引入中断)2023/2/49
1、INT0(P3.2)外中断0。申请信号的有效性可由管理寄存器中的IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)硬件置1,向CPU申请中断。2023/2/410
2、INT1(P3.3)外中断1。申请信号的有效性可由管理寄存器中的IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)硬件置1,向CPU申请中断。2023/2/411
3、T0中断(TF0TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,硬件置位TF0,并向CPU申请中断。2023/2/412
4、T1中断(TF1TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。2023/2/413
5、串行口中断:RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。
2023/2/414T2中断(TF2T2CON.7),片内定时/计数器T2溢出中断请求标志,当定时/计时器T2发生溢出时,置位TF2,并向CPU申请中断。2023/2/415二、中断请求标志寄存器(定时/计数器控制寄存器)1、TCON的中断标志IT0(TCON.0),外部中断0触发方式控制位。当IT0=0时,为电平触发方式,低电平有效。当IT0=1时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断0中断请求标志位。CPU响应后自动清除IT1(TCON.2),外部中断1触发方式控制位。IE1(TCON.3),外部中断1中断请求标志位。CPU响应后自动清除TF0(TCON.5),定时/计数器T0溢出中断请求标志位。自动置位TF1(TCON.7),定时/计数器T1溢出中断请求标志位。自动置位
2023/2/416TF1,TF0,IE1,IE0在有中断请求时硬件自动置“1”,其中,TF1,TF0在中断被响应后硬件自动清零。IE1,IE0在外部中断为跳变触发方式时,被响应后由硬件自动清零,若为电平触发方式,响应后不会自动清零。2023/2/417IE0和IE1类似,IT0和IT1类似以IT1为例:IT1=1(软件置1)时,则外部中断为跳变触发方式。在每个机器周期采样/INT1(P3.3)的输入电平,若一个周期内为高电平,下一个周期为低,则硬件置IE1为“1”,提出中断申请;
IT1=0时,则/INT1为电平触发,即是通过检测P3.3的输入电平(低电平)来触发的,此时IE1由硬件置1。即只要输入到/INT1的外部中断源为低电平,且IT1=0,则/INT1就已经向CPU提出中断申请,它应始终保持低电平,直到中断被响应,且应在中断返回前变回高电平,否则会再次中断。2023/2/418外部中断(INT0,INT1)触发方式的确定及注意事项若外部信号为一个频率信号,要求每个频率均有中断,外部中断应定义为跳变式触发。若外部中断要求为低电平时申请中断,则外部中断应定义为低电平触发方式。在电平触发方式中,CPU响应中断时,不会消除IE1标志。
注:低电平持续时间<中断服务程序执行时间
否则会再次引发中断。2023/2/419若外部中断定义为电平触发方式,中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的低电平保持到请求获得响应时为止,不然就会漏掉;而在中断服务程序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将再次产生中断。
电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片8255的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。2023/2/420
若外部中断定义为边沿触发方式,在相继连续的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。即便是CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期(若晶振为12MHz时,为1微秒)。
边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为89C52的中断输入。2023/2/421定时器T2中断见后续2023/2/4222、SCON的中断标志RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。
2023/2/423清TI:在中断服务程序中写入:CLRTI或ANLSCON,#0FDH清RI:在中断服务程序中写入:CLRRI或ANLSCON,#0FEH
2023/2/424一、中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。3.1.389C52中断的控制
EX0(IE.0),外部中断0允许位;为1,允许,为0,禁止ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断1允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;ET2(IE.5),
定时/计数器T2中断控制位EA(IE.7),CPU中断允许(总允许)位。2023/2/425
系统复位后,IE各位均为0,即禁止所有中断。IE寄存器可进行字节寻址,也可进行位寻址。例:允许T0中断,其他所有中断均禁止1)SETBET0
CLREX1 CLRET1CLREX0 CLRESCLRET2SETBEA2)MOVIE,#82H2023/2/426二、中断优先级控制
89C52单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的
。PX0(IP.0),外部中断0优先级设定位,1为高,0为低;PT0(IP.1),定时/计数器T0优先级设定位;PX1(IP.2),外部中断1优先级设定位;PT1(IP.3),定时/计数器T1优先级设定位;PS
(IP.4),串行口优先级设定位;PT2(IP.5),定时/计数器T2优先级设定位。2023/2/427复位后,IP各位均为0,即所有的都是低优先级中断,IP可进行字节寻址和位寻址。例:定义外部中断源INT0为最高级,其他为低级,初始化如下1)SETBPX0 CLRPT0CLRPX1CLRPT1CLRPSCLRPT22)MOVIP,#01H2023/2/428
同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:T2的优先级最低,它的入口地址为002BH2023/2/42989C52单片机的中断优先级有三条原则:CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。同级n个中断源同时来到时,依据查询规则:/INT0,T0,/INT1,T1,串行口,T2正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。2023/2/430通常优先级的确定:高级:T0,T1低级:/INT0,/INT1,串行口如此可保证定时/计数器的精度2023/2/4313.1.489C52单片机中断处理过程
一、中断响应条件中断源有中断请求;此中断源的中断允许位为1;
CPU开中断(即EA=1)。同时满足时,CPU才有可能响应中断。3.1.4.1中断响应条件和时间
2023/2/432中断服务的进入:
CPU执行程序过程中,在每个机器周期的S5P2期间,中断系统对各个中断源进行采样。这些采样值在下一个机器周期内按优先级和内部顺序被依次查询。如果某个中断标志在上一个机器周期的S5P2时被置成了1,那么它将于现在的查询周期中及时被发现。接着CPU便执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。
2023/2/433遇以下任一条件,硬件将受阻,不产生LCALL指令:CPU正在处理同级或高优先级中断;当前查询的机器周期不是所执行指令的最后一个机器周期。即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断;正在执行的指令为RETI或任何访问IE或IP寄存器的指令。即只有在这些指令后面至少再执行一条指令时才能接受中断请求。
中断查询在每个机器周期中重复执行。若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经有效,但未获响应,查询过程在下个机器周期将重新进行。2023/2/434二、中断响应时间3.1.4.2响应时间--从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:
1个周期(查询)+2个周期(长调用LCALL)(2)最长时间若当前指令是RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。2023/2/435将相应的优先级状态触发器置1(以阻断后来的同级或低级的中断请求)。根据中断源类别,在硬件控制下内部自动形成LCALL指令,即把程序计数器PC的内容压入堆栈保存(但不自动保存PSW内容),再将相应的中断服务程序的入口地址送入PC。程序转向该中断的矢量地址,以转至中断服务程序对应的入口地址,执行中断服务程序。中断响应过程
中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用户编写程序来完成。
2023/2/436中断源入口地址:/INT0:0003HT0:000BH/INT1:0013HT1:001BH串行口中断:0023HT2:002BH2023/2/4373.1.4.3中断处理响应后从中断服务程序的第一条指令开始到返回指令过程如下:关中断-保护现场-开中断-中断服务-关中断-恢复现场-开中断-中断返回-断点地址由堆栈弹入PC保护现场:主程序用到的,中断服务程序也要用到的寄存器都要保护起来,如PSW、工作寄存器、专用寄存器
保护现场和恢复现场时,为不使现场信息受到破坏,则应关中断,使CPU暂不响应其他中断2023/2/438
3.1.4.4中断请求撤销CPU响应中断请求,转向中断服务程序执行,在其执行中断返回指令(RETI)之前,中断请求信号必须撤除,否则将会再一次引起中断而出错。中断请求撤除的方式有三种:1.由单片微机内部硬件自动复位。 对于T0、T1的溢出中断和采用跳变触发方式的外部中断请求,在CPU响应中断后,由内部硬件自动清除中断标志TF0和TF1、IE0和IE1,而自动撤除中断请求。5.2中断响应过程2023/2/4392.采用软件清除中断请求对于串行中断请求和定时/计数器2的溢出和捕获中断请求,在CPU响应中断后,必须在中断服务程序中通过软件清除RI、TI、TF2和EXF2这些中断标志,才能撤除中断,即硬件置位,软件清除。3.软硬件结合的方法对中断请求的撤除采用电平触发方式的外部中断请求,中断撤销是自动的,但中断请求信号的低电平可能继续存在,在以后机器周期采样时又会把已清零的IE0、IE1标志重新置1,再次申请中断。为保证在CPU中断响应后、执行返回指令前,撤除中断请求,应该采取措施保证在中断响应后把中断请求信号从低电平强制变为高电平。5.2中断响应过程2023/2/440
3.1.4.5中断返回RETI指令的具体功能是:将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序;将相应中断优先级状态触发器清0,通知中断系统,中断服务程序已执行完毕。
注意,不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点。2023/2/441注:1)中断服务程序的最后一条指令必须是RETI2)复位是单片机最优先的中断3)中断入口地址处安排一条跳转指令,以跳到用户的服务程序入口,中断服务程序也应放在0030H后。4)在主程序开始对中断进行初始化5)中断时硬件自动保护断点,但不自动保护现场,软件人员要保护现场,恢复现场。2023/2/442
ORG0000H LJMPMIN ORG0003H LJMPINT0 ORG0030HMIN:主程序
ORG0100HINT0:中断服务程序2023/2/443例:MCS-51的单步操作利用外部中断引脚上的低电平实现原理:中断处理程序中有RETI,所以响应后,执行完RETI须返回主程序执行一条指令,然后才能响应新的中断。过程:只要引脚平时为低电平,且编程为电平触发,则主机响应中断,保存此时断点地址,进入中断服务程序,并在该程序中停留,直到外部中断引脚上收到一个脉冲,才弹出断点地址,返回主程序执行一条指令,而后再次进入中断,周而复始。2023/2/444假设采用/INT0来实现单步操作(*)初始化程序 CLRIT0 SETBEX0 SETBEA SETBPX0中断服务程序:
…… WAIT1:JNBP3.2,WAIT1 WAIT2:JBP3.2,WAIT2 RETI要求正脉冲的高电平应持续>=三个机器周期2023/2/4453.4.5Cx51中断函数Cx51编译器支持在C源程序中直接开发中断程序函数定义语法如下:
返回值函数名interruptn其中:n的对应关系为
0:外部中断0;1:定时器/计数器02:外部中断1;3:定时器/计数器14:串行口中断;5:定时器/计数器22023/2/4463.4.6寄存器组切换典型的C51程序默认使用寄存器组0,寄存器组1,2,3最好在中断服务程序中使用,以避免用堆栈保存和恢复寄存器。寄存器组的改变由RS1和RS0决定。运行一个中断任务时,采用不同的寄存器组,同时把累加器和寄存器B压栈。基本上,上下文切换包括两个进栈指令(Acc,B)和一个简单的位变化指令(RS1,RS0)2023/2/447使用中断函数注意的问题1.在设计时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在程序中。2.中断函数不能传递参数。3.中断函数没有返回值。4.中断函数调用其他函数,要保证使用相同的寄存器组,否则出错。5.中断函数使用浮点运算要保存浮点寄存器的状态。5.2中断响应过程2023/2/448中断系统应用举例例:用单片机设计一个十字路口交通灯模拟控制系统,要求东西、南北两个方向都通行30S,警告5S,禁止35S,同时要考虑东西、南北两个方向出现异常情况,出现异常情况时该方向通行60S,原理图见教材167页用12只发光二极管模拟十字交通灯控制。每个路口红、绿、黄三个,南北方向的红、绿、黄发光二极管与单片机的P1.0、P1.1、P1.2相连。东西方向的红、绿、黄发光二极管与单片机的P1.4、P1.5、P1.6相连。外中断0和外中断1接开关模拟异常情况发生2023/2/449红黄绿绿黄红红黄绿红黄绿D1D2D3D4D5D6D7D8D9D10D11D12北南西东P1.0P1.1P1.2P1.0P1.1P1.2P1.4P1.5P1.6P1.6P1.5P1.42023/2/450交通灯正常运行时,可分为4种状态:状态1,东西方向绿灯,南北方向红灯20S;状态2,东西方向黄灯,南北方向红灯3S;状态3,南北方向绿灯,东西方向红灯20S;状态4,南北方向黄灯,东西方向红灯3S。东西方向发生异常情况时,东西通行,南北禁止,东西方向绿灯闪,南北方向红灯闪60S,南北方向发生异常情况时,南北通行,东西禁止,南北方向绿灯闪,东西方向红灯闪60S。主程序中实现交通灯正常运行过程,两种异常情况用外中断0和外中断1管理,外接开关模拟异常情况发生,在中断服务程序中实现异常处理,主程序开放中断0和外中断1,设置边沿触发方式。500MS信号由定时/计数器0定时50MS,循环10次产生,定时/计数器0采用查询方式2023/2/451
汇编语言程序:
ORG0000H;复位时程序起始地址LJMPMAINORG0003H;外中断0入口LJMPINT_0ORG0013H;外中断1入口LJMPINT_1ORG0030H;主程序MAIN:MOVSP,#50HMOVTMOD,#00000001BMOVIE,#10000101BMOVTCON,#00000101BSTART:;状态1,东西方向绿灯亮,南北方向红灯亮20SMOVP1,#001000001MOVR3,#40L1:LCALLDEL500MSDJNZR3,L12023/2/452
;状态2,东西方向黄灯亮,南北方向红灯亮3SMOVP1,#01000001BMOVR3,#6L2:LCALLDEL500MSDJNZR3,L2;状态3,南北方向绿灯亮,东西方向红灯亮20S。MOVP1,#00010010BMOVR3,#40L3:LCALLDEL500MSDJNZR3,L3;状态4,南北方向黄灯亮,东西方向红灯亮3S。MOVP1,#00010100BMOVR3,#6L4:LCALLDEL500MSDJNZR3,L4SJMPSTART
2023/2/453
;东西方向异常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东科学技术职业学院《数据新闻理论与实践》2023-2024学年第一学期期末试卷
- 广东酒店管理职业技术学院《英语三》2023-2024学年第一学期期末试卷
- 广东金融学院《金融建模与量化分析》2023-2024学年第一学期期末试卷
- 广东金融学院《中文信息处理技术》2023-2024学年第一学期期末试卷
- 广东环境保护工程职业学院《西方舞蹈史》2023-2024学年第一学期期末试卷
- 广东东软学院《酒店客户管理实验》2023-2024学年第一学期期末试卷
- 广东创新科技职业学院《故事医学》2023-2024学年第一学期期末试卷
- 《建筑材料管理》课件
- 小学生课件插花图片
- 赣南医学院《即兴弹唱》2023-2024学年第一学期期末试卷
- 《销售主管竞聘》课件
- 青少年型青光眼个案护理
- 2024年形式与政策论文
- 机电设备故障诊断与维修(高职)全套教学课件
- 建设银行新员工培训方案
- 2024年绿色生产培训资料
- 超市配送方案
- 医院药房年终工作总结
- 整体爬升钢平台模板工程技术规程
- 2024年医疗管理趋势展望挑战与机遇培训课件
- 内镜下食管静脉曲张套扎术围手术期护理课件
评论
0/150
提交评论