已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章80C51单片机的中断与定时 教学基本要求 1 了解单片机系统有关中断的概念 2 了解单片机定时器 计数器的功能 3 熟悉与中断控制有关的控制寄存器的功能及用法 4 熟悉与定时 计数控制有关的控制寄存器功能及用法 5 掌握单片机中断系统的应用方法 6 掌握单片机定时器 计数器的应用方法 教学重点 1 单片机中断系统的中断服务流程 2 单片机定时器 计数器的工作方式0 2 教学难点 1 中断采样 中断查询 中断响应 中断撤消 5 1中断概述 1 有关中断的概念 a 中断当中央处理器CPU正在处理某件事情的时候 外界发生了紧急事件请求 要求CPU暂停当前的工作 转而去处理这个紧急事件 处理完毕后 再回到原来被暂停的地方 继续原来的工作 这样的过程称为中断 b 中断嵌套即指在中断过程中又发生了新中断的现象 c 中断源向CPU发出中断请求的来源 d 中断请求或中断申请中断源要求CPU为其服务的请求 e 中断查询即指CPU通过测试各中断控制寄存器中各标志位的状态 以确定有没有中断请求发生以及是哪一个中断源提出中断请求的过程 f 中断响应即指CPU对中断源提出的中断请求的接受 发生在中断查询之后 g 中断处理或中断服务中断处理就是执行中断服务程序 h 中断返回中断返回是指CPU在执行完中断服务程序后 返回原来暂停的地方 断点 继续执行原来程序的过程 5 2 1中断源与中断向量80C51单片机共有3类5个中断源 即外部中断2个 定时中断2个和串行中断1个 1 外中断 a 由外部信号引起 共有2个中断源 即外部中断 0 和外部中断 1 由 INT0 P3 2 和 INT1 P3 3 引入 b 外中断的两种信号触发方式 通过有关控制位定义 电平方式 低电平有效脉冲方式 脉冲下降沿有效 高低电平状态都应至少维持一个机器周期 5 280C51单片机的中断系统 2 定时中断定时中断是为满足定时或计数的需要设置的 80C51单片机共有2个定时器 计数器中断源 即T C0和T C1 定时器 计数器内部的计数结构对脉冲信号进行计数 当计数结构发生计数溢出时 即表明定时时间到或计数值已满 此时就以计数溢出信号作为中断请求信号 向CPU申请中断 同时置位一个溢出标志位 作为单片机接受中断请求的标志 定时器 计数器作为定时功能使用时 计数结构需要的计数脉冲信号来自单片机内部 定时器 计数器作为计数功能使用时 计数结构需要的计数脉冲信号来自单片机外部 由T0 P3 4 T1 P3 5 引入 3 串行中断串行中断是为串行数据传送的需要设置的 每当串行口接收或发送完一组串行数据时 就产生中断请求信号向CPU申请中断 80C51单片机的中断向量列表外部中断00003H定时 计数器0000BH外部中断10013H定时 计数器0001BH串行发送中断0023H串行接收中断0023H5 2 2中断控制所谓中断控制就是指单片机提供给用户使用的中断控制的手段 用户可通过设置中断控制寄存器的状态位来使用中断系统 中断控制的本质就是利用指令对中断控制寄存器进行操作 80C51具有4个相关的控制寄存器 TCON IE IP SCON 1 定时器控制寄存器 TCON TCON的功能 用于保存外部中断请求以及定时器 计数器的计数溢出信号 TCON的字节地址 88H 位地址 8FH 88H TCON的内容及格式如下 与中断控制有关的控制位共有6位 a IE0 IE1 外中断请求标志位CPU采样 INT0 INT1端 如出现有效中断请求信号 则由硬件电路对该位自动置1 在中断响应后 由硬件电路对该位自动清0 b IT0 IT1 外中断请求触发方式控制位IT0 IT1 1 脉冲方式 后沿负跳有效 IT0 IT1 0 电平方式 低电平有效 由软件置1或清0 即人工编程 例 SETBIT0 或CLRIT0 C TF0 TF1 计数溢出标志位当计数结构产生溢出时 由硬件电路对该位自动置1 当转向中断服务时 再由硬件电路对该位自动清0 计数溢出标志位的使用有两种情况 1 采用中断方式时 作中断请求标志位使用 2 采用查询方式时 作查询状态位来使用 必须利用软件对该位清0 2 串行口控制寄存器 SCON SCON的功能 用于串行数据通信的控制 SCON的字节地址 98H 位地址 9FH 98H SCON的内容及格式如下 与中断控制有关的控制位共有2位 a TI 串行口发送中断请求标志位发送完一帧串行数据后 由硬件电路对该位自动置1 在转向中断服务程序后 用软件对该位清0 b RI 串行口接收中断请求标志位接收完一帧数据后 由硬件电路对该位自动置1 在转向 中断服务程序后 用软件对该位清0 TI RI标志位的使用有两种情况 1 采用中断方式时 作中断请求标志位使用 2 采用查询方式时 作查询状态位来使用 无论采用何种方式 都必须利用软件对该位清0 3 中断允许控制寄存器 IE IE的功能 中断系统的开关 IE的字节地址 0A8H 位地址 0AFH 0A8H IE的内容及格式如下 与中断控制有关的控制位共有6位 a EA 中断允许总控制位EA 0 中断总禁止 EA 1 中断总允许 b EX0 EX1 外部中断允许控制位EX0 EX1 0 禁止外中断 EX0 EX1 1 允许外中断 c ET0 ET1 定时器 计数器中断允许控制位ET0 ET1 0 禁止定时 或计数 中断 ET0 ET1 1 允许定时 或计数 中断 d ES 串行中断允许控制位ES 0 禁止串行中断 ES 1 允许串行中断 注意 1 MCS 51单片机复位后 IE 00H 即中断系统处于禁止状态 2 单片机在中断响应后不会自动关闭中断 需使用有关指令禁止中断 即以软件方式关闭中断 4 中断优先级控制寄存器 IP IP的功能 决定各中断源的优先权 IP的字节地址 0B8H 位地址 0BFH 0B8H IP的内容及格式如下 与中断控制有关的控制位共有5位 a PX0 外部中断0优先级设定位 b PT0 定时中断0优先级设定位 c PX1 外部中断1优先级设定位 d PT1 定时中断1优先级设定位 e PS 串行中断优先级设定位 为0的位优先级为低 为1的优先级为高 5 2 3中断优先级控制中断优先级是为中断嵌套服务的 MCS 51单片机具有两级优先级 因此它具备两级中断服务嵌套的功能 其中断优先级的控制原则是 a 低优先级中断请求不能打断高优先级的中断服务 但高优 先级中断请求可以打断低优先级的中断服务 实现中断嵌套 b 如一个中断请求已被响应 则同级的其它中断响应将被禁止 即同级不能嵌套 c 如果同级的多个中断请求同时出现 则按CPU查询次序确定那个中断请求被响应 查询次序 外部中断0 定时中断0 外部中断1 定时中断1 串行中断中断优先级控制 除了中断优先级控制寄存器之外 还有两个不可寻址的优先级状态触发器 一个用于指示某一高优先级中断正在进行服务 从而屏蔽其它高优先级中断 另一个用于指示某一低优先级中断正在进行服务 从而屏蔽其它低优先级中断 但不能屏蔽高优先级的中断 中断初始化与中断控制寄存器状态设置MCS 51单片机的中断系统在使用之前 必须在单片机的应用程序初始化部分进行设置 具体情况如下 a 外部中断 中断总允许 外中断允许 中断触发方式设定 b 定时中断 中断总允许 定时中断允许 c 串行中断 中断总允许 串行中断允许 MCS 51单片机中断系统的4个控制寄存器既可以进行字节寻址 又可进行位寻址 对位状态的设置 既可以使用字节操作指令 又可以使用位操作指令 例 设要开放外中断0 则可以使用以下指令 MOVIE 81H 或SETBEA SETBEX0 80C51单片机中断系统内部结构图 5 2 4中断响应过程中断响应过程发生在中断查询之后 包括中断响应 中断处理 中断返回三个阶段 因此 必须首先研究中断查询 所谓中断查询就是指CPU通过测试TCON和SCON中各标志位的状态 以确定有没有中断请求发生以及是哪一个中断源提出中断请求的过程 中断请求标志位的置位方式由于单片机中断类型的不同而存在差异 a 对于外中断 必须通过采样的方法把外中断请求信号锁定在TCON的相应标志位中 b 对于定时中断和串行中断 可以通过硬件电路直接置位的方法将TCON和SCON中各自的中断请求标志位置 1 1 中断采样 针对外中断 中断请求采样 即如何识别外部中断请求信号并把它锁定在TCON的相应标志位中 采样时刻 在每个机器周期的S5P2 第5状态 第2节拍 时刻 对 INT0 P3 2 和 INT1 P3 3 引脚进行 对于电平方式的外中断请求 采样为高 IE0 IE1 0 为低 IE0 IE1 1 对于脉冲方式外中断请求 采样先高后低 IE0 IE1 1 否则IE0 IE1 0 2 中断查询中断查询 CPU对中断请求标志位的查询来获悉有无中断请求发生以及是哪一个中断源提出中断请求 查询次序 按优先级顺序进行 查询时刻 每个机器周期的最后一个状态S6 一旦查到有中断请求发生 接着就从相临的下一个机器周期的S1状态开始进行中断响应 3 中断响应中断响应的主要内容 由硬件电路自动生成一条长调用指令LCAALaddr16 即程序存储器中相应中断区的入口地址 生成LCALL指令后 就由CPU执行 从而转移到真正的中断服务程序 中断响应是有条件的 并不是查询到的所有中断请求都能被立即响应 当存在下列情况之一时 中断响应被封锁 a CPU正处在为一个同级或高级的中断服务中 b 查询中断请求的机器周期不是当前指令的最后一个机器 周期 c 当前指令是返回指令 RET RETI 或访问IE IP指令 MCS 51单片机对中断查询结果不作记忆 当有新的查询结果出现时 因为以上原因而被拖延的查询结果将不复存在 其中断请求也就不能再被响应了 中断响应的条件 a 有中断源发出有效的中断请求信号 b EA 1 即CPU开总中断 c 申请中断的中断源的中断允许位为1 即没有屏蔽 d 中断响应没有被封锁 4 中断响应时间即指从查询中断请求标志位到转向中断区入口地址所需的 机器周期数 最短响应时间 3个机器周期 1个查询机器周期和2个LCALL指令机器周期 最长响应时间 8个机器周期 2 4 2 一般的中断响应时间在3 8个机器周期之间 5 中断处理即执行中断服务程序的过程 6 中断返回指CPU在执行完中断服务程序后 返回原来暂停的地方 断点 继续执行原来程序的过程 中断请求的撤消问题中断响应后 TCON或SCON中的中断请求标志应及时清除 否则就意味着中断请求依然存在 弄不好就会造成中断的重复查询和响应 因此 必须在中断响应后及时清除中断请求信号 即将中断请求标志位清0 1 定时中断请求的撤消定时中断的中断请求是由硬件电路自动撤消的 即硬件电路自动把标志位 TF0或TF1 清0 无需用户干预 2 脉冲方式外部中断请求的撤消外部中断请求的撤消包括两项内容 a 中断标志位的清0 b 外部中断请求信号的撤消 对于脉冲方式的外部中断请求 其标志位 IE0或IE1 的清0是由硬件电路自动完成的 由于中断请求信号是脉冲信号 因此 中断请求信号也是自动撤消的 3 电平方式外部中断请求的撤消对于电平方式的外部中断请求 其标志位 IE0或IE1 的清0是由硬件电路自动完成的 由于中断请求信号是低电平信号 因此 必须借助外电路将其拉高 否则 在以后的机器周期采样时又会将标志位 IE0或IE1 置 1 造成重复中断响应 结合硬件电路 只需在中断服务程序中增加两条指令就可在P1 0口线上产生一个负脉冲 将中断请求低电平信号撤消 ORLP1 01H P1 0输出高电平ANLP1 0FEH P1 0输出低电平 4 串行中断软件撤消串行中断的标志位TI RI 硬件电路不会将其自动清0 因为在中断响应后 还需测试TI RI的状态 以判定是接收还是发送操作 然后才能清除 应使用软件方法进行 加在中断服务程序中 5 2 5中断服务程序中断服务流程 1 现场保护和现场恢复现场保护 为了使中断服务程序的执行不破坏CPU中寄存器或存储单元的原有内容 以免在中断返回后影响主程序的运行 须把CPU中有关寄存器或存储单元的内容推入堆栈中保护起来 这个过程称现场保护 现场恢复 中断服务结束后 在返回主程序前 把保存的现场内容从堆栈中弹出 以恢复寄存器或存储单元的原有内容 现场保护和现场恢复利用PUSH POP指令实现 现场保护一定要位于中断处理程序前面 而现场恢复一定要位于中断处理程序后面 2 开中断和关中断开中断即中断允许 关中断即中断屏蔽 在现场保护和现场恢复的过程中 即使有更高级的中断请求 也不允许中断嵌套 3 中断处理 4 中断返回利用RETI指令把程序运行从中断服务程序转回到被中断的 主程序上去 这条指令位于中断服务程序的最后一条指令 RETI指令执行时 首先将响应中断时置位的优先级触发器复位 然后将断点地址从堆栈中弹出送PC 接着CPU从断点处重新执行被中断的主程序 返回 返回 返回 80C51单片机中断系统内部结构图 返回 返回 5 380C51单片机的定时器 计数器 定时方法概述 1 软件定时 a 依靠执行一个循环程序以进行时间延迟 b 定时精确 无须增加硬件电路 但占有CPU资源 2 硬件定时硬件电路完成 不占有CPU资源 定时时间长 使用不灵活 3 可编程定时器定时通过对系统时钟脉冲的计数来实现 使用灵活 方便 MCS 51单片机有两个定时器 计数器 T C0 T C1 均为十六位加法计数结构 分别由TH0 TL0 TH1 TL1两个8位计数器组成 80C51单片机定时器 计数器逻辑结构图 MCS 51单片机的定时器 计数器具有定时和计数功能 1 计数功能 a 所谓计数 指对外部事件进行计数 外部事件的发生以输入脉冲表示 因此 计数功能的实质是对外来脉冲进行计数 b 计数输入端 T0 P3 4 T1 P3 5 c 有效计数脉冲 外部输入的脉冲在下降沿有效 进行计数器加1 d 计数采样时刻 每个机器周期的S5P2 共要2个周期 5 3 1定时器 计数器的计数和定时功能 e 计数时刻 计数采样时刻的下一个机器周期的S3P1 f 计数脉冲频率 1 24fosc 2 定时功能定时功能也是通过计数器的计数来实现的 计数脉冲来自内部 每个机器周期产生一个计数脉冲 即每个机器周期计数器加1 计数频率为1 12fosc 5 3 1用于定时器 计数器的控制寄存器定时器 计数器的控制寄存器有3个 TCON TMOD IE 1 定时器控制寄存器 TCON TCON的功能 用于保存外部中断请求以及定时器 计数器的计数溢出信号 TCON的字节地址 88H 位地址 8FH 88H TCON的内容及格式如下 与定时有关的控制位共有4位 a TF0 TF1 计数溢出标志位当计数结构产生溢出时 由硬件电路对该位自动置1 当转向中断服务时 再由硬件电路对该位自动清0 计数溢出标志位的使用有两种情况 1 采用中断方式时 作中断请求标志位使用 2 采用查询方式时 作查询状态位来使用 必须利用软件对该位清0 b TR0 TR1 定时器运行控制位TR0 TR1 0 停止T C工作 TR0 TR1 1 启动T C工作 该位根据需要以软件方法置1或清0 2 工作方式控制寄存器 TMOD TMOD的功能 用于设定两个定时器 计数器的工作方式 TMOD的字节地址 89H 应采用字节传送指令设置其内容 TMOD的内容及格式如下 与定时有关的控制位共有8位 分两组 a GATE 门控位GATE 0 以运行控制位TR0 TR1启动T C GATE 1 以外中断请求信号 INT1 INT0 启动T C b C T 定时方式或计数方式选择位C T 0 定时工作方式 C T 1 计数工作方式 c M1M0 工作方式选择位M1M0 00方式0M1M0 01方式1M1M0 10方式2M1M0 11方式3 3 中断允许寄存器 IE IE的功能 中断系统的开关 IE的字节地址 0A8H 位地址 0AFH 0A8H IE的内容及格式如下 与定时有关的控制位共有3位 a EA 中断允许总控制位EA 0 中断总禁止 EA 1 中断总允许 b ET0 ET1 定时器 计数器中断允许控制位ET0 ET1 0 禁止定时 或计数 中断 ET0 ET1 1 允许定时 或计数 中断 5 3 3定时工作方式0 1 电路逻辑结构方式0是13位计数结构的工作方式 其计数器由TH全部8位和TL的低5位构成 TL的高3位不用 2 定时和计数应用 a 在方式0下 作计数功能时 计数值范围1 8192 213 计数可从0 8191开始 b 在方式0下 作定时功能时 定时时间计算公式 213 计数初值 晶振周期 12或 213 计数初值 机器周期 注意 1 T C是可编程的 TH TL可以按字节寻址 例 MOVTL0 Data MOVTH0 Data TL0 TH0中的初值可通过指令预置 2 计数脉冲 TL5位 TH8位 TF假设fosc 6MHz 则最长 最短定时时间分别为2 s 16384 s 例 假设单片机fosc 6MHz 使用定时器1以方式0产生周期为500 s的等宽正方波连续脉冲 由P1 0输出 以查询方式完成 解 1 计算计数初值利用定时器 计数器1的定时功能 定时时间250 s 假设待求的计数初值为X 则 213 X 2 10 6S 250 10 6S得 X 8067 十进制 1111110000011 二进制 十六进制表示 高8位0FCH送TH1 低5位03H送TL1 2 TMOD寄存器初始化 根据以上分析 TMOD寄存器应初始化位00H 3 由T C1的TCON中TR1位控制其启动 停止 TR1 1启动 TR1 0停止 4 程序设计 ORG1000HMAIN MOVTMOD 00H T C1方式0MOVTH1 0FCH 设计数初值MOVTL1 03H MOVIE 00H 禁止中断SETBTR1 启动定时器LOOP JNBTF1 LOOP 查询计数溢出否MOVTH1 0FCH 重置计数初值MOVTL1 03H CLRTF1 清计数溢出标志CPLP1 0 输出取反AJMPLOOP 重复循环END思考题 1 如采用中断方式 如何编程 2 如P1 0输出的不是方波 而是矩形波 高电平100 s 低电平200 s 其它条件不变 如何编程 5 3 4定时工作方式1 1 电路逻辑结构方式1是16位计数结构的工作方式 由TH全部8位和TL全部8位构成 2 定时和计数应用 a 在方式1下 作计数功能时 计数值范围1 65536 216 计数可从0 65535开始 b 在方式1下 作定时功能时 定时时间计算公式 216 计数初值 晶振周期 12或 216 计数初值 机器周期 注意 1 T C是可编程的 TH TL可以按字节寻址 例 MOVTL0 Data MOVTH0 Data TL0 TH0中的初值可通过指令预置 2 计数脉冲 TL8位 TH8位 TF假设fosc 6MHz 则最长 最短定时时间分别为2 s 131ms 例 假设单片机fosc 6MHz 使用定时器1以方式1产生周期为500 s的等宽正方波连续脉冲 由P1 0输出 以查询方式完成 解 1 计算计数初值利用定时器 计数器1的定时功能 定时时间250 s 假设待求的计数初值为X 则 216 X 2 10 6S 250 10 6S得 X 65410 十进制 十六进制表示 高8位0FFH送TH1 低8位83H送TL1 2 TMOD寄存器初始化 根据以上分析 TMOD寄存器应初始化位10H 3 由T C1的TCON中TR1位控制其启动 停止 TR1 1启动 TR1 0停止 4 程序设计 ORG1000H 主程序MAIN MOVTMOD 10H T C1方式1MOVTH1 0FFH 设计数初值MOVTL1 83H SETBEA 开总中断SETBET1 T C1允许中断LOOP SETBTR1 启动定时器HERE SJMP 等待中断中断服务程序ORG2000H LOOP1 MOVTH1 0FFH 重置计数初值MOVTL1 83H CPLP1 0 输出取反RETI 中断返回END 5 3 5定时工作方式2 1 电路逻辑结构方式2是自动重新加载计数初值工作方式 以TL作计数器 以TH作预置寄存器 初始化时把计数初值分别装入TL和TH中 当计数溢出后 由预置寄存器TH以硬件方法自动给计数器TL重新加载初值 2 循环定时和循环计数应用 a 在方式2下 作计数功能时 计数值范围1 256 28 计数可从0 255开始 b 在方式2下 作定时功能时 定时时间计算公式 28 计数初值 晶振周期 12或 28 计数初值 机器周期 注意 1 T C是可编程的 TH TL可以按字节寻址 例 MOVTL0 Data MOVTH0 Data TL0 TH0中的初值可通过指令预置 2 计数脉冲 TL8位 TF假设fosc 6MHz 则最长 最短定时时间分别为2 s 512 s 例 假设单片机fosc 6MHz 使用T C0以方式2产生100 s定时 在P1 0输出周期为200 s的连续方波脉冲 解 1 计算计数初值利用定时器 计数器0的定时功能 定时时间100 s 假设待求的计数初值为X 则 28 X 2 10 6S 100 10 6S得 X 206 十进制 十六进制表示 0CEH送TH0 0CEH送TL0 2 TMOD寄存器初始化 根据以上分析 TMOD寄存器应初始化位02H 3 由T C0的TCON中TR0位控制其启动 停止
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 篮球618活动策划方案(3篇)
- 电路隐蔽施工方案(3篇)
- 粉尘定期清理安全管理制度(3篇)
- 医院网评员管理制度(3篇)
- 车间标识卡管理制度内容(3篇)
- 2026国家统计局黔南调查队招聘编外聘用人员1人(贵州)备考考试试题及答案解析
- 2026江苏南京大学生物医学工程学院准聘长聘岗位(事业编制)招聘备考考试题库及答案解析
- 2026年1月江苏扬州市卫生健康系统事业单位招聘专业技术人员54人参考考试题库及答案解析
- 2026重庆飞驶特人力资源管理有限公司派往重庆市运动技术学院专职体能教练员招聘备考考试试题及答案解析
- 护理案例分享:感染控制与预防的重要性
- 百人公司年会策划方案
- 青少年法律知识竞赛试题及答案
- 链式输送机传动系统设计
- 加班工时管控改善方案
- 2025分布式数据库 OceanBase 架构演进与业务场景实践
- 2025年军工企业招聘考试面试流程与注意事项详解
- 《昆虫记》中的昆虫图片
- 铁路施工安全检查日志范本
- 五层外架施工方案
- 供应链中断应急预案(商品断供、物流中断)
- 山东省青岛市李沧、平度、西海岸、胶州2026届九年级数学第一学期期末综合测试试题含解析
评论
0/150
提交评论