预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共56页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章单片机中断系统5.1中断概述5.1.1微机的输入/输出方式3、DMA控制方式(直接存储器存取)DMA控制方式主要用于存储器和外设之间直接传送。一般是数据块为单位传送数据的方式。当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA控制器接收到这一请求后,向CPU发出总线请求信号。CPU响应DMA的请求,把总线使用权赋给DMA控制器,外设利用DMA通道直接将数据写入存储器或将数据从存储器中读出,传送过程不需要CPU参与。当这批数据传送后,DMA控制器再向CPU发出“结束中断请求”,CPU响应这一中断请求,即可收回总线使用权。采用DMA控制方式,CPU只需在数据传送结束时响应一次中断,减轻了CPU的负担,系统的速度会大大增加。1、中断当CPU正在处理某段程序的时候,外部或者内部发生的某一事件请求CPU迅速去处理,于是CPU暂时中断当前的工作,去处理所发生的事件。处理完该事件后,再返回到原来被中断的地方继续原来的工作,此过程称为中断。2、中断源引起CPU中断的内部或外部事件就是中断源。3、中断请求中断源向CPU发的处理请求即中断请求或中断申请。4、中断响应CPU暂时中止正在处理的事情,转去处理突发事件的过程,称为中断响应。5、其他概念实现中断功能的部件称为中断系统,又称中断机构。CPU响应中断后,处理中断事件的程序称中断服务程序。在CPU暂时中止执行的程序,转去执行中断服务程序时PC值即为断点地址。CPU执行完中断服务程序后回到断点的过程称为中断返回。6、中断的功能中断是计算机的一项重要技术,计算机引入中断后,大大提高了它的工作效率和处理问题的灵活性,主要功能有以下几个方面。使CPU与外设同步工作实现实时处理故障及时处理5.2中断系统的结构及控制5.2.1MCS-51单片机的中断结构5.2.2MCS-51的中断源定时器控制寄存器TCON各控制位的含义串行口控制寄存器SCON二、中断允许寄存器IE例5-1假设允许INT0、INT1、T0、T1中断,试设置IE的值。解:(1)用C语言字节操作指令:IE=0x8f;(2)用C语言位操作指令EX0=1;//允许外部中断0中断ET0=1;//允许定时/计数器0中断EX1=1;//允许外部中断1中断ET1=1;//允许定时/计数器1中断EA=1//开总中断控制汇编语言(1)用字节操作指令:MOVIE,#8FH(2)用位操作指令:SETBEX0;允许外部中断0中断SETBET0;允许定时/计数器0中断SETBEX1;允许外部中断1中断SETBET1;允许定时/计数器1中断SETBEA;开总中断控制位1、中断优先级寄存器IP1、89C51的中断优先级5.2.2MCS-51单片机的中断源(2)当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的中断。进行中断嵌套。CPU就暂时中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去处理更高的中断请求,服务完毕,回到原来被中止的中断程序继续执行。两级中断嵌套的处理过程如图5-7所示。例5-2设定时器和串行口中断为高优先级,两个外部中断为低优先级,试设置IP的值。解:C语言程序IP=0x3a;汇编语言程序:(1)使用字节操作指令:MOVIP,#3AH(2)使用位操作指令:CLRPX0;设置外部中断0为低级中断CLRPX1;置外部中断1为低级中断SETBPT0;置定时器/计数器0为高级中断SETBPT1;置定时器/计数器0为高级中断SETBPS;置串行口中断为高优先级SETBPT2;置定时器/计数器2为高级中断由于复位后IP=00H,外部中断在此可以不设置。5.3中断响应及处理过程5.3.1中断响应一、中断响应的过程从中断请求发生直到被响应,准备去执行中断服务程序,此过程即中断响应过程。中断响应过程一般包括如下几个阶段:1、中断采样中断采样主要是针对外部中断请求信号进行的。由于内部中断请求都发生在芯片内部,可以直接查询特殊寄存器。在每个机器周期的S5P2期间,各中断标志采样相应的中断源,并置位相应标志。2、中断查询查询到某中断标志为1,则按优先级的高低进行处理,即响应中断。89C52的中断请求都汇集在TCON、T2CON和SCON三个特殊功能寄存器中。CPU则在下一机器周期的S6期间按优先级的顺序查询各中断标志。5.3.1中断响应的过程5.3.1中断响应的过程5.3.1中断响应的过程5.3.1中断响应的过程执行这条长调用指令需要2个机器周期。这样,中断响应时间为3个机器周期。如果CPU正在执行的是RETI指令或访问IP、IE指令。中断系统规定把这几条指令执行完,必须再继续执行一条指令后才能响应中断。而这条指令恰好是4个机器周期长的指令(比如乘法指令MUL或除法指令DIV)。加上执行长调用指令LCALL所需2个机器周期,则需