单片机原理与接口技术电子教案第成都大学工业制造学院程跃章4中断系统24.1微机的输入输出方式无条件传送方式查询传送方式直接存储器存取(DMA)方式中断方式3无条件传送方式无条件传送方式在这种传送方式下,CPU不需要了解外设的状态,只要在程序中加入访问外设的指令,就可实现CPU与外设之间的数据传送。此种方法控制简单,但数据传送时,由于不知道外设的状态,传送数据时容易出错。4查询传送方式查询传送方式在这种传送方式下,CPU在传送数据之前,要不断查询外部设备是否处于“准备好”状态,因此需占用CPU的大量时间,效率较低。5DMA方式DMA方式是让CPU不再控制数据总线,使外部设备和存储器之间直接传送(不通过CPU)的数据方式。适用于:(1)外设和存储器之间有大量数据传送。(2)外设的工作速度很高6中断方式在中断传送方式下,CPU启动外设后,外设与CPU并行独立工作。当外设需要CPU处理时,由外设向CPU提出请求。若条件满足时,CPU中断当前执行的程序,转而为外设服务,服务完毕后,又继续执行原来的程序。对于这种方式,CPU不需要花费大量的时间进行外设的查询,从而提高了CPU的效率。在单片机应用系统中,为了提高CPU的效率,多采用中断方式。为了实现中断功能而配置的软件与硬件,称为中断系统。7中断系统概述中断技术实质上是一种资源共享技术,是解决资源竞争的有效方法,最终实现多项任务共享一个资源。在计算机中通常只有一个CPU,任何时刻它只能进行一项工作,而它所面对的任务却可能是多个,资源竞争现象不可避免,而使用中断技术可以解决此问题。中断技术对单片机来说非常重要,因为单片机所具有的复杂实时控制功能与中断技术密不可分,面对控制对象随机发出的中断请求,单片机必须作出快速响应并及时处理,以使被控对象保持在最佳工作状态,达到预定的控制效果。8中断系统概述计算机中的资源竞争,通常是因计算机在运行程序时会发生一些可预测或不可预测的随机事件引起的。这些随机事件包括:与计算机“并行”工作的输入/输出设备发出的中断请求,以进行数据传送。硬件故障、运算错误及程序出错时产生的中断请求,以进行故障报警和程序监测。当对运行中的计算机进行干预时,通过键盘输入的命令,以进行人机联系。来自被控对象的中断请求,以实现自动控制。9思考:假设没有中断技术。104.2中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。用的最多的是外部中断与定时中断。○外部中断典型应用:按键程序○定时器中断典型应用:定时与循环扫描等应用场合11中断服务程序中断发生时,主程序暂停,跳转到中断服务程序,称为“响应中断”,执行完毕后返回主程序继续运行。中断服务程序不能被调用,没有返回值,程序在何处发生中断是由中断事件发生而决定。1289C51单片机的中断过程执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回13引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。主程序A响应返回断点RETI……中断服务程序B14①有效地解决快速CPU与慢速外设之间的矛盾,可使CPU与外设并行工作,大大提高工作效率。②分时操作:有了中断技术,CPU可启动多台外设并行工作,分时进行CPU与各台外设之间的信息交换。③实时处理:可以及时处理控制系统中许多随机产生的参数与信息,从而提高了实时控制系统的性能。④故障处理:当计算机出现故障时,CPU可自动执行故障处理程序,提高了系统自身的可靠性。计算机与外围设备之间传送数据及实现人机联系也常采用中断方式。中断技术的应用15中断源:凡是中断请求的来源都统称为中断源。在单片机系统中,中断可以由各种硬件设备产生,以便请求服务或报告故障等;中断也可以由处理器自身产生,如程序错误或对操作系统的请求作出响应等。中断向量(InterruptVector):是程序存储器的一个地址,表明一个中断的服务程序从这里开始存放。中断发生后要通过它引导CPU转向相应的中断服务。正因为它具有指向性,所以称其为中断向量(或中断矢量)。4.389C51中断系统的结构及中断控制4.3.189C51的中断源16使用中断技术实现以下功能:分时操作CPU可以与多台外设并行工作,CPU可分时与多台外设进行信息交换。实时处理实时处理在单片机实时控制中,请求CPU提供服务是随机发生的。有了中断系统,CPU就可以立即响应并进行处理。故障处理有了中断系统,当出现故障时,CPU可及时转去执行故障处理程序,自行处理故障而不必停机。17具有5个中断源(52子系列为6个,多一个定时器中断):2个外部中断、2个定时器中断和1个串行中断。可分为2个中断优先级,可实现两级中断服务程序嵌套。每一个中断源的优先级可用程序设定。中断源中断向量外部中断00003H定时器0中断000BH外部中断10013H定时器1中断001BH串行中断0023H与中断系统工作有关的4个特殊功能寄存器:中断允许控制寄存器:IE中断优先级控制寄存器:IP定时器/计数器控制寄存器:TCON串行口控制寄存器:SCON中断源与中断向量18AT89C51中断运行的机理以外部中断0(INT0)为例,中断模块在每个CPU时钟周期都查询IO口为P3.2的状态,当输入的电平由高电平变为低电平时,CPU的程序运行会立即跳转到地址0X03。因此要将处理INT0中断的代码放在地址为0x30开始的ROM区域,C语言中采用中断服务函数来实现此代码定位的功能,格式如下:void函数名()interruptN函数名可以任意,但一般要用一个有意义的函数名,例如int0_srv;N代表中断向量编号,例如INT0的中断服务函数中断向量号为0,INT1的N=2。1989C51的中断系统有5个中断源(89C52有6个),2个优先级,可实现二级中断嵌套。EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源89C51中断系统的结构及中断控制20由外部原因引起,共有2个中断源:外部中断0和外部中断1,中断请求信号分别由引脚INT0(P3.2)和INT1(P3.3)引入。外部中断请求有两种信号方式:电平方式和脉冲方式(可通过设置有关控制位进行定义)电平方式:只要单片机在中断请求引入端(INT0或INT1)上采样到有效的低电平信号,就激活外部中断。脉冲方式(脉冲的下降沿有效):CPU在两个相邻机器周期对中断请求引入端进行的采样中,如前一次为高电平,后一次为低电平,即为有效中断请求。【注意】:脉冲方式下,中断请求信号的高、低电平状态都应至少维持1个机器周期,以确保脉冲的负跳变能被单片机采样到。(1)外部中断21定时器中断是为满足定时或计数的需要而设置的。单片机内部有2个定时器/计数器T0和T1,以实现定时或计数功能。对应的定时器中断有2个:定时器0中断和定时器1中断。当计数器发生计数溢出时,表明定时时间到或计数值满,这时内部电路就以计数溢出信号作为中断请求,去置位一个溢出标志位(TF0或TF1),作为单片机接受中断请求的标志。由于定时器中断请求是在单片机芯片内部发生的,所以在芯片上没有对应的中断请求引入端。(2)定时器中断(内部中断)22串行中断是为串行数据传送的需要而设置的。串行中断可分为串行发送中断和串行接收中断,它们对应同一个中断向量0023H。每当串行口接收或发送完一组串行数据时,就产生一个中断请求(RI或TI)。串行中断请求是在单片机芯片内部自动发生的,所以不需要在芯片上设置中断请求引入端。(3)串行中断(内部中断)23中断控制是指提供给用户使用的中断控制手段。MCS-51单片机中,中断控制的内容有4项:中断允许控制、中断请求标志、中断优先级控制和外中断触发方式控制,这些控制内容分布在4个控制寄存器中:①中断允许控制寄存器:IE②定时器控制寄存器:TCON③串行口控制寄存器:SCON④中断优先级控制寄存器:IP中断控制是通过硬件实现的,但须进行软件设置。4.3.2中断控制24IE寄存器25字节地址:0A8H位地址:0A8H~0AFH功能:用于控制是否允许使用中断。其中与中断有关的控制位共6位:EA:中断允许总控制位EA=0,中断总禁止,CPU禁止所有中断;EA=1,中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA——ESET1EX1ET0EX0①中断允许控制寄存器:IE26EX0和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——ESET1EX1ET0EX027单片机通过中断允许控制寄存器对中断的允许(开放)实行两级控制,即以EA作为总控制位,以各中断源的中断允许位作为分控制位。当总控制位EA=0时,关闭整个中断系统,不管分控制位状态如何,整个中断系统处于禁止状态;当总控制位EA=1时,开放中断系统,这时才能由各分控制位设置各自中断的允许与禁止。单片机复位后IE=00H,此时中断系统处于禁止状态。单片机中断响应后硬件不会自动关闭中断,因此,在转中断服务程序后,应根据需要使用能将EA复位的有关指令禁止中断,即以软件方式关闭中断。说明:28字节地址:88H位地址:88H~8FH功能:用于保存外部中断请求以及定时器的计数溢出。【注意】:TCON既有定时器的控制功能,又有中断控制功能。虽然不少资料将TCON称为定时器控制寄存器,但多数位都是为中断控制而设置的(其中与中断有关的控制位共6位)。位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0②与中断请求标志相关的寄存器:TCON与SCON中断标志与外部中断方式选择寄存器:TCON29IE0和IE1:外部中断请求标志位当CPU采样到INT0(或INT1)端出现有效中断请求信号时,IE0(或IE1)位由硬件置“1”,即保存外部中断请求。在中断响应完成后转向中断服务程序时,再由硬件自动清“0”。IT0和IT1:外部中断触发方式控制位IT0(IT1)=0电平触发方式,低电平有效IT0(IT1)=1脉冲触发方式,负跳变有效此位由软件置“1”或清“0”位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT030外部中断的2种触发模式触发模式的选择由TCON的IT0与IT1控制。1.边沿触发:外部中断为负边沿触发方式。CPU在每个机器周期采样P3.2(P3.3)脚的输入电平,如果在一个周期中采样到高电平,在下一个周期中采样到低电平,则硬件使IE0(IE1)置1,向CPU请求中断。2.电平触发:外部中断是通过检测P3.2(P3.3)脚的输入电平(低电平)来触发的。采用电平触发时,输入到P3.2(P3.3)脚的外部中断源必须保持低电平有效,直到该中断被响应。同时在中断返回前必须使电平