《单片机原理及系统设计实用教程》课件第4章 中断_第1页
《单片机原理及系统设计实用教程》课件第4章 中断_第2页
《单片机原理及系统设计实用教程》课件第4章 中断_第3页
《单片机原理及系统设计实用教程》课件第4章 中断_第4页
《单片机原理及系统设计实用教程》课件第4章 中断_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4单片机的中断系统中断是微机系统的重要输入输出方式,采用中断,能减少单片机的等待时间,提高工作效率,还可以应付突发事件。单片机的大部分I/O资源,如定时器/记数器,A/D、D/A都可以采用中断方式接入。本章的主要内容为中断的概念,8051中断系统结构及中断控制,中断处理过程和外部中断扩展方法;通过本章学习应该达到以下目的:熟悉中断的概念及功能。了解扩展外部中断源的方法,熟悉中断处理过程及中断嵌套的概念及应用,掌握各中断控制寄存器各控制位功能及标志位的含意,掌握中断服务子程序的结构及编程技巧。4.1微机的输入/输出方式CPU与外设通讯的数据传送的控制方式通常有:无条件传送方式条件传送方式(查询)中断控制传送方式直接访问存储器(DMA)传送方式4.2中断的概念1.中断中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向这些异常情况或特殊请求的处理,处理结束后再返回现行程序的断点处,继续执行原程序。2.中断源中断源是产生中断的请求源。3.中断优先级别中断优先级别是中断源的轻重缓急的标志。4.中断嵌套当CPU正在处理某中断源请求的时候,又发生了另一个优先级别更高的中断源请求,使CPU暂时终止执行对原来中断源的处理程序,转而去处理优先级别更高的中断请求,待处理完后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。图4-12级中断嵌套执行过程5.中断响应过程当中断满足以下条件,单片机响应此中断:当某个中断源开放,且满足中断响应的条件。当前正在执行的那条指令已被执行完。当前未响应同级或高级中断。不是在操作IE、IP中断控制寄存器或执行RET指令。中断响应可以分为以下几个步骤。(1)保护断点,即保存下一条将要执行的指令的地址,并把这个地址(程序计数器之值PC)压入堆栈。(2)寻找中断入口,根据中断源所产生的中断,查找中断入口地址。将相应的中断入口地址装入PC,使程序转入到相应的中断服务程序中去执行。(3)执行中断处理程序。(4)中断返回:执行完中断处理程序后,从堆栈取出断点,返回到主程序,继续执行。在正常情况下,从中断请求信号有效开始,到中断得到响应,需要3~8个机器周期。4.3MCS-51单片机的中断系统及其管理4.3.1MCS-51单片机的中断系统MCS-51单片机的中断系统由5个固定的可屏蔽中断源(片内3个,片外2个)组成,每个中断源固定的中断入口地址,通过中断入口地址可进入中断服务程序。MCS-51单片机的中断系统有2个特殊功能寄存器用于中断控制,有两级中断优先级,可形成中断嵌套。4.3.2MCS-51单片机的中断源和中断优先级别MCS-51单片机的内部中断源有3个,分别是:定时器/计数器T0、T1的溢出中断源和串行口的发送/接收中断。MCS-52单片机增加了一个定时器的中断。MCS-51单片机的外部中断源有2个,分别是:外部中断、。外部设备的中断请求、,通过P3.2、P3.3这两个引脚输入。MCS-51单片机对不同中断源的优先级的处理原则如下:不同级别的中断源同时申请中断时:先高后低。高级中断请求可中断低级中断处理:停低转高。低级中断请求不能中断高级中断处理。同一级别中断同时申请中断时,遵循的优先级规定如表4-1所示。表4-1同一级别中断的优先级中断源同级内的优先权外部中断0

最低定时器/计数器0溢出外部中断1定时器/计数器1溢出串行口4.3.3MCS-51单片机的中断入口地址各中断源的入口地址如表4-2所示。表4-2

各中断源的入口地址中断源入口地址外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1溢出001BH串行口0023H4.3.4MCS-51单片机的中断管理MCS-51单片机的中断源由4个特殊功能寄存器进行管理,它们分别是:中断请求源锁存和外部中断源触发方式设置(TCON)、串行口中断(SCON)、中断允许寄存器(IE)和中断优先寄存器(IP)1.TCON寄存器图4-3TCON格式与内容IT0、IT1:触发方式控制位,可由软件置“1”或清“0”。IT0、IT1=0:电平触发,低电平有效(触发);IT0、IT1=1:边沿触发,从高到低负跳变有效(触发)。IE0、IE1:外部中断源的中断申请标志位,当外部中断请求信号触发中断时,IE0、IT1置“1”,否则,清“0”,由硬件完成;当CPU响应中断,转向中断服务程序时,由硬件清“0”IE0、IE1。外部中断的触发有两种方式:电平触发方式和边沿触发方式。电平触发方式电平触发:通过低电平触发CPU对外部中断请求的响应。在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。负跳变触发方式负跳变触发:外部中断申请触发器能锁存外部中断输入线上的负跳变,触发CPU对外部中断请求的响应。CPU响应中断请求后,触发器清“0”。2.SCON寄存器TI:串行口发送中断标志位。串行口发送数据后,由硬件置“1”;但CPU响应发送器中断请求,转向执行中断服务程序时硬件并不清TI,TI必须由用户的中断服务程序清“0”。RI:串行口接收中断标志位。串行口接收数据后,由硬件置“1”;CPU响应接收器中断请求,转向执行中断服务程序时硬件并不使RI清“0”,RI必须由用户的中断服务程序清“0”。3.IE寄存器EA:CPU中断开放标志位。EA=1,CPU开放中断;EA=0,CPU屏蔽所有中断申请。ES:串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。ET0、ET1:定时器/计数器溢出中断允许位。ET0=1,允许T0中断;ET1=1,允许T1中断;ET0=0,禁止T0中断;ET1=0,禁止T1中断。EX0、EX1:外部中断允许位。EX0=1,允许外部中断源中断;EX1=1,允许外部中断源中断;EX0=0,禁止外部中断源中断;EX1=0,禁止外部中断源中断。4.IP寄存器PS:串行口中断优先级控制位。PS=1,串行口中断定义为高优先级;PS=0,串行口中断定义为低优先级。PT0、PT1:定时器/计数器中断优先级控制位。PT0=1,T0中断定义为高优先级;PT1=1,T1中断定义为高优先级;PT0=0,T0中断定义为低优先级;PT1=0,T1中断定义为低优先级。PX0、PX1:外部中断优先级控制位。PX0=1,外部中断源定义为高优先级;PX1=1,外部中断源定义为高优先级;PX0=0,外部中断源定义为低优先级;PX1=0,外部中断源定义为低优先级。4.3.5MCS-51单片机的中断服务程序单片机中断服务程序的结构一般如下:保护现场,将现场数据用指令PUSH压栈。撤除中断请求,CPU响应某中断请求后,在中断返回(RETI)前,该中断请求应该撤除,否则会引起另一次中断。除串口外,其余的中断源都是由自动清除中断申请标志位。中断申请处理程序,根据具体应用编写。恢复现场,将现场数据用指令POP出栈。RETI,中断返回。4.4中断应用举例例4.1

如图4-7所示,利用AT89C51的外部中断实现单步操作。工作原理为:引脚平时为低电平且编程为电平触发,则CPU响应中断,进入中断服务程序,并在该服务程序中停留,当引脚上接收一个脉冲(从低→高→低),AT89C51响应中断后,执行完RETI须返回主程序执行一条指令,才能响应新的中断。然后又立即进入中断服务程序,等待下一个脉冲的到来,又返回主程序执行一条指令,如此反复,就实现了单步操作,ORG0000HRESET:AJMPMAIN ;主程序ORG0003HAJMPINT0 ;中断服务程序;初始化程序段MAIN:CLRIT0 ;设置为电平触发

SETBEA ;设置CPU开放中断

SETBPX0 ;定义为高优先级中断

SETBEX0 ;允许外部中断中断

AJMP$ ;动态暂存INT0:NOPHERE0:JNBP3.2,HERE0 ;=0,循环转移HERE1:JBP3.2,HERE1;=1,循环转移

RETI ;中断返回例4.2

设单片机晶振频率Fosc=6MHZ,编制程序,在P1.0端口线上输出周期为2ms的方波脉冲。工作原理:利用定时器T0作1ms定时,达到定时值后引起中断,在中断服务程序中,使P1.0的状态取一次反,并再次定时1ms。计算定时初值:机器周期MC=12/fosc=2us。所以定时lms所需的机器周期个数为500,即0lF4H。设T0为工作方式1(16位方式),则定时初值是(01F4H)求补=FEOCH。实现程序如下:ORG0000HRESET:AJMPMAIN ;主程序

ORG000BHAJMPIST0 ;转入T0中断服务程序入口地址IST0;初始化程序段MAIN:MOVTMOD,#01H ;T0为定时器状态,工作方式1MOVTL0,#0CH ;T0的低位定时初值MOVTH0,#0FEH ;T0的高位定时初值MOVTCON,#10H ;打开T0SETBET0 ;1ET0=1,即允许T0中断SETBEA ;EA=1,即允许全局中断AJMP$ ;动态暂存IST0:MOVTL0,#0CH ;重置定时器初值MOVTH0,#0FEH ;重置定时器初值CPLP1.0 ;P1.0取反RET1 ;中断返回4.5习题1.AT89S51的晶振为12MHz,外部中断请求信号是一个宽度为300ns、600ns的负脉冲,则应用哪种触发方式?如何实现?2.若外部中断请求信号是一个低电平有效的信号,是否一定要选择电平触发方式?为什么?3.MCS-51单片机的中断系统是如何进行管理的?请举例说明相关寄存器的具体内容。4.MCS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论