51单片机的中断系统ppt课件

上传人:资****亨 文档编号:132629071 上传时间:2020-05-18 格式:PPT 页数:54 大小:105.50KB
返回 下载 相关 举报
51单片机的中断系统ppt课件_第1页
第1页 / 共54页
51单片机的中断系统ppt课件_第2页
第2页 / 共54页
51单片机的中断系统ppt课件_第3页
第3页 / 共54页
51单片机的中断系统ppt课件_第4页
第4页 / 共54页
51单片机的中断系统ppt课件_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《51单片机的中断系统ppt课件》由会员分享,可在线阅读,更多相关《51单片机的中断系统ppt课件(54页珍藏版)》请在金锄头文库上搜索。

1、 项目4单片机的中断系统 嵌入式单片机方向 单片机C语言程序项目设计 4 1任务说明 本节为理论内容 重点掌握单片机的中断类型 控制方式以及应用 单片机共有5个中断源 两级优先级控制 在以后的项目实践中 我们要用到定时器中断 外部中断和串行中断 4 2中断系统的结构51单片机中断系统的结构如图4 1所示 5个中断分别有5个中断源 并提供两个中断优先级控制 能够实现两级中断服务程序的嵌套 单片机的中断系统是通过4个相关的特殊功能寄存器TCON SCON IE和IP来进行管理的 因此用户可以用软件对每个中断的开和关以及优先级的控制 定时器控制寄存器TCON用于设定外部中断的中断 串口控制寄存器SC

2、ON用于保存串行口 SIO 的发送中断标志和接收中断标志 中断控制寄存器IE用于设定各个中断源的开放或关闭 各个中断源的优先级可以由中断优先级寄存器IP中的相应位来确定 同一优先级中的各中断源同时请求中断时 由中断系统的内部查询逻辑来确定响应的顺序 图4 18051单片机中断系统的结构 一 中断源单片机5个中断源都有自己的标志位 包括外部中断 P3 1 引脚接受的外部中断请求 外部中断 P3 2 引脚接受的外部中断请求 定时器 计数器0 T0 溢出中断请求 定时器 计数器1 T0 溢出中断请求 串行口完成一帧数据发送或接收中断请求源TI或RI 其中INT0和INT1一般称为外部中断 T0 T1

3、和串行口 SIO的TI和RI 则称为内部中断 在有中断请求时 由相应的中断标志位 保存其中断请求信号 分别存放在特殊功能寄存器TCON和SCON中增强型的51单片机 则比51单片机多一个中断源T2 二 中断优先级51单片机的中断系统具有两级优先级控制 系统在处理时遵循下列基本原则 1 低优先级的中断源可被高优先级的中断源中断 号的有效形式及保存定时 计数器T0和T1的中断请求标志位 而高优先级中断源不能被低级的中断源所中断 2 一种中断源 无论是高优先级或低优先级 一旦得到响应 就不会被同级的中断源所中断 3 低优先级的中断源和高优先级的中断源同时产生中断请求时 系统先响应高优先级的中断请求

4、后响应低优先级的中断请求 表4 1中断入口地址及优先级排列表 4 多个同级的中断源同时产生中断请求时 系统按照默认的顺序先后予以响应 5个中断默认优先级见表4 1 三 中断系统使用的多功能寄存器要使用8051单片机的中断功能 必须掌握4个相关的特殊功能寄存器中特定位的意义及其使用方法 下面分别介绍4个特殊功能寄存器对中断的具体管理方法 1 TCON定时器控制寄存器TCON是定时器 计数器T0和T1的控制寄存器 也用来锁存T0和T1的溢出中断请求 TF0 TF1标志及外部中断请求源标志IE0 IE1 TCON的字节地址88H 既支持字节操作 又支持位操作 位地址的范围是 IT0 外部中断0 IN

5、T0 触发方式控制位 用于设定INT0中断请求信号的有效方式 如果将IT0设定为1 则外部中断0为边沿 脉冲 触发方式 CPU在每个机器周期的S5P2采样INT0的输入信号 即单片机的P3 2脚 如果在一个机器周期中采样到高电平 在下一个机器周期中采样到低电平 则硬件自动将IE0置为 1 向CPU请求中断 如果IT0为0 则外部中断0为电平触发方式 此时系统如果检测到INT0 直至该中断信号被检测到 同时在中断返回前必须变为电平 否则会再次产生中断 概括地说 IT0 1时INT0的中断请求信号是脉冲后沿 负脉冲 有效 P3 2从1变为0时系统认为INT0有中断请求 IT0 0时 INT0的中断

6、请求信号是低电平有效 即P3 2保持为0时系统认为INT0有中断请求 IE0 外部中断0的中断请求标志位 如果IT0置1 则当P3 2上的电平由1变为0时 由硬件置位IE0 向CPU申 请中断 如果CPU响应该中断 在转向中断服务时 由硬件将IE0复位 可见 IT0用于设定INT0中断请求的信号形式 设定了IT0后 如果INT0产生了有效的中断请求信号 P3 2出现脉冲后沿或低电平 则由中断系统的硬件电路自动将IE0置位 单片机系统在工作过程的每一个机器周期的特定时刻 即S5P2 通过检测INT0的中断请求标志位IE0是1还是0来确定INT0是否有中断请求 而不是通过检测P3 2上的中断请求信

7、号来确定INT0的中断请求 端输入低电平 则置位IE0 采用电平触发时 输入到INT0端的外部中断信号必须保持低电平 IT0 1时表示有中断请求 IT0 0时则没有中断请求 下面INT1的情况类似 不再重复说明 IT1 外部中断1 INT1 的触发方式控制位 其意义和IT0相同 IE1 外部中断1的中断请求标志位 其意义和IE0相同 TF0 定时器 计数器T0的溢出中断请求标志位 当T0开始计数后 从初值开始加1计数 在计满产生溢出时 由硬件使置位TF0 向CPU请求中断 CPU响应中断时 硬件自动将TF0清零 如果采用软件查询方式 则需要由软 件将TF0清零 因此 系统是通过检查TF0的状态

8、来确定T0是否有中断请求 TF0 1表示T0有中断请求 TF0 0时则没有 TF1 定时器 计数器T1的溢出中断请求标志位 其作用同TF0 TR0和TR1分别是T0和T1的控制位 与中断无关 将在定时器 计数器应用内容中介绍 2 SCONSCON为串行口控制寄存器 主要用于设置串行口的工作方式 同时也用于保存串行口的接收中断和发送中断标志 字节地址是98H 既支持字节操作 又支持位操作 位地址的范围是98H 9FH 8位中只有最低的两位与中断有关 其格式如下 RI 串行口的接收中断标志位 8051单片机的串行口共有4中工作方式 在串行口的方式0中 每当接收到第8位数据时 由硬件置位RI 在其他

9、工作方式中 若SM2 0 在接收到停止位的中间时置位RI 若SM2 1 仅当接收到的第9位数据RB8为1时 并且在接收到停止位的中间时置位RI 表示串行口已经完成一帧数据的接收 向CPU申请中断 准备 接收下一帧数据 但当CPU转到串行口的中断服务程序时 不复位RI 必须由设计者在程序中用指令来清零RI 简单地说 串行口在接收完一帧数据时 自动将RI置位 向CPU申请中断 TI 串行口的发送中断标志位 在方式0中 每当发送完8位数据时由硬件置位 在其他方式中 在发送到停止位开始时置位TI 表示串行口已经完成一帧数据的发送 向CPU申请中断 准备发送下一帧数据 要发送的数据一旦写入串行口的数据缓

10、冲器SBUF 单片机的硬件电路就立即启动发送器进行发送 CPU响应中断时并不清零TI 同样要在程序中用指令来清零 3 中断屏蔽寄存器IE8051单片机的CPU对中断源的开放或屏蔽 即闭 是由片内的中断允许寄存器IE 也称为中断控制寄存器或中断屏蔽寄存器 控制的 IE的字节地址是A8H 既支持字节操作 又支持位操作 位地址的范围是A8H AFH 8位中有6位与中断有关 剩下的两位没有定义 其格式如下 EA CPU的中断开放标志 EA 0时 CPU屏蔽所有的中断请求 此时即使有中断请求 系统也不会去响应 EA 1时 CPU开放中断 但每个中断源的中断请求是允许还是被禁止 还需由各自的控制位确定 E

11、S 串行口的中断控制位 ES 1 允许串行口中断 ES 0 禁止串行口中断 ET1 定时器 计数器1的溢出中断控制位 ET1 1 T1的中断开放 ET1 0 T1的中断被关闭 EX1 外部中断1的中断控制位 EX1 1 允许外部中断1中断 EX1 0 禁止外部中断1的中断 ET0 定时器 计数器T0的溢出中断控制位 ET0 1时允许T0中断 ET0 0 禁止T0中断 EX0 外部中断0的中断控制位 EX0 1 允许外部中断0的中断 EX0 0 禁止外部0的中断 可见 EA 0时 所有的中断都被屏蔽 此时IE低5位的状态没有任何作用 EA 1时 可以通过对IE 设置来开放或关闭相应的中断 在图5

12、 1中可以很直观地看出来 单片机复位后 IE寄存器被清零 所有的中断都被屏蔽 IE寄存器中各个位的状态支持位寻址 用户根据要求用指令SETB置位或CLR清零 而实现相应的中断源允许中断或禁止中断 当然也可以采用字节操作来实现 例如 若要求开放外部中断 关闭内部中断 则可以用两条置位指令将EA EX0和EX1置位 ES ET1和ET0保持为系统复位后的默认值0 如果使用字节操作方式 则一 条MOV指令即能实现 即MOVIE 1xx00101B 其中的两个x对应的是无关位 可以任意为1或0 4 中断优先级控制寄存器8051单片机的中断系统有两个中断优先级 对于每一个中断请求源都可编程为高优先级中断

13、或低优先级中断 实现两级中断嵌套 中断优先级是由片内的中断优先级寄存器IP控制的 IP的字节地址是 B8H 既支持字节操作 又支持位操作 位地址的范围是B8H BFH 8位中有5位与中断有关 剩下的3位没有定义 其格式如下 PS 串行口的中断优先级控制位 PS 1时 串行口被定义为高优先级中断源 PS 0时 串行口被定义为低优先级中断源 PT1 定时器 计数器T1的中断优先级控制位 PT1 1 T1被定义为高优先级中断源 PT1 0 T1被定义为低优先级中断源 PX1 外部中断1 INT1 的优先级控制位 PX 1 外部中断1被定义为高优先级中断源 PX0 0 外部中断1被定义为低优先级中断源

14、 PT0 定时器 计数器T0的中断优先级控制位 其功能同PT1 PX0 外部中断0 INT0 的优先级控制位 其功能同PX1 中断优先级控制寄存器IP的各位都由用户置位或复位 可用位操作指令或字节操作指令更新IP的内容 以改变各中断源的中断优先级 单片机复位后IP全为0 各个中断源均为低优先级中断 4 3中断响应过程 单片机的中断的处理过程可分为中断响应 中断处理和中断返回3个阶段 下面介绍8051单片机的中断处理过程 一 中断的响应条件在每个机器周期的S5P2时刻 单片机依次采样每一个中断标志位 而在下一个机器周期对采样到的中断进行查询 如果在前一个机器周期的S5P2有 中断标志 则在查询周

15、期内便会查询到并按优先级高低进行中断处理 中断系统将控制程序转入相应的中断服务程序 CPU响应中断应具备的条件是 首先有中断源发出中断请求 然后CPU中断允许位EA为 1 即CPU开中断 并且申请中断的中断源 其相应的中断允许位为 1 即允许相应的中断源中断 条件满足时 一般CPU会响应中断请求 CPU响应中断时 会根据中断源的类别 在硬件的控制下 程序转向相应的中断服务程序入口单元 执行中断服务程序 二 中断的响应过程51单片机的中断系统中分为两个中断优先级 每一中断请求源均可通过对IP寄存器的编程为高优先级中断或低优先级中断 并可实现多级中断嵌套 一个正在执行的低优先 应新的中断请求 为了

16、实现上述功能 51单片机的中断系统中有两个不可寻址的优先级状态触发器 一个指出某高优先级的中断正在得到服务 所有后来的中断请求被阻级中断服务程序能被高优先级的中断请求所中断 但不能被另一个同级或低级的中断源所中断 因此 如果CPU正在执行高优先级的中断服务程序 则不能被任何中断源所中断 必须等到当前的中断服务程序执行结束 遇到返回指令 RETI 返回主程序后 至少再执行一条指令才能响 应新的中断请求 为了实现上述功能 51单片机的中断系统中有两个不可寻址的优先级状态触发器 一个指出某高优先级的中断正在得到服务 所有后来的中断请求被阻断 另一个触发器指出某低优先级的中断正在得到服务 所有同级的中断请求都被阻断 但不能阻断高优先级的中断请求 如果8051单片机满足中断响应的条件 并且不存在中断被屏蔽的情况 CPU就响应相应的中断请求 在实际的 响应过程中 CPU首先置位被响应中断的优先级状态触发器 以屏蔽 即关闭 同级和低级的中断请求 然后 根据中断源的类别 在硬件的控制下 内部自动执行一条子程序调用指令 将程序转移至相应的中断入口处 开始执行中断服务程序 在转入中断服务程序时 子程序调用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号