1微机原理第5章AT89S51单片机的中断系统工业制造学院2本章主要内容中断的概念和应用AT89S51中断系统结构与中断相关的SFR及中断控制外部中断C51中断函数编程举例3微机的输入输出方式(1)无条件传送方式(2)查询传送方式(3)直接存储器存取(DMA)方式(4)中断方式4无条件传送方式无条件传送方式在这种传送方式下,CPU不需要了解外设的状态,只要在程序中加入访问外设的指令,就可实现CPU与外设之间的数据传送。此种方法控制简单,但数据传送时,由于不知道外设的状态,传送数据时容易出错。5查询传送方式查询传送方式在这种传送方式下,CPU在传送数据之前,要不断查询外部设备是否处于“准备好”状态,因此需占用CPU的大量时间,效率较低。6DMA方式DMA方式是让CPU不再控制数据总线,使外部设备和存储器之间直接传送(不通过CPU)的数据方式。适用于:(1)外设和存储器之间有大量数据传送。(2)外设的工作速度很高7中断方式在中断传送方式下,CPU启动外设后,外设与CPU并行独立工作。当外设需要CPU处理时,由外设向CPU提出请求。若条件满足时,CPU中断当前执行的程序,转而为外设服务,服务完毕后,又继续执行原来的程序。对于这种方式,CPU不需要花费大量的时间进行外设的查询,从而提高了CPU的效率。在单片机应用系统中,为了提高CPU的效率,多采用中断方式。为了实现中断功能而配置的软件与硬件,称为中断系统。85.1AT89S51中断技术概述中断技术对单片机来说非常重要,因为单片机所具有的复杂实时控制功能与中断技术密不可分,面对控制对象随机发出的中断请求,单片机必须作出快速响应并及时处理,以使被控对象保持在最佳工作状态,达到预定的控制效果。中断技术实质——资源共享技术9中断系统概述计算机中的资源竞争,通常是因计算机在运行程序时会发生一些可预测或不可预测的随机事件引起的。这些随机事件包括:与计算机“并行”工作的输入/输出设备发出的中断请求,以进行数据传送。硬件故障、运算错误及程序出错时产生的中断请求,以进行故障报警和程序监测。当对运行中的计算机进行干预时,通过键盘输入的命令,以进行人机联系。来自被控对象的中断请求,以实现自动控制。10思考:假设没有中断技术。11中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。用的最多的是外部中断与定时中断。○外部中断典型应用:按键程序○定时器中断典型应用:定时与循环扫描等应用场合12中断服务程序中断发生时,主程序暂停,跳转到中断服务程序,称为“响应中断”,执行完毕后返回主程序继续运行。中断服务程序不能被调用,没有返回值,程序在何处发生中断是由中断事件发生而决定。13AT89S51单片机的中断过程执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回14引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。主程序A响应返回断点RETI……中断服务程序B15①有效地解决快速CPU与慢速外设之间的矛盾,可使CPU与外设并行工作,大大提高工作效率。②分时操作:有了中断技术,CPU可启动多台外设并行工作,分时进行CPU与各台外设之间的信息交换。③实时处理:可以及时处理控制系统中许多随机产生的参数与信息,从而提高了实时控制系统的性能。④故障处理:当计算机出现故障时,CPU可自动执行故障处理程序,提高了系统自身的可靠性。计算机与外围设备之间传送数据及实现人机联系也常采用中断方式。中断技术的应用16中断源:凡是中断请求的来源都统称为中断源。在单片机系统中,中断可以由各种硬件设备产生,以便请求服务或报告故障等;中断也可以由处理器自身产生,如程序错误或对操作系统的请求作出响应等。5.2AT89S51中断系统结构5.2.189S51的中断源17具有5个中断源(52子系列为6个,多一个定时器中断)中断向量(InterruptVector):是程序存储器的一个地址,表明一个中断的服务程序从这里开始存放。中断源中断向量外部中断00003H定时器0中断000BH外部中断10013H定时器1中断001BH串行中断0023H中断源与中断向量1889S51的中断系统有5个中断源(52系列有6个),2个优先级,可实现二级中断嵌套。EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源89S51中断系统的结构及中断控制19中断控制是指提供给用户使用的中断控制手段。AT89S51单片机中,中断控制的内容有4项:中断允许控制、中断请求标志、中断优先级控制和外中断触发方式控制,这些控制内容分布在4个控制寄存器中:①中断允许控制寄存器:IE②定时器控制寄存器:TCON③串行口控制寄存器:SCON④中断优先级控制寄存器:IP中断控制是通过硬件实现的,但须进行软件设置。中断控制20字节地址:88H位地址:88H~8FH功能:用于保存外部中断请求以及定时器的计数溢出。【注意】:TCON既有定时器的控制功能,又有中断控制功能。虽然不少资料将TCON称为定时器控制寄存器,但多数位都是为中断控制而设置的(其中与中断有关的控制位共6位)。位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0(1)中断标志与外部中断方式选择寄存器:TCON5.2.2中断请求标志寄存器21IE0和IE1:外部中断请求标志位当CPU采样到INT0(或INT1)端出现有效中断请求信号时,IE0(或IE1)位由硬件置“1”,即保存外部中断请求。在中断响应完成后转向中断服务程序时,再由硬件自动清“0”。IT0和IT1:外部中断触发方式控制位IT0(IT1)=0电平触发方式,低电平有效IT0(IT1)=1脉冲触发方式,负跳变有效此位由软件置“1”或清“0”位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT022TF0和TF1:定时器(T0和T1)计数溢出标志位当计数器产生计数溢出时,相应的溢出标志位由硬件置“1”,并自动产生定时中断请求。当转向中断服务程序时,再由硬件自动清“0”。计数溢出标志位的使用有两种情况:•采用中断方式时,作为中断请求标志位来使用;•采用查询方式时,作为状态位供查询使用。位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT02324TI:串行发送中断请求标志位在发送数据过程中,当最后一个数据位被发送完成后,TI由硬件置“1”;软件查询时TI可作为状态位使用。在转向中断服务程序后,TI必须由用户在中断服务程序中用软件清“0”。位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI(2)SCON中的中断标志位25RI:串行接收中断请求标志位在接收数据过程中,当采样到最后一个数据位有效时,RI由硬件置“1”;软件查询时RI可作为状态位使用。在转向中断服务程序后,用软件清“0”。265.3中断允许与中断优先级控制AT89S51单片机的中断系统有5个中断源,两个中断优先级,可实现两级中断服务程序嵌套。实现中断允许控制和中断优先级控制是由SFR中的中断允许寄存器IE和中断优先级控制器IP来实现的。27字节地址:0A8H位地址:0A8H~0AFH功能:用于控制是否允许使用中断。其中与中断有关的控制位共6位:EA:中断允许总控制位EA=0,中断总禁止,CPU禁止所有中断;EA=1,中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA——ESET1EX1ET0EX05.3.1中断允许寄存器IE28EX0和EX1:外部中断允许控制位EX0(EX1)=0禁止外部中断0(或外部中断1)EX0(EX1)=1允许外部中断0(或外部中断1)ET0和ET1:定时器/计数器中断允许控制位ET0(ET1)=0禁止定时器/计数器中断ET0(ET1)=1允许定时器/计数器中断ES:串行中断中断允许控制位ES=0禁止串行中断ES=1允许串行中断位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA——ESET1EX1ET0EX029单片机通过中断允许控制寄存器对中断的允许(开放)实行两级控制,即以EA作为总控制位,以各中断源的中断允许位作为分控制位。当总控制位EA=0时,关闭整个中断系统,不管分控制位状态如何,整个中断系统处于禁止状态;当总控制位EA=1时,开放中断系统,这时才能由各分控制位设置各自中断的允许与禁止。单片机复位后IE=00H,此时中断系统处于禁止状态。单片机中断响应后硬件不会自动关闭中断,因此,在转中断服务程序后,应根据需要使用能将EA复位的有关指令禁止中断,即以软件方式关闭中断。说明:30中断允许寄存器IE31字节地址:0B8H位地址:0B8H~0BFH功能:用于设定各中断的优先级,通过IP可将中断分为高、低两个优先级。PX0:外部中断0优先级设定位PT0:定时器0中断优先级设定位PX1:外部中断1优先级设定位PT1:定时器1中断优先级设定位PS:串行中断优先级设定位位地址0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H位符号———PSPT1PX1PT0PX0•为“0”的位优先级低•为“1”的位优先级高•CPU复位时,IP中的各位均被清05.3.2中断优先级控制寄存器IP32IP寄存器33单片机对同一优先级中断请求的查询次序:中断源入口地址同级内的中断优先权外部中断00003H最高最低定时器0溢出中断000BH外部中断10013H定时器1溢出中断001BH串行口中断0023H对于同级的多个中断请求,查询的次序安排是通过专门的内部逻辑实现的。34①中断的轻重缓急程度。例如,电源故障有使整个系统瘫痪的危险,必须及时处理,所以应安排为高优先级;而那些仅影响局部故障的中断或操作性中断(如输入/输出中断)应安排为低优先级。②中断设备的工作速度。快速设备需要及时响应,否则将有丢失数据的危险,所以应安排为高优先级。③中断处理的工作量。尽量把处理工作量小的中断安排为高优先级,因为处理工作量小,占用CPU的时间短。④中断请求发生的频繁程度。可以考虑将那些很少请求单片机干预的事件产生的中断安排为高优先级。中断优先级定义原则355.4中断响应的条件一个中断源的中断请求被响应,必须满足如下必要条件:EA=1:总中断允许开关接通。该中断源发出中断请求:中断源请求标志=1该中断为允许:该中断源中断允许位=1无同级或更高级中断正在被服务。365.5外部中断的响应时间在一个单一中断系统里面:最短响应时间为3个机器周期。最长响应时间为8个机器周期。如果已经在处理同级或更高级的中断,响应时间取决于正在执行中断服务程序的处理时间。中断响应时间:用从外部中断请求有效(标志位置“1”)到转向中断区入口地址所需的机器周期数来计算。375.6外部中断的触发方式选择触发模式的选择由TCON的IT0与IT1控制。1.边沿触发:外部中断为负边沿触发方式。CPU在每个机器周期采样P3.2(P3.3)脚的输入电平,如果在一个周期中采样到高电平,在