第5章AT89S51的中断系统_第1页
第5章AT89S51的中断系统_第2页
第5章AT89S51的中断系统_第3页
第5章AT89S51的中断系统_第4页
第5章AT89S51的中断系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、第第 5 章章 AT89S51单片机的中断系统单片机的中断系统主要内容:主要内容: 1. AT89S51中断系统的硬件组成、工作原理。 2. 与中断系统相关的特殊功能寄存器。 3. 中断系统的应用特性。 重点掌握:重点掌握:1. 中断系统的初始化编程中断系统的初始化编程2. 中断服务子程序的设计中断服务子程序的设计执行中断服务程序5.1 AT89S51中断技术概述中断技术概述 图图5-1 中断响应和处理过程中断响应和处理过程CPU正执行程序时,单片机外部或内部发生某一事件,请求CPU迅速去处理。CPU暂时中止当前工作,转到中断服务程序处理。中断请求:中断请求:中断返回:中断返回:中断处理:中断

2、处理:处理完该事件后,再回到原来被中止的地方,继续工作。中断响应:中断响应:图图5-2 AT89S51中断系统结构示意图中断系统结构示意图5.2 AT89S51中断系统结构中断系统结构 有有5个中断请求源,两个中断优先级,可两级嵌套。个中断请求源,两个中断优先级,可两级嵌套。5.3 AT89S51中断请求源中断请求源由引脚INT0输入中断请求标志为IE0 INT1外部中断请求外部中断请求1 定时器定时器/计数器计数器T0溢出中断请求溢出中断请求 定时器定时器/计数器计数器T1溢出中断请求溢出中断请求 串行口中断请求串行口中断请求 INT0外部中断请求外部中断请求0由引脚INT1输入中断请求标志

3、为IE1中断请求标志为TF0中断请求标志为TF1请求标志为TI或RI5.4 AT89S51中断系统相关的寄存器中断系统相关的寄存器5个中断请求源的中断请求标志分别由TCON和 SCON寄存器的相应位锁存。图图5-3 特殊功能寄存器特殊功能寄存器TCON的格式的格式字节地址为88H,可位寻址。1. TCON寄存器寄存器(定时器/计数器的控制寄存器)(1)IT0选择外中断请求选择外中断请求0为为跳沿触发跳沿触发还是还是电平触发。电平触发。 IT0=0,为电平触发方式 IT0=1,为跳沿触发方式(2)IE0外部中断请求外部中断请求0的中断请求标志位。的中断请求标志位。 IE0=0,无中断请求 IE0

4、=1,有中断请求(3)IT1意义与IT0类似。(4)IE1意义与IE0类似。可由软件置“1”或清“0”1. TCON寄存器(续)寄存器(续)由硬件清“0”IE0。(5)TF0T0溢出中断请求标志位。溢出中断请求标志位。 T0计数溢出时,由硬件置“1”TF0,向CPU申请 中断,被响应后,硬件自动清硬件自动清“0”。(6)TF1T1的溢出中断请求标志位。的溢出中断请求标志位。 功能和TF0类似。 TR1、TR0 这两位与中断无关。这两位与中断无关。 注意:注意: 当AT89S51复位后,TCON寄存器被清0。1. TCON寄存器(续)寄存器(续) 2. SCON寄存器寄存器(串行口控制寄存器)字

5、节地址98H,可位寻址。格式如下:(1)TI发送中断请求标志位。发送中断请求标志位。 串口每发送完一帧串行数据后,硬件自动将TI置“1” 。 必须用软件对TI标志清“0”。(2)RI接收中断请求标志位。接收中断请求标志位。 串口接收完一个数据帧,硬件自动将RI置“1” 。 必须用软件对RI标志清“0”。5.4 AT89S51中断系统相关的寄存器(续)中断系统相关的寄存器(续) 3. IE寄存器寄存器(中断允许寄存器)IE对中断的开放和关闭为两级控制。字节地址A8H,可位寻址。格式如下:(1)EA:中断允许总控制位中断允许总控制位 0:CPU屏蔽所有的中断请求(CPU关中断); 1:CPU开放所

6、有中断(CPU开中断)。5.4 AT89S51中断系统相关的寄存器(续)中断系统相关的寄存器(续)(2)ES:串行口中断允许位串行口中断允许位0:禁止串行口中断;1:允许串行口中断。(3)ET1:定时器定时器/计数器计数器T1的溢出中断允许位的溢出中断允许位 0:禁止T1溢出中断; 1:允许T1溢出中断。(4)EX1:外部中断外部中断1中断允许位中断允许位 0:禁止外部中断1中断; 1:允许外部中断1中断。(5)ET0:定时器定时器/计数器计数器T0的溢出中断允许位的溢出中断允许位 0:禁止T0溢出中断; 1:允许T0溢出中断。 3. IE寄存器寄存器(续)(6)EX0:外部中断外部中断0中断

7、允许位。中断允许位。 0:禁止外部中断0中断; 1:允许外部中断0中断。例例5-1 若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段CLR ES ;禁止串行口中断 CLR EX1 ;禁止外部中断1中断CLR EX0 ;禁止外部中断0中断SETB ET0 ;允许定时器/计数器T0中断SETB ET1 ;允许定时器/计数器T1中断SETB EA ;CPU开中断(1)用位操作指令来实现:)用位操作指令来实现:(2 2)用字节操作指令来实现:)用字节操作指令来实现:MOV IE,#8AH 3. IE寄存器寄存器(续)4. IP寄存器寄存器(中断优先级寄存器) 两级中

8、断嵌套两级中断嵌套:两条基本规则两条基本规则:(1)低优先级可被高优先级中断,反之则不能。(2)同级中断不会被它的同级中断源所中断。5.4 AT89S51中断系统相关的寄存器(续)中断系统相关的寄存器(续)字节地址为B8H,可位寻址。格式如下:(1)PS串行口中断优先级控制位串行口中断优先级控制位(2)PT1定时器定时器T1中断优先级控制位中断优先级控制位4. IP寄存器寄存器(续) (3)PX1外部中断外部中断1中断优先级控制位中断优先级控制位(4)PT0定时器定时器T0中断优先级控制位中断优先级控制位(5)PX0外部中断外部中断0中断优先级控制位中断优先级控制位由软件可改变各中断源的中断优

9、先级由软件可改变各中断源的中断优先级1 1:高优先级中断;0 0:低优先级中断。 中断源中断源 中断级别中断级别外部中断外部中断0最高最高T0溢出中断溢出中断外部中断外部中断1T1溢出中断溢出中断串行口中断串行口中断最低最低同时收到多个同优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。查询顺序如下:4. IP寄存器寄存器(续) 5.5 有关中断的几个问题有关中断的几个问题(1)中断总允许位EA=1。(2)该中断源对应的中断请求标志为“1” 。(3)该中断源的中断允许位为“1”(4)无同级或更高级中断正在被服务。一、响应中断请求的条件?一、响应中断请求的条件?(1)由硬件自动生成一

10、条长调用指令:LCALL addr16(2)执行该指令,即把PC的内容压入堆栈以保护 断点,再将相应中断入口地址装入PC。各中断源服务程序的入口地址固定,如下所示:中断源 入口地址 外部中断0 0003H定时器/计数器T0 000BH外部中断1 0013H定时器/计数器T1 001BH串行口中断 0023H5.5 有关中断的几个问题(续)有关中断的几个问题(续)二、中断响应的主要过程?二、中断响应的主要过程?(2)所查询的机器周期不是当前正在执行指令的最 后一个机器周期。只有在当前指令执行完毕后, 才能进行中断响应。(3)正在执行的指令是RETI或是访问IE或IP的指令。 需要再去执行完一条指

11、令,才能响应新的中断请求。 如果存在上述三种情况之一,如果存在上述三种情况之一,CPU将将丢弃丢弃中断查询结果中断查询结果,不能对中断进行响应。,不能对中断进行响应。(1)CPU正在处理同级或更高优先级的中断。5.5 有关中断的几个问题(续)有关中断的几个问题(续)三、拒绝中断响应的情况?三、拒绝中断响应的情况?(1)最短响应时间为)最短响应时间为3个机器周期个机器周期:查询中断请求标志位占1个机器周期。转到相应的中断服务程序入口,需2个机器周期。5.5 有关中断的几个问题(续)有关中断的几个问题(续)四、单一中断的系统中,外部中断的响应时间?四、单一中断的系统中,外部中断的响应时间?(2)最

12、长响应时间为)最长响应时间为8个机器周期:个机器周期:若刚好是开始执行RETI或是访问IE或IP的指令,则需 把当前指令执行完再继续执行一条指令后,才能响应 中断,当前指令执行完最长需2个机器周期。再继续执行的指令若是MUL或DIV,则需4个机器周期。转到相应的中断服务程序入口,需要2个机器周期。如果已在处理同级或更高级中断,响应时间无法计算。如果已在处理同级或更高级中断,响应时间无法计算。1定时器定时器/计数器中断请求的撤消计数器中断请求的撤消 中断请求被响应后,硬件会自动清TF0或TF1。2外部中断请求的撤消外部中断请求的撤消跳沿方式外部中断请求的撤消是自动撤消的。电平方式外部中断请求的撤

13、消:除标志位清“0”自 动实现外,还需在响应后把中断请求信号引脚从 低电平强制改变为高电平。5.5 有关中断的几个问题(续)有关中断的几个问题(续)3串行口中断请求的撤销串行口中断请求的撤销五、中断请求如何撤销?五、中断请求如何撤销?在中断服务程序中用软件的方法撤销例:CLR TI 或 CLR RI 注:前注:前3条一般放在主程序的初始化程序段中。条一般放在主程序的初始化程序段中。5.6中断服务子程序的设计中断服务子程序的设计中断系统的运行必须与中断服务子程序配合才能正确使用中断系统的运行必须与中断服务子程序配合才能正确使用一、中断服务程序设计的任务一、中断服务程序设计的任务(1)设置中断允许

14、控制寄存器IE。(2)设置中断优先级寄存器IP。(3)对外中断源,是采用电平触发还是跳沿触发。(4)编写中断服务程序,处理中断请求。SETB IT0 ;外中断0为跳沿触发方式 5.6中断服务程序的设计(续)中断服务程序的设计(续)例例5-2: 假设允许外部中断0中断,并设定它为高级 中断,其它中断源为低级中断,采用跳沿 触发方式。SETB EA ;CPU开中断在主程序中编写如下程序段:在主程序中编写如下程序段:SETB ET0 ;允许外中断0产生中断SETB PX0 ;外中断0为高级中断5.6 中断服务子程序的设计(续)中断服务子程序的设计(续)二、采用中断时的主程序结构二、采用中断时的主程序结构常用的主程序结构如下:常用的主程序结构如下: ORG0000H LJMP MAIN ORG 中断入口地址中断入口地址 LJMP INT ORG XXXXHMAIN:主主 程程 序序 INT

温馨提示

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

评论

0/150

提交评论