




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章AT89C51单片机中断系统 教学目标5 1中断概述5 2AT89C51中断系统5 3中断系统的应用本章小结思考题与习题 教学目标 通过本章教学 要求达到以下目标 1 熟记AT89C515个中断源及其中断入口地址 2 熟悉TCON SCON IE IP的结构 控制作用和设置方法 3 理解AT89C51中断响应过程 4 了解中断响应等待时间 5 理解中断请求撤除情况和应对措施 6 熟悉中断优先控制的方法 7 掌握中断应用程序的编制方法 5 1中断概述 1 中断概念CPU暂时中止其正在执行的程序 转去执行请求中断的那个外设或事件的服务程序 等处理完毕后再返回执行原来中止的程序 这一过程叫做中断 中断概念类比 看电视 中断处理 中断请求 实际生活 中断返回 电话铃响 接听电话 看电视 主程序 计算机 事件发生 事件处理 主程序 图5 1中断概念示意图 图5 2中断过程示意图 2 为什么要设中断 中断解决了快速主机与慢速I O设备的数据传送 还具有如下优点 1 分时操作 CPU可以分时为多个I O设备服务 提高了计算机的利用率 2 实时响应 CPU能够及时处理应用系统的随机事件 系统的实时性大大增强 3 可靠性高 CPU具有处理设备故障及掉电等突发性事件能力 从而使系统可靠性提高 3 中断源及其优先级 中断源是指能发出中断请求 引起中断的装置或事件 一个单片机系统通常有多个中断源 而单片机CPU在某一时刻只能响应一个中断源的中断请求 当多个中断源同时向CPU发出中断请求时 则必须按照 优先级别 进行排队 CPU首先选定其中中断级别最高的中断源为其服务 然后按由高到低的排队顺序逐一服务 完毕后返回断点地址 继续执行主程序 这就是 中断优先级 的概念 4 中断源的管理 单片机系统中有一个专门用来管理中断源的机构 它就是中断控制寄存器 我们可以通过对其编程来设置中断源的优先级别以及是否允许某个中断源的中断请求等 5 2AT89C51中断系统的结构 5 2 1中断源及中断系统构成1 中断源 1 INT0 外部中断0 2 INT1 外部中断1 3 T0 定时 计数器0溢出中断 4 T1 定时 计数器1溢出中断 5 串行中断 包括串行接收中断RI和串行发送中断TI 5 2 1中断源及中断系统构成 IE0 EX0 TF0 IE1 TF1 TI ES ET1 EX1 ET0 RI IP 硬件查询 高级中断请求 低级中断请求 中断入口地址 中断源 INT0 INT1 中断入口地址 中断源 1 0 IE PX0 PS PT1 PX1 PT0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 EA 1 1 SCON 1 1 T0 T1 RX TX IT0 IT1 0 0 TCON 图5 3AT89C51中断系统结构示意图 5 2 2中断标志与中断控制 1 中断标志 1 定时器控制寄存器TCONTCON为8位特殊功能寄存器 其结构 位名称 位地址及其功能如表5 1所示 表5 1TCON的结构 位名称 位地址和功能 T1中断标志位 T1启停控制位 T0中断标志位 TCON 0 INT1中断标志位 INT0中断标志位 INT1触发方式位 INT0触发方式位 T0启停控制位 TCON 1 TCON 2 TCON 3 TCON 4 TCON 5 TCON 6 TCON 7 表5 1TCON的结构 位名称 位地址和功能 TCON 0 TCON 1 TCON 2 TCON 3 TCON 4 TCON 5 TCON 6 TCON 7 外部中断0采用电平触发 0 外部中断0采用边沿触发 1 1 1 外部中断1采用边沿触发 0 外部中断1采用电平触发 0000 单片机复位时或无中断请求发生时 这些位均为0 外部中断1发出中断请求时 外部中断0发出中断请求时 1 1 1 T0发出中断请求时 T1发出中断请求时 单片机复位或T0停止计数 启动T0开始计数 单片机复位或T1停止计数 启动T1开始计数 0 0 1 1 2 SCON的中断标志 串行控制寄存器SCON的结构 位名称 位地址及其功能如表5 2所示 其中只有TI和RI两位用来表示串行口中断标志位 表5 2SCON的结构 位名称 位地址和功能 SCON 0 串行发送中断标志位 串行接收中断标志位 SCON 1 SCON 2 SCON 3 SCON 4 SCON 5 SCON 6 SCON 7 1 TI 为串行口发送中断标志位 位地址为99H 在串行口发送完一组数据时 TI由硬件自动置位 TI 1 请求中断 当CPU响应中断进入中断服务程序后 TI状态不能被硬件自动清除 而必须在中断程序中由软件来清除 2 RI 为串行口接收中断标志位 位地址为98H 在串行口接收完一组串行数据时 RI由硬件自动置位 RI 1 请求中断 当CPU响应中断进入中断服务程序后 也必须由软件来清除RI标志 1 中断允许控制寄存器IE 2 中断控制 AT89C51设有专门的开中断和关中断指令 中断的开放和关闭是通过中断允许寄存器IE各位的状态进行两级控制的 所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位 每位状态靠软件来设定 中断允许控制寄存器IE各位的定义及其功能等如表5 3所示 表5 3IE的结构 位名称 位地址和功能 中断总允许控制位 定时器T1的溢出中断允许控制位 外部中断1的中断允许控制位 定时器T0的溢出中断允许控制位 外部中断0的中断允许控制位 串行口中断允许控制位 定时器T2的溢出中断允许控制位 表5 3IE的结构 位名称 位地址和功能 禁止所有中断 开通外部中断 INT0禁止其他中断 0 000000 开通总中断 1 所有中断仍被禁止 000001 010010 开通T0和串行口中断禁止其他中断 111111 开通所有中断 1 EA IE 7 总允许控制位 位地址为AFH EA状态可由软件设定 若EA 0 禁止AT89C51所有中断源的中断请求 若EA 1 则总控制被开放 但每个中断源是允许还是被禁止CPU响应 还受控于中断源的各自中断允许控制位的状态 2 ET2 IE 5 定时器T2溢出中断允许控制位 位地址是ADH 3 ES IE 4 串行口中断允许控制位 位地址是ACH 4 ET1 IE 3 定时器T1的溢出中断允许控制位 位地址为ABH 5 EX1 IE 2 外部中断的中断请求允许控制位 位地址是AAH ET0 IE 1 定时器T0的溢出中断允许控制位 位地址是A9H 7 EX0 IE 0 外部中断的中断请求允许控制位 位地址是A8H 2 中断优先级控制寄存器IP AT89C51的中断源优先级是由中断优先寄存器IP来进行控制的 其5个中断源划分为两个中断优先级 高优先级和低优先级 每一个中断源都可以通过IP寄存器中的相应位设置成高 优先 级中断或低 优先 级中断 相应位置 1 定义为高级中断 相应位清 0 定义为低级中断 因此 CPU对所有中断请求只能实现两级中断嵌套 IP寄存器的结构 位名称和位地址如表5 4所示 表5 4IP的结构 位名称 位地址和功能 定时器T2中断优先级控制位 串行口中断优先级控制位 定时器T1中断优先级控制位 定时器T0中断优先级控制位 INT0中断优先级控制位 INT1中断优先级控制位 111111 高级中断 同为1时亦称其为同级中断 低级中断 同为0时亦称其为同级中断 000000 如果同样优先级的请求同时接收到 则内部对中断源的查询次序决定先接受哪一个请求 表5 5列出了同 一优先 级中断源的内部查询顺序 表5 5中断源的内部查询顺序 中断优先级三条原则 1 同时收到几个中断时 响应优先级别最高的 2 中断过程不能被同级 低优先级所中断 3 低优先级中断服务 能被高优先级中断 5 2 3中断处理过程 中断处理过程大致可分为4步 中断请求 中断响应 中断服务和中断返回 1 中断请求当中断源要求CPU为它服务时 必须发出一个中断请求信号 CPU将相应的中断请求标志位置 1 为确保该中断得以实现 中断请求信号应保持到CPU响应该中断后才能取消 CPU会不断及时地查询这些中断请求标志位 一旦查询到某个中断请求标志置位 CPU就响应这个中断源的中断请求 2 中断响应 同时满足以下4个条件时 才可能响应中断 1 有中断请求 2 对应中断允许位为1 3 开中断 即EA 1 4 正在执行的指令不是RETI或者是访问IE IP的指令 否则必须再执行另外一条指令后才能响应 AT89C51响应某一中断请求后要进行如下操作 1 完成当前指令的操作 2 保护断点地址 将PC内容压入堆栈 3 屏蔽同级的中断请求 4 将中断源入口地址 固定的 送入PC寄存器 自动转入相应中断程序入口地址 中断源口地址如表5 6所示 表5 6AT89C51中断入口地址表 3 中断响应时间 中断响应 从标志置1到进入相应的中断服务 至少要3个完整的机器周期 如图5 4所示 图5 4中断响应时间示意图 4 中断请求的撤除 中断源发出中断请求后 相应的中断请求标志位置 1 而CPU响应中断后 必须及时清除中断请求 1 标志 否则中断响应返回后 将再次进入该中断 引起死循环出错 有关中断请求标志撤除有如下4种情况 1 定时 计数器T0 T1中断 CPU响应中断时就用硬件自动清除了相应的中断请求标志TF0 TF1 2 对采用边沿触发方式的外部中断 CPU响应中断时 硬件也会自动清除相应的中断请求标志IE0或IE1 3 对采用电平触发方式的外部中断 CPU响应中断时 虽也用硬件自动清除相应的中断请求标志IE0或IE1 但相应引脚 P3 2或P3 3 的低电平信号若继续保持下去中断请求标志IE0或IE1就无法清零 也会发生上述重复响应中断的情况 4 对串行口中断 包括串发TI 串收RI CPU响应中断后并不能自动清除相应的中断请求标志TI或RI 因此在响应串行口中断请求后 必须由用户在中断服务程序的相应位置通过指令将其清除 复位 5 2 4中断返回 注意 1 不能用RET指令代替RETI指令 2 中断服务程序中PUSH与POP须成对使用 AT89C51响应中断后 自动执行中断服务程序 在中断服务程序中 只要遇到RETI指令 不论在什么位置 单片机就结束本次中断服务 返回原程序 因此 在中断服务程序的最后必须有一条RETI指令 用于中断返回 5 3中断系统的应用 5 3 1中断初始化设置1 设置堆栈指针SP设置适宜的堆栈深度 1 深度要求不高且工作寄存器组1 3不用时 可维持复位时状态 SP 07H 深度为24B 20H 2FH为位寻址区 2 要求有一定深度时 可设SP 60H或50H 这时深度分别为32B和48B 2 定义中断优先级根据中断源的轻重缓急 划分高优先级和低优先级 3 定义外部中断触发方式一般情况下 应定义边沿触发方式为宜 若外部中断必须采用电平触发方式时 应在硬件电路上和中断服务程序中采取撤除中断请求信号的措施 4 开放中断由于AT89C51采用了二级中断控制方式 因此开放中断必须同时开放二级中断控制 即同时置位EA和需要开放中断的中断允许控制位 5 3 2中断服务主程序 在中断服务入口地址设置一条跳转指令 以便转移到中断服务程序的实际入口处 2 数据需要保护现场 通常是保护Acc PSW和DPTR等等特殊功能寄存器中的内容 3 中断源请求中断服务要求的操作 这是中断服务程序的主体 4 若是外部中断电平触发方式 应有中断标志撤除操作 若是串行收发中断 应有对RI TI清0指令 5 恢复现场 与保护现场相对应 注意按 先进后出 后进先出 的原则操作 6 中断返回 最后一条指令必须是RETI P1 P3 0 Q D CLK CLR 选通信号 5V INT0 数据 89C51 Vcc 例5 1单外部中断源应用示例 5 3 3中断系统应用举例 图5 5外部中断源应用 ORG0000HSTART LJMPMAIN 跳转到主程序ORG0003HLJMPINTO 转中断服务程序ORG0030H 主程序MAIN CLRIT0 设为电平触发方式SETBEA CPU开放中断SETBEX0 允许中断MOVDPTR 1000H 设置数据区指针 主程序 ORG0200HINT0 PUSHPSW 保护现场PUSHACCCLRP3 0 由P3 0输出0NOPNOPSETBP3 0 由P3 0输出1 撤除MOVA P1 输入数据MOVX DPTR A 存入数据存储器INCDPTR 修改指针 指向下一单元 POPACC 恢复现场POPPSWRETI 中断返回 中断服务程序 例5 2利用定时器作外部中断源 AT89C51内部有两个定时器 计数器 当它们选择为计数器工作方式时 T0 P3 4 或T1 P3 5 引脚上发生的负跳变将使T0或T1计数器加1计数 因此 可将P3 4 P3 5作为外部中断请求输入线 将T0或T1计数初值设定为满量程 0FFH 当T0 T1引脚上的电平发生负跳变时 计数器加1计数溢出 引起中断 因而可当作外中断使用 以计数器T0为例 初始化程序如下 MOVTMOD 06H 置T0为工作方式2MOVTL0 0FFH 置T0计数初值MOVTH0 0FFHSETBEA 开CPU中断SETBET0 允许T0中断SETBTR0 启动T0计数 END 例5 3扩展外部中断源 在变频调速器中都设有过流 OC 过压 OV 欠压 UV 过热 OH 这四种故障保护 当任一故障发生时 都要立刻停机处理 避免故障范围扩大 这种情况必须采用中断方式 使单片机立刻响应中断处理 试设计其硬件电路和软件程序 根据要求 四个故障相当四个中断源 可利用中断查询方法 将四个中断源归结为一个中断请求 同时四个故障信号引到P1口的四个输入端 然后在中断程序中查询P1口 确定是哪一个故障申请的中断 电路如图5 6所示 一旦发生故障 单片机必须响应中断 因此 该中断必须设置成最高级中断 在中断程序中可以显示故障信息 图5 6扩展4个外中断源电路 P1 3P1 2P1 1P1 0 AT89C51 主程序和中断服务程序如下 ORG0000AJMPZCX1 转主程序NOPORG0013HAJMPINT1 转中断服务程序NOPORG0100HZCX1 MOVSP 30H 置堆栈指针MOVIP 04H 设INT1为最高级CLRIT1 设INT1为电平触发SETBEA 开中断SETBEX1ZCX2 其他处理程序AJMPZCX2ORG0200H INT1 PUSHPSW 保护现场PUSHACCMOVA P1 读入P1口低4位状态ANLA 0FHJNBACC0 X1 是OC中断吗 不是则转移ACALLXY1 调OC处理子程序X1 JNBACC1 X2 是OV中断吗 不是则转移ACALLXY2 调OV处理子程序X2 JNBACC2 X3 是UV中断吗 不是则转移ACALLXY3 调UV处理子程序X3 JNBACC3 X4 是OH中断吗 不是则转移ACALLXY4 调OH处理子程序X4 POPACC 恢复现场POPPSWRETIXY1 OC处理子程序 略 RET 本章小结 1 中断与中断系统 CPU暂时中止其正在执行的程序 转去执行请求中断的那个外设或事件的服务程序 等处理完毕后再返回执行原来中止的程序 这一过程叫做中断 中断是一种资源共享技术 单片机使用中断技术主要是为了进行实时控制 以便对随机发生的事件作出快速反应和及时处理 为完成中断任务的相关硬件电路和软件程序合称为中断系统 2 中断源及其入口地址 AT89C51单片机有5个中断源 分别为 INT0 T0 INT1 T1及串行口中断 包括串行接收中断RI和串行发送中断TI 5个中断源的中断入口地址分别为0003H 000BH 0013H 001BH 0023H 3 中断控制及寄存器 控制89C51中断的有3个方面 4个特殊功能寄存器 中断请求 定时和外部中断控制寄存器TCON 串行控制寄存器SCON 中断允许控制寄存器IE 中断优先级控制寄存器IP 4 中断处理过程 大致可分为中断请求 中断响应 中断服务和中断返回4个步骤 5 中断响应等待时间 一般是3 4个机器周期 最长为8个机器周期 6 中断触发方式 通常有边沿触发和电平触发两种 7 AT89C51的5个中断源可设置为两个中断优先级 高优先级和低优先级 8 编制中断应用程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年足疗连锁品牌加盟店线上线下联合营销推广合同
- 2025年购物中心品牌专柜租赁及商品陈列维护服务合同
- 2025年新型智能车库租赁与代收代付停车费用综合服务合同
- 2025年协议离婚子女抚养权分配与教育支持全面服务合同
- 简约车位车库买卖合同
- 2025-2030医疗美容光电设备渠道变革与售后服务溢价能力分析报告
- 2025-2030创新药研发管线布局与市场竞争格局研究报告
- 电池安全经济权衡-洞察及研究
- 2025年工业园区污水处理站初步设计能源管理评估报告
- RR医用装备制造商2022-2023ESG综合报告:医疗器械行业合规与监管趋势预测与应对
- 火龙罐技术课件
- 幼儿园集团化办园实施方案
- 多学科会诊MDT胃恶性肿瘤
- (33)-钠钾泵细胞生物学
- 抗反转录病毒药物的毒副作用
- 项目档案归档目录一览表(档案室用)
- GB/T 242-2007金属管扩口试验方法
- 路基压实度汇总表
- 【食品生产加工技术】香肠的加工技术
- 小学数学三年级下轴对称、平移和旋转强化练习
- 助产士咨询门诊课件
评论
0/150
提交评论