章STC89C52单片机中断系统ppt课件

上传人:钟*** 文档编号:5842963 上传时间:2020-02-09 格式:PPT 页数:57 大小:2.78MB
返回 下载 相关 举报
章STC89C52单片机中断系统ppt课件_第1页
第1页 / 共57页
章STC89C52单片机中断系统ppt课件_第2页
第2页 / 共57页
章STC89C52单片机中断系统ppt课件_第3页
第3页 / 共57页
点击查看更多>>
资源描述
5 1中断概念5 25 2STC89C52单片机中断系统5 2 1中断系统结构5 2 2中断源5 2 3中断请求标志5 2 4中断控制寄存器5 3中断响应5 3 1中断响应条件5 3 2外部中断响应时间5 3 3中断请求的撤销5 4中断程序的设计 1 本章主要内容 叙述中断概念和基本的中断术语 介绍STC89C52单片机中断系统的组成 详细叙述与中断有关的特殊功能寄存器各位功能和作用 叙述中断响应的硬件处理过程 中断响应的条件 外部中断响应时间 中断请求撤销的方法 叙述中断服务子程序设计要考虑的几个问题 采用中断时的主程序结构 中断服务子程序的流程 最后以边沿触发的外部中断仿真示例结束 2 中断定义 当机器正在执行程序的过程中 一旦遇到一些异常或特殊请求时 就停止正在执行的程序 而转入必要的处理 并在处理完毕后 立即返回断点继续执行 3 中断响应过程 图5 1 4 关于中断有如下术语 中断源 发出中断请求的设备称为中断请求源 简称中断源 中断向量 所谓中断向量就是中断服务程序的入口地址 中断响应 对于中断请求给出的处理 中断嵌套 在中断服务程序中又响应了其它中断请求 该过程称为中断嵌套 5 高优先级中断请求可以打断低优先级中断 反之 低优先级中断请求不可以打断高优先级及同优先级中断 当两个相同优先级中断同时产生时 将由查询次序来决定系统先响应哪个中断 6 中断嵌套实现过程 图5 2 7 5 2STC89C52单片机中断系统 5 2 1中断系统结构STC89C51RC RD 系列单片机的中断系统结构示意图如图5 2所示 该中断系统由中断源 中断标志 中断允许控制寄存器和中断优先级控制寄存器等构成 8 5 2 2中断源 传统的51系列单片机5个基本中断源为 外部中断0 中断服务程序入口地址为0003H 中断请求标志为IE0 定时器0 中断服务程序入口地址为000BH 中断请求标志为TF0 外部中断1 中断服务程序入口地址为0013H 中断请求标志为IE1定时器1 中断服务程序入口地址为001BH 中断请求标志为TF1 串行口中断 UART 中断服务程序入口地址为0023H 中断请求标志为TI和RI 9 STC89C52单片机在5个中断源基础上增加三个中断源为 定时器2 中断服务程序入口地址为002BH 中断请求标志为TF2和EXF2 外部中断2 中断服务程序入口地址为0033H 中断请求标志为IE2 外部中断3 中断服务程序入口地址为003BH 中断请求标志为IE3 注意 此处INTi i 0 1 2 3 低电平有效 当外部有中断触发信号时 硬件自动将标志IEi i 0 1 2 3 置1 定时器i i 0 1 2 当定时时间到时 硬件自动将标志TFi i 0 1 2 置1 10 表5 1中断源 中断向量地址和中断请求标志表 返回 11 5 2 3中断请求标志 STC89C52单片机中断请求标志由TCON SCON T2CON XICON特殊功能寄存器相应位来锁定 12 IT1 外部中断1的中断触发方式控制位IE1 外部中断1的中断请求标志IT1 IE1含义类同外部中断0 IT0 外部中断0的中断触发方式控制位 若IT0 0 电平触发 若IT0 1 下降沿触发 IE0 外部中断0的中断请求标志 若IE0 0 无中断请求 若IE0 1 有中断请求 13 1 TCON 方式寄存器TCON 定时 计数器的控制寄存器 字节地址 88H 14 若TF1 1 有中断请求 若TF1 0无中断请求 TF0 定时 计数器0溢出中断请求标志 计数器满产生溢出 它由硬件置位 若TF0 1有中断请求 若TF0 0无中断请求 注意 中断响应时 硬件会自动清标志位 也可由软件清0 TR1 TR0这2位与中断系统无关 将在第6章定时器 计数器中介绍 TF1 定时 计数器1溢出中断请求标志 15 2 SCON 串行口控制寄存器SCON字节地址 98H 可位寻址 16 TI 串行口发送中断请求标志位TI 1 CPU向串口的发送缓冲器SBUF写入1B的数据 就启动1帧串行数据的发送 送完后 硬件自动置位TI TI 0 无发送中断请求RI 串行口接收中断请求标志位RI 1串行口接收完1个串行数据帧 硬件自动置位RI RI 0 无接收中断请求注 响应串口中断时 硬件并不清中断标志位 由软件清0 复位后 SCON 00H 17 3 T2CON 方式寄存器T2CON 定时 计数器2的控制寄存器 字节地址 C8H 可位寻址 18 D7位为定时器 计数器2的溢出中断请求标志位TF2 若TF2 1有中断请求 若TF2 0无中断请求D6 D0这7位与中断系统无关 将在第6章定时器 计数器中介绍 19 4 XICON XICON寄存器为附加的控制寄存器 字节地址为C0H 可位寻址 20 IT3 外部中断3的中断触发方式控制位IE3 外部中断3的中断请求标志IT3和IE3含义类同外部中断2 IT2 外部中断2的中断触发方式控制位 若IT2 0 电平触发 若IT2 1 下降沿触发 IE2 外部中断2的中断请求标志 若IE2 0 无中断请求 若IE2 1 有中断请求 注意 对于D2 D3 D6 D7位功能将在本章5 2 4节讲解 21 5 2 4中断控制寄存器 STC89C52单片机中断控制寄存器由IE XICON IP IPH组成 各中断源的中断控制寄存器见表5 6所示 表5 6 22 表5 6RC RD 系列8051单片机中断特殊功能寄存器 23 一 中断允许控制寄存器 1 IE寄存器IE寄存器的字节地址为A8H 可位寻址 24 ET1 定时 计数器1的溢出中断允许位 EX1 外部中断1中断允许位 ET0 定时 计数器0的溢出中断允许位 EX0 外部中断0中断允许位 注意 各位都是 1 允许中断 0 禁止中断 ES 串行口中断允许位 ET2 定时 计数器2的溢出 外部触发中断允许位 EA 中断允许总开关 25 若 IE 85H问 那些中断源打开 那些被屏蔽 IE 10000101 外部中断0和外部中断1打开 定时中断0 1 2和串行口中断被屏蔽 若 IE 05H问 那些中断源打开 那些被屏蔽 IE 00000101 因总中断允许为0 所有中断都被屏蔽 26 例1 若允许片内3个定时器 计数器中断 并禁止其他中断源的中断请求 请编写设置IE的相应程序段 1 用位操作指令CLRESCLREX0CLREX1SETBET0SETBET1SETBET2SETBEA 2 用字节操作指令MOVIE AAH 10101010B上述两段程序对IE的设置是相同的 27 27 2 XICON寄存器XICON寄存器的字节地址为C0H 可位寻址 28 注意 XICON寄存器中D7 D3功能在本章本节中断优先级控制寄存器叙述 XICON寄存器中D0 D1 D4 D5位功能在本章5 2 3节已有介绍 此处不重复叙述 1 EX2 附加的外部中断2中断允许位 EX2 1中断允许 EX2 0中断禁止 2 EX3 附加的外部中断3中断允许位 EX3 1中断允许 EX3 0中断禁止 29 二 中断优先级控制寄存器 STC89C52单片机8个中断源硬件自动配置了相同优先级别的中断查询次序见表5 1 外部中断0最优先 依次是定时 计数器0 外部中断1 定时 计数器1 串行口中断 定时 计数器2 外部中断2 外部中断3为最低 STC89C52单片机有四级中断 通过软件来配置 由中断控制寄存器IP IPH XICON来设置 表5 1 30 IP寄存器IP寄存器是中断优先级低位寄存器 字节地址为B8H 可位寻址 返回 31 D0 PX0 外部中断0中断优先级控制位低位 D1 PT0 定时器0中断优先级控制位低位 D2 PX1 外部中断1中断优先级控制位低位 D3 PT1 定时器1中断优先级控制位低位 D4 PS 串行口中断优先级控制位低位 D5 PT2 定时器2中断优先级控制位低位注意 IP为各中断源中断优先级低位寄存器与各中断源中断优先级高位寄存器IPH配合来配置各个中断源的中断优先级 共有4级 32 2 IPH寄存器IPH寄存器是中断优先级高位寄存器 字节地址为B7H 不能进行位寻址 返回 33 D0 PX0H 外部中断0中断优先级控制位高位 D1 PT0H 定时器0中断优先级控制位高位 D2 PX1H 外部中断1中断优先级控制位高位 D3 PT1H 定时器1中断优先级控制位高位 D4 PSH 串行口中断优先级控制位高位 D5 PT2H 定时器2中断优先级控制位高位 D6 PX2H 外部中断2中断优先级控制位高位 D7 PX3H 外部中断3中断优先级控制位高位注意 IP为各中断源中断优先级低位寄存器与各中断源中断优先级高位寄存器IPH配合来配置各个中断源的中断优先级 共有4级 34 注意 STC89C52单片机4级中断优先级由软件配置 它是由各个中断源的优先级高位和低位一起来配置 例如 外部中断2优先级高位PX2H和低位PX2配置 PX2HPX2 00 01 10 11 分别配置外部中断2为优先级0 最低 优先级1 优先级2 优先级3 最高 同理知8个中断源各优先级配置方法见表5 1中断优先级设置 PX2位对应附加外部中断2优先级配置的低位 PX3位对应附加外部中断3优先级配置的低位 例如 将定时 计数器2设置为最高中断优先级3级 则有 MOVIP 20HMOVIPH 20H 返回 35 36 IP 例2 IP IPH寄存器初始化 STC89C52的两个外部中断0和1请求为最高优先级即3级 定时 计数器0和1为中断优先级2级 其他中断请求为最低优先级 编写初始化程序 根据题意知 PX0HPX0 11 PX1HPX1 11 PT0HPT0 10 PT1HPT1 10 PT2HPT2 00 PSHPS 00 PX2HPX2 00 PX3HPX3 00MOVIP 05H 00000101MOVIPH 0FH 00001111MOVXICON 55H 外部中断2和3下降沿触发 中断允许 IPH XICON 36 5 3中断响应中断响应的过程 首先由硬件自动生成一条长调用指令 LCALLaddr16 就是程序存储区中相应的中断入口地址 例如 对于外部中断0的响应 硬件自动生成的长调用指令为LCALL0003H首先将程序计数器PC的内容压入堆栈以保护断点 再将中断入口地址装入PC 使程序转向响应中断请求的中断入口地址 各中断源服务程序的入口地址 如表5 1所示 37 表5 1 37 1 响应中断请求的条件 必要条件 1 CPU开中断 即EA 1 2 该中断源对应的中断请求标志为1 3 该中断源的中断允许位 14 无同级或更高级中断正在被服务 5 3 1中断响应条件 38 中断响应是有条件的 当遇到下列三种情况之一时 中断响应被封锁 1 CPU正在处理同级或更高优先级的中断 2 所查询的机器周期不是当前正在执行指令的最后一个机器周期 只有在当前指令执行完毕后 才能进行中断响应 以确保当前指令执行的完整性 3 正在执行的指令是RETI或是访问IE或IP的指令 因为按照AT89S51中断系统的规定 在执行完这些指令后 需要再执行完一条指令 才能响应新的中断请求 如果存在上述三种情况之一 CPU将丢弃中断查询结果 不能对中断进行响应 39 39 5 5外部中断的响应时间使用外部中断时 需考虑从外部中断请求到转向中断入口地址所需的时间 外部中断的最短响应时间为3个机器周期 其中中断请求标志位查询占1个机器周期 而这个机器周期恰好处于指令的最后一个机器周期 在这个机器周期结束后 中断即被响应 CPU接着执行一条硬件子程序调用指令LCALL到相中断服务程序入口 需要2个机器周期 外部中断响应的最长时间为8个机器周期 在CPU进行中断标志查询时 刚好才开始执行RETI或访问IE或IP的指令 需执行完指令再继续执行一条指令后 才响应中断 40 40 执行RETI或访问IE或IP的指令 最长需要2个机器周期接着再执行一条指令 最长指令 乘法指令MUL和除法指令DIV 来算 也只有4个机器周期 再加上硬件子程序调用指令LCALL的执行 需要2个机器周期 所以 外部中断响应的最长时间为8个机器周期 如果已经在处理同级或更高级中断 外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间 这种情况下 响应时间就无法计算了 这样 在一个单一中断的系统里 STC89C52单片机对外部中断请求的响应时间总是在3 8个机器周期之间 41 5 3 3中断请求的撤销某个中断请求被响应后 就存在着一个中断请求的撤销问题 1 定时器 计数器中断请求的撤销在中断响应后 硬件会自动把中断请求标志位 TF0 TF1 清0 自动撤销 TF2或EXF2使用软件清零 如CLRTF2或CLREXF22 外部中断请求的撤销 1 跳沿方式外部中断请求的撤销包括两项 中断标志位清0和外中断信号的撤销 中断标志位清0是在中断响应后由硬件自动完成的 外中断请求信号的撤销 由于跳沿信号过后也就消失了 自动撤销 42 2 电平方式外部中断请求的撤销电平方式外中断请求的撤销 其中中断请求标志自动撤销 但中断请求信号的低电平可能继续存在 为此 除了标志位清 0 之外 还需在中断响应后把中断请求信号输入引脚从低电平强制改变为高电平 如图5 3所示 43 图5 3电平方式的外部中断请求的撤销电路 43 由图5 3 用D触发器锁存外来的中断请求低电平 并通过D触发器的输出端Q接到 或 所以 增加的D触发器不影响中断请求 中断响应后 利用D触发器的SD端接AT89S51的P1 0端 因此 只要P1 0端输出一个负脉冲就可以使D触发器置 1 撤销低电平的中断请求信号 负脉冲可在中断服务程序中增加如下指令 ORLP1 01H P1 0为 1 ANLP1 0FEH P1 0为 0 ORLP1 01H P1 0为 1 44 44 3 串行口中断请求的撤销响应串行口的中断后 CPU无法知道是接收中断还是发送中断 还需测试这两个中断标志位 以判定是接收操作还是发送操作 然后才清除 所以串行口中断请求的撤销只能使用软件的方法 在中断服务程序中进行 即用如下指令在中断服务程序中对串行口中断标志位进行清除 CLRTI 清TI标志位CLRRI 清RI标志位 45 45 汇编语言 中断程序的设计 一 中断程序设计任务1 设置IE2 设置IP3 若为外部中断 需设置触发方式 4 编写中断服务程序 处理中断请求 46 二 采用中断时的程序结构 ORG0000HLJMPMAINORG中断入口地址LJMPINTMAIN INT 主程序 中断服务程序 47 三 中断服务程序流程 关中断现场保护开中断中断处理关中断现场恢复开中断中断返回 48 根据中断服务程序流程 编写中断服务程序 设现场保护只将PSW寄存器和累加器A的内容压入堆栈中保护 一个典型的中断服务子程序如下 INT CLREA CPU关中断PUSHPSW 现场保护PUSHAccSETBEA 总中断允许中断处理段CLREA 关中断POPAcc 现场恢复POPPSWSETBEA 总中断允许RETI 中断返回 恢复断点 49 49 例5 3 根据图5 3 DSN所示 外部中断1为边沿触发的外部中断源 当按下按键K1 产生外部中断1信号 单片机读取输入信号P1 0 P1 3引脚 将采样到信号转换为输出信号去驱动相应发光二极管的亮灭 单片机的工作频率为11 0592MHz 编写相应驱动程序 图5 5 50 51 程序清单 1 汇编程序中断方式ORG0000HLJMPMAIN 上电转向主程序ORG0013H 外部中断1入口地址LJMPEXINT1 指向中断服务子程序ORG0100H 主程序MAIN MOVSP 50HSETBIT1 选择边沿触发方式SETBEX1 允许外部中断1SETBEA CPU允许中断HERE AJMPHERE 主程序踏步 52 以下是中断服务子程序 EXINT1 MOVP1 0FFHMOVA P1 读取P1口输入信号SWAPA 将采样到信号转换为输出信号MOVP1 A 输出信号驱动发光二极管RETI 中断返回END Keil 53 2 C语言程序 中断方式 include defineucharunsignedcharvoidmain ucharp1 Value 0 SP 0X50 设置堆栈IT1 1 设置外部中断1边沿触发EX1 1 开放外部中断1中断申请EA 1 开放总中断申请开关while 1 踏步等待中断 54 voidexint0 void interrupt2 外部中断1中断服务子程序ucharp1 Value 0 P1 0 xff p1 Value P1 输出键值 驱动发光二极管 55 汇编语言查询方式ORG0000HSTART SETBIT1HERE JBP3 3 HEREEXINT1 MOVP1 0FFHMOVA P1SWAPAMOVP1 AAJMPHEREEND 56 谢谢光临 结束放映 返回本章首页 57
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!