2020/2/161中断系统2020/2/162教学目的理解中断的概念理解中断系统的结构和类型掌握中断系统的中断响应过程掌握外部中断的使用2020/2/163本章内容中断的概念中断系统的内部结构和控制寄存器中断系统的响应过程中断仿真实例2020/2/16489C52的中断系统5.189C52的中断系统结构一、中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。2020/2/165MCS-51单片机的中断系统结构执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回2020/2/166引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。主程序A响应返回断点RETI……中断服务程序B2020/2/167随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。2020/2/168二、89C52中断系统的结构89C52的中断系统有6个中断源,2个优先级,可实现二级中断嵌套。T2中断EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源2020/2/1695.289C52的中断源一、中断源EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源2020/2/16101、/INT0(P3.2)外中断0。可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)硬件置1,向CPU申请中断。EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源2020/2/1611EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源2、/INT1(P3.3)外中断1。可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)硬件置1,向CPU申请中断。2020/2/1612EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源3、T0中断(TF0TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,硬件置位TF0,并向CPU申请中断。2020/2/1613EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源4、T1中断(TF1TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。2020/2/1614EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源5、串行口中断:RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。2020/2/1615T2中断(TF2T2CON.7),片内定时/计数器T2溢出中断请求标志,当定时/计时器T2发生溢出时,置位TF2,并向CPU申请中断。2020/2/1616二、中断请求标志寄存器(*)1、TCON的中断标志IT0(TCON.0),外部中断0触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断0中断请求标志位。IT1(TCON.2),外部中断1触发方式控制位。IE1(TCON.3),外部中断1中断请求标志位。TF0(TCON.5),定时/计数器T0溢出中断请求标志位。TF1(TCON.7),定时/计数器T1溢出中断请求标志位。2020/2/1617TF1,TF0,IE1,IE0在有中断请求时硬件自动置“1”,其中,TF1,TF0在中断被响应后硬件自动清零。IE1,IE0在外部中断为跳变触发方式时,被响应后由硬件自动清零,若为电平触发方式,响应后不会自动清零。2020/2/1618IE0和IE1类似,IT0和IT1类似以IT1为例:IT1=1(软件置1)时,则外部中断为跳变触发方式。在每个机器周期采样/INT1(P3.3)的输入电平,若一个周期内为高电平,下一个周期为低,则硬件置IE1为“1”,提出中断申请;IT1=0时,则/INT1为电平触发,即是通过检测P3.3的输入电平(低电平)来触发的,此时IE1由硬件置1。即只要输入到/INT1的外部中断源为低电平,且IT1=0,则/INT1就已经向CPU提出中断申请,它应始终保持低电平,直到中断被响应,且应在中断返回前变回高电平,否则会再次中断。2020/2/1619外部中断(/INT0,/INT1)触发方式的确定及注意事项若外部信号为一个频率信号,要求每个频率均有中断,外部中断应定义为跳变式触发。若外部中断要求为低电平时申请中断,则外部中断应定义为低电平触发方式。在电平触发方式中,CPU响应中断时,不会消除IE1标志。注:低电平持续时间中断服务程序执行时间否则会再次引发中断。2020/2/1620若外部中断定义为电平触发方式,中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的低电平保持到请求获得响应时为止,不然就会漏掉;而在中断服务程序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将再次产生中断。电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片8255的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。2020/2/1621若外部中断定义为边沿触发方式,在相继连续的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。即便是CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期(若晶振为12MHz时,为1微秒)。边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为89C52的中断输入。2020/2/1622定时器T2中断见第6章2020/2/16232、SCON的中断标志RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。2020/2/1624清TI:在中断服务程序中写入:CLRTI或ANLSCON,#0FDH清RI:在中断服务程序中写入:CLRRI或ANLSCON,#0FEH2020/2/1625一、中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。5.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中断允许(总允许)位。D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX02020/2/1626系统复位后,IE各位均为0,即禁止所有中断。IE寄存器可进行字节寻址,也可进行位寻址。例:允许T0中断,其他所有中断均禁止1)SETBET0CLREX1CLRET1CLREX0CLRESCLRET2SETBEA2)MOVIE,#82H2020/2/1627二、中断优先级控制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优先级设定位。2020/2/1628复位后,IP各位均为0,即所有的都是低优先级中断,IP可进行字节寻址和位寻址。例:定义外部中断源INT0为最高级,其他为低级,初始化如下1)SETBPX0CLRPT0CLRPX1CLRPT1CLRPSCLRPT22)MOVIP,#01H2020/2/1629同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:T2的优先级最低,它的入口地址为002BH2020/2/1630C语言设置51单片机的4个中断源,使他们的优顺序为/INT1,T1,/INT0,T0PT1=1;PX1=1;2020/2/163189C52单片机的中断优先级有三条原则:CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。同级n个中断源同时来到时,依据查询规则:/INT0,T0,/INT1,T1,串行口,T2正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断