单片机原理与实践高卫东第4章中断.ppt_第1页
单片机原理与实践高卫东第4章中断.ppt_第2页
单片机原理与实践高卫东第4章中断.ppt_第3页
单片机原理与实践高卫东第4章中断.ppt_第4页
单片机原理与实践高卫东第4章中断.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

MCS-51单片机的中断系统,单片机原理与接口技术,第4章,单片机原理与接口技术,【学习目标】,1理解中断的基本概念 2理解80C51中断系统的结构 3掌握外部中断的编程实现,【重点内容】,1中断的概念 2掌握80C51中断的使用 3、掌握外部中断的编程实现,4.2.1 中断的概念,4.2 80C51系列单片机的中断系统,中断:计算机暂停当时正在执行的程序,转去执行处理某一意外事件的程序,待意外事件处理完毕后,又返回到程序被暂停的地方继续执行的过程。,外设,CPU,启动,执行原程序,中断请求,中断响应,执行原程序,中断服务,执行完毕,返回,中断作用:中断方式完全消除了CPU在查询中的等待现象, 大大提高了CPU的工作效率。如果没有中断技术, CPU的大量时间可能浪费在原地踏步的操作上。,中断源:中断源是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须中止原程序的执行,转去执行响应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程。,中断优先级:由于在实际的系统中,往往有多个中断源,且中断申请是随机的,有时可能会有多个中断源同时提出中断申请,但CPU一次只能响应一个中断源发出的中断请求,这时CPU应响应哪个中断请求? 这就需要用软件或硬件按中断源工作性质的轻重缓急,给它们安排一个优先顺序,即所谓的优先级排队。中断优先级越高,则响应优先权就越高。 中断嵌套:当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高级中断申请,待高级中断处理程序完毕再返回原中断程序断点处继续执行,这一过程称为中断嵌套。,4.2.4 中断技术的优势 随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:,分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;,实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;,可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,4.3 80C51中断系统的结构 80C51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套 。,4.3.1 80C51中断源和中断控制寄存器,1. 中断源,2. 定时和外中断控制寄存器TCON,5. 串行控制寄存器SCON (不讲),3. 中断允许控制寄存器IE,4. 中断优先级控制寄存器IP,对中断源和中断控制寄存器的理解,一定按上图分析,不可单独记忆。,4.3.1、 中断源,1、 (P3.2)。可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。,2、 (P3.3)。可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。,3、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。,4、TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。,5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。,4.3.2 与中断有关的特殊功能寄存器,中断分为两种:可屏蔽中断和不可屏蔽中断。 与中断有关的特殊功能寄存器有4个: 1、定时/计数控制寄存器TCON; 2、串行口控制寄存器SCON; 3、允许中断寄存器IE; 4、中断优先级寄存器IP。,1、定时/计数控制器TCON外部中断控制标志位,IT1(IT0) 0,低电平触发(请求)方式。,当P3.3 (P3.2) 脚为低电平时,硬件置IE1 (IE0)=1,响应中断。结束中断前,用软件将IE1 (IE0) 清0,2、定时/计数控制器TCON外部中断控制标志位,IT1(IT0)1,脉冲边沿方式(后沿负跳变)有效。,当前一周期P3.3 (P3.2) 脚为高电平,后一周期P3.3 (P3.2) 脚为低电平时,硬件置IE1 (IE0)=1,响应中断。响应中断后, IE1 (IE0) 由硬件清0,TCON中定时器T0、T1溢出中断申请标志位,定时/计数器T1 (T0)溢出中断申请标志位。当T1 (T0)产生计数溢出时,由硬件置l。响应中断后,由硬件自动清0。,2、MCS-51的中断控制,CPU对中断源的开放或屏蔽,受到中断允许寄存器IE的控制。,各中断源高、低优先级别由中断优先级寄存器IP控制。,IE、IP寄存器的状态可通过程序由软件设置。,2、中断允许控制IE中断的开放和屏蔽,中断允许控制位。 EA 0中断总禁止;EAl中断总允许。总允许后,中断的禁止或允许由各中断源的中断允许控制位进行设置。,2、中断允许控制中断的开放和屏蔽,外部中断0允许控制位。 0,禁止外中断 ; 1,允许外中断。,2、中断允许控制中断的开放和屏蔽,外部中断1允许控制位。0禁止外中断 ;1允许外中断。,2、中断允许控制中断的开放和屏蔽,定时/计数器T0、中断允许控制位。 0禁止定时/计数器T0、中断; l允许定时/计数器T0、中断。,定时/计数器T1中断允许控制位。 0禁止定时/计数器T1中断; l允许定时/计数器T1中断。,2、中断允许控制中断的开放和屏蔽,串行中断允许控制位。 =0禁止串行中断;l允许串行中断。,中断的两级控制,EA位作为总控制位,以各中断源的中断允许位作为分控制位,复位后(IE)=00H,因此中断系统处于禁止状态,单片机在中断响应后不会自动关闭中断。因此在转中断服务程序后,应使用有关指令禁止中断,即以软件方式关闭中断。,3、中断优先级控制,外部中断0优先级设置位,定时中断l 优先级设置位。,外部中断1优先级设置位,定时中断0优先级设置位。,串行中断优先级设置位,IP中PX0、PT0位优先级高,PX1、PT1位优先级低。 外部中断0定时中断0外部中断1定时中断l串行中断。,3、中断优先级的控制原则,(1)低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。,(2)如果一个中断请求已被响应,则同级的其它响应将被禁止。,(3)如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。其排列顺序为:,外部中断0定时中断0外部中断1定时中断l串行中断。,3、中断优先级的控制原则,例:若IP=18H。问:中断系统的优先顺序如何,解:T1串口外中断0T0外中断1,外部中断0定时中断0外部中断1定时中断l串行中断。,中断过程: 1、每条指令结束后,自动检测中断请求。 有中断请求,并且中断允许 2、保护现场: 关中断:防止现场被破坏 保护现场:一般使用堆栈指令将原程序中用到的寄存器推入堆栈 开中断:以响应更高优先级的中断申请 3、中断服务,4.4 中断处理的过程,4、恢复现场 关中断:防止现场被破坏 恢复现场:用堆栈指令将保护在堆栈中的数据弹出来 开中断 5、返回:此时CPU将推入到堆栈的断点地址弹回到程序计数器,从而使CPU继续执行刚才被中断的程序。,中断响应条件 :,(1)中断源有中断请求;,(2)此中断源的中断允许位为1;,(3) CPU开中断(即EA=1)。,1、中断响应条件,2、中断申请封锁不产生LACLL指令,(1) CPU正在执一个同级或高一级的中断服务程序;,(2)当前指令未执行完。,(3)正在执行中断返回指令RET、RETI或访问IE、IP寄存器的 指令。,中断响应就是单片机CPU对中断源提出的中断请求的接受和执行。,中断过程,1、当前指令完毕后,立即中断当前程序的运行。,CPU查询到中断请求,置位优先级寄存器,阻止同级和低级中断,并按优先顺序排好后,响应中断。,2、保护中断处,下一条指令的地址到堆栈。,3、转至相应中断入口,执行中断服务程序。,中断响应过程,(1)置相应的优先级标志为1,指明CPU响应的中断优先级别,屏蔽同级或低级中断请求,允许更高级中断请求;,(2)执行由硬件生成的子程序调用指令LCALL;,清除中断源的中断请求标志。,保护断点。将被中断程序的断点地址(PC的值)压入堆栈进行保护。,将相应的中断服务程序入口矢量地址装入PC中。,(3) 执行中断服务程序。,中断处理,中断处理就是执行中断服务程序。,终止当前程序,保护断点,转入中断服务入口,CPU响应中断,保存有关寄存器中的数据,执行中断服务程序。,恢复有关寄存器中的数据,执行RETI,把“断点”地址送回PC。,中断服务程序的入口地址,各中断服务程序的入口地址仅间隔8各字节,编译器在这些地址放入无条件转移指令LJMP跳转到服务程序的实际地址。,4.5 中断系统应用,中断程序结构,初始化部分,中断服务程序部分,写在主程序段中,实现对程序的控制。,写在主程序段之外的存储区,实现中断服务。,2、采用C51语言,采用C51语言编写程序,采用的方法就是中断服务函数。函数声明时包括interrupt,将把所声明的函数定义为一个中断服务程序。在C51中定义中断服务函数的一般形式如下: 函数类型 函数名 interrupt n using n Interrupt后面的n是中断号。关键字using后面的n是所选择的寄存器组,取值范围是0-3.定义中断函数时,using是一个选项,可以省略不用。如果不用则由编译器选择一个寄存器组作为绝对寄存器组。,2、采用C51语言,在C51中定义中断服务函数的一般形式如下: 函数类型 函数名 interrupt n using n Interrupt后面的n是中断号。中断号告诉编译器中断程序的入口地址。中断号对应着IE寄存器中的使能位,换句话说,IE寄存器中的0位对应着外部中断0,相应的外部中断0的中断号是0.,2、采用C51语言,在C51中定义中断服务函数的一般形式如下: 函数类型 函数名 interrupt n using n 中断号 中断源 0 外部中断0 1 定时器0 2 外部中断1 3 定时器1中断 4 串行口中断 5 定时器2中断,2、采用C51语言,在C51中定义中断服务函数的一般形式如下: 函数类型 函数名 interrupt n usin

温馨提示

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

评论

0/150

提交评论