单片机中断与计时、计数器

上传人:fe****16 文档编号:120916744 上传时间:2020-02-12 格式:PPT 页数:63 大小:401KB
返回 下载 相关 举报
单片机中断与计时、计数器_第1页
第1页 / 共63页
单片机中断与计时、计数器_第2页
第2页 / 共63页
单片机中断与计时、计数器_第3页
第3页 / 共63页
单片机中断与计时、计数器_第4页
第4页 / 共63页
单片机中断与计时、计数器_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《单片机中断与计时、计数器》由会员分享,可在线阅读,更多相关《单片机中断与计时、计数器(63页珍藏版)》请在金锄头文库上搜索。

1、 中断的基本概念 80C51中断源 中断控制寄存器 中断处理过程 中断优先控制和中断嵌套 中断系统的应用 80C51定时 定时 计数器控制寄存器 定时 计数器工作方式 定时 计数器的应用 第5章 中断系统和定时 本章要点 5 1 80C51中断系统 CPU暂时暂时 中止其正在执执行的程序 转转去执执行请请求中断 的那个外设设或事件的服务务程序 等处处理完毕毕后再返回 执执行原来中止的程序 叫做中断 为什么要设置中断 提高CPU工作效率 具有实时处理功能 具有故障处理功能 实现分时操作 5 1 1 中断概述 什么叫中断 中断功能强弱是计算机性能优劣 的重要标志 中断源 中断申请 开放中断 保护现

2、场 中断服务 恢复现场 中断返回 中断涉及的几个环节 CPU 在每个机器周期的S5P2期间 会自动 查询各个中断申请标志位 若查到某标志位被 置位 将启动中断机制 CPU识别中断申请的依据 INT0 外部中断0 中断请求信号由P3 2输入 INT1 外部中断1 中断请求信号由P3 3输入 T0 定时 计数器0溢出中断 对外部脉冲计数由P3 4输入 T1 定时 计数器1溢出中断 对外部脉冲计数由P3 5输入 串行中断 包括串行接收中断RI和串行发送中断TI 5 1 2 中断源和中断控制寄存器 中断源 中断源是指能发出中断请求 引起中断的 装置或事件 80C51单片机的中断源共有5个 其中2个为

3、外部中断源 3个为内部中断源 中断请求 定时和外中断控制寄存器TCON 串行控制寄存器SCON 中断允许控制寄存器IE 中断优先级控制寄存器IP 中断控制寄存器 80C51单片机中涉及中断控制的有3个方面4个 特殊功能寄存器 INT0 INT1 T0 T1中断请求标志放在TCON中 串行中断请求标志放在SCON中 中断请求控制寄存器 TCOND7D6D5D4D3D2D1D0 位名称TF1 TF0 IE1IT1IE0IT0 位地址8FH8EH8DH8CH8BH8AH89H88H 功能 T1 中断 标标志 T0 中断 标标志 中断 标标志 触发发 方式 中断 标标志 触发发 方式 TCON的结构

4、位名称 位地址和功能如下 TCON位功能 TF1 T1溢出中断请求标志 T1计数溢出后 TF1 1 TF0 T0溢出中断请求标志 T0计数溢出后 TF0 1 TF0 TF1 定时器溢出中断申请标志位 0 定时器未溢出 1 定时器溢出申请中断 进中断后自动清零 IE1 外中断中断请求标志 当P3 3引脚信号有效时 IE1 1 IE0 外中断中断请求标志 当P3 2引脚信号有效时 IE0 1 IE0 IE1 外部中断申请标志位 0 没有外部中断申请 1 有外部中断申请 IT1 外中断触发方式控制位 IT1 1 边沿触发方式 IT1 0 电平触发方式 IT0 外中断触发方式控制位 其意义和功能与IT

5、1相似 IT0 IT1 外部中断请求的触发方式选择位 0 在INT0 INT1端申请中断的信号低电平有效 1 在INT0 INT1端申请中断的信号负跳变有效 串行控制寄存器SCON TCOND7 D6 D5D4 D3 D2D1D0 位名称 TIRI 位地址 99H98H 功能 串行发发送 中断标标志 串行接收 中断标标志 TI 串行口发送中断请求标志 RI 串行口接收中断请求标志 80C51对中断源的开放或关闭由中断允许控 制寄存器IE控制 中断允许控制寄存器IE IE的结构 位名称和位地址如下 IED7D6 D5D4D3D2D1D0 位名称EA ESET1EX1ET0EX0 位地址AFH A

6、CHABHAAHA9HA8H 中断源CPU 串行口T1T0 EA CPU中断允许控制位 总开关 EA 1 CPU开中 EA 0 CPU关中 且屏蔽所有5个中断源 EX0 外中断INT0中断允许控制位 EX0 1 INT0开中 EX0 0 INT0关中 EX1 外中断INT1中断允许控制位 EX1 1 INT1开中 EX1 0 INT1关中 ET0 定时 计数器T0中断允许控制位 ET0 1 T0开中 ET0 0 T0关中 ET1 定时 计数器T1中断允许控制位 ET1 1 T1开中 ET1 0 T1关中 ES 串行口中断 包括串发 串收 允许控制位 ES 1 串行口开中 ES 0 串行口关中

7、说明 80C51对中断实行两级控制 总控制位是EA 每一中断源还有各自的控制位 首先要EA 1 其次还要自身的控制位置 1 例如 要使INT0开中 其余关中 可执行下列指令 MOV IE 1000000lB 或者 SETB EA SETB EX0 IED7D6 D5D4D3D2D1D0 位名称EA ESET1EX1ET0EX0 位地址AFH ACHABHAAHA9HA8H 中断源CPU 串行口T1T0 中断允许控制寄存器IE PX0 INT0中断优先级控制位 PX0 1 为高优先级 PX0 0 为低优先级 PX1 INT1中断优先级控制位 控制方法同上 PT0 T0中断优先级控制位 控制方法同

8、上 PT1 T1中断优先级控制位 控制方法同上 PS 串行口中断优先级控制位 控制方法同上 中断优先级控制寄存器IP 80C51有5个中断源 划分为2个中断优先级 高优先级和低优先级 IP的结构 位名称和位地址如下 IED7D6D5D4D3D2D1D0 位名称 PSPT1PX1PT0PX0 位地址 BCHBBHBAHB9HB8H 中断源 串行口T1INT1T0INT0 例如 若要将INT1 串行口设置为高优先级 其余 中断源设置为低优先级 可执行下列指令 MOV IP 00010100B 需要指出的是 若置5个中断源全部为为高优优先级级 就等于不分优优先级级 IED7D6D5D4D3D2D1D

9、0 位名称 PSPT1PX1PT0PX0 位地址 BCHBBHBAHB9HB8H 中断源 串行口T1INT1T0INT0 中断优先级控制寄存器IP 5 1 3 中断处理过程 中断处理过程大致可分为四步 中断请求 中断响应 中断服务 中断返回 中断请求 中断源发出中断请求信号 相应的中断请求标志位 在中断允许控制寄存器IE中 置 1 中断响应 CPU查询 检测 到某中断标志为 1 在满足中 断响应条件下 响应中断 中断响应条件 该中断已经 开中 CPU此时没有响应同级或更高级的中断 当前正处于所执行指令的最后一个机器周期 正在执行的指令不是RETI或者是访向IE IP的指 令 否则必须再另外执行

10、一条指令后才能响应 中断响应操作 CPU响应中断后 进行下列操作 保护断点地址 撤除该中断源的中断请求标志 关闭同级中断 将相应中断的入口地址送入PC 80C51五个中断入口地址 INT0 0003H T0 000BH INT1 0013H T1 001BH 串行口 0023H 执行中断服务程序 中断服务程序应包含以下几部分 保护现场 执行中断服务程序主体 完成相应操作 恢复现场 中断返回 在中断服务程序最后 必须安排一条中断返回 指令RETI 当CPU执行RETI指令后 自动完成下列 操作 恢复断点地址 开放同级中断 以便允许同级中断源请求 中断 5 1 4 中断响应等待时间 若排除CPU正

11、在响应同级或更高级的中断情况 中 断响应等待时间为 3 8个机器周期 5 1 5 中断请求的撤除 中断源发出中断请求 相应中断请求标志置 1 CPU响应中断后 必须清除中断请求 1 标志 否 则中断响应返回后 将再次进入该中断 引起死循环出 错 对定时 计数器T0 T1中断 外中断边沿触发方式 CPU响应中断时就用硬件自动清除了相应的中断请求 标志 对外中断电平触发方式 需要采取软硬结合的方 法消除后果 对串行口中断 用户应在串行中断服务程序中用 软件清除TI或RI 例 硬件电路如图所示 当外部设备有中断请求时 中 断请求信号经反相 加到锁存器CP端 作为CP脉冲 由于D端接地为0 Q端输出低

12、点平 触发 INT0生 中断 当CPU响应中断后 应在该中断服务程序中按 排两条指令 CLR P1 0 SETB P1 0 从而撤消引起重复中断的INT0低电平信号 因此一般来说 对外中断INT0 INTl 应尽量采 用边沿触发方式 以简化硬件电路和软件程序 5 1 6 中断优先控制和中断嵌套 中断优先控制 80C51中断优先控制首先根据中断优先级 此外还规定 了同一中断优先级之间的中断优先权 其从高到低的顺序 为 INT0 T0 INT1 T1 串行口 中断优先级是可编程的 而中断优先权是固定的 不 能设置 仅用于同级中断源同时请求中断时的优先次序 80C51中断优先控制的基本原则 高优先级

13、中断可以中断正在响应的低优先级中断 反之则不能 同优先级中断不能互相中断 同一中断优先级中 若有多个中断源同时请求中断 CPU将先响应优先权高的中断 后响应优先权低的中断 中断嵌套 当CPU正在执行某个中断服务程序时 如果发生更高一 级的中断源请求中断 CPU可以 中断 正在执行的低优先级中 断 转而响应更高一级的中断 这就是中断嵌套 中断嵌套只能高优先级 中断 低优先级 低优先级不能 中断 高优先级 同一优先级也不能相互 中断 中断嵌套结构类似与 调用子程序嵌套 不同 的是 子程序嵌套是在程序 中事先按排好的 中断 嵌套是随机发生的 子程序嵌套无次序限 制 中断嵌套只允许高 优先级 中断 低

14、优先级 5 1 7 中断系统的应用 中断初始化 设置堆栈指针SP 定义中断优先级 定义外中断触发方式 开放中断 安排好等待中断或中断发生前主程序应完成的操作内容 中断服务主程序 中断服务子程序内容要求 在中断服务入口地址设置一条跳转指令 转移到中断服务 程序的实际入口处 根据需要保护现场 中断源请求中断服务要求的操作 恢复现场 与保护现场相对应 注意先进后出 后进先出 操作原则 中断返回 最后一条指令必须是RETI 中断初始化 设置堆栈指针SP 因中断涉及保护断点PC地址和保护现场数据 且均要用堆栈实现保护 因此要设置适宜的堆栈深 度 深度要求不高且工作寄存器组1 3不用时 可维持复位时状态

15、SP 07H 深度为24B 20H 2FH 为位寻址区 要求有一定深度时时 可设设置SP 60H或50H 深度分别为别为 32B和48B 定义中断优先级 根据中断源的轻重缓急 划分高优先级和低优先级 用MOV IP XXH或SETB XX指令设设置 定义外中断触发方式 一般情况 定义边沿触发方式为宜 若外中断 信号无法适用边沿触发方式 必须采用电平触发发方 式时时 应应在硬件电电路上和中断服务务程序中采取撤除 中断请请求信号的措施 开放中断 注意开放中断必须同时开放二级控制 即同时 置位EA和需要开放中断的中断允许控制位 可用 MOV IE XXH指令设设置 也可用SETB EA和SETB X

16、X 位操作指令设设置 安排好等待中断或中断发生前主程序应完成的 操作内容 中断服务主程序 中断服务子程序内容要求 在中断服务入口地址设置一条跳转指令 转 移到中断服务程序的实际入口处 由于80C51相邻两个中断入口地址间只有8B的 空间 8B只能容纳一个有3 8条指令的极短程序 一般情况中断服务程序均大大超出8B长度 因此 必须跳转到其他合适的地址空间 跳转指令可用 SJMP AJMP或LJMP指令 SJMP AJMP均受跳转范围 影响 建议用LJMP指令 则则可将真正的中断服务务程 序不受限制地安排在64KB任何地方 根据需要保护现场 保护现场不是中断服务程序的必需部分 通常是 保护Acc PSW和DPTR等特殊功能寄存器中的内容 若 中断服务程序中不涉及Acc PSW DPTR 则不需保护 也不需恢复 例如 累加器A是最常用的特殊功能 寄存器 主程序中不可能不用到A 而发生中断又是 随机的 可能正好发生在对A进行操作 A中的数据还 有用时进入中断 而在中断服务程序中又涉及到A 改变了A中的内容 则在进入中断服务程序对A操作前 应对原A中数据进行保护 以便中断返回后恢复A中原 来数据

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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