片机定时器的使用和详细讲解特别是定时器.ppt_第1页
片机定时器的使用和详细讲解特别是定时器.ppt_第2页
片机定时器的使用和详细讲解特别是定时器.ppt_第3页
片机定时器的使用和详细讲解特别是定时器.ppt_第4页
片机定时器的使用和详细讲解特别是定时器.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 定时器的讲解和使用有对定时器2的详细讲解 第八章定时器 2 章节概述很棒 8 1概述8 2定时器T0和T1的结构8 3定时器工作模式8 4定时器T2 3 8 1概述 定时器是单片机的重要功能模块之一 在检测 控制领域有广泛应用 定时器常用作定时时钟 以实现定时检测 定时响应 定时控制 并且可用于产生ms宽的脉冲信号 驱动步进电机定时和计数功能最终都是通过计数实现的 若计数的事件源是周期固定的脉冲 则可以实现定时功能 否则只能实现计数功能 因此可以将定时和计数功能由一个部件实现 4 实现定时和计数的方法一般有 软件定时 专用硬件电路和可编程定时器 计数器三种方法 软件定时 执行一个循环程序进行时间延迟 定时准确 不需要外加硬件电路 但增加CPU开销 专用硬件电路定时 可实现精确的定时和计数 但参数调节不便 可编程定时器 计数器 不占用CPU时间 能与CPU并行工作 实现精确的定时和计数 又可以通过编程设置其工作方式和其它参数 因此使用方便 5 定时器的基本工作原理是 利用计数器对固定周期的脉冲计数 通过寄存器的溢出来触发中断 具体应用步骤 1 根据需要的定时时间 结合单片机的晶振频率 计算出寄存器的初始值2 根据需要开中断3 启动定时器若已规定用软件启动 则可把TR0 TR1或TR2置 1 若已规定由外中断引脚电平启动 则需给外引脚步加启动电平 当实现了启动要求后 定时器即按规定的工作方式和初值开始计数或定时 6 XC866单片机有三个16位的定时器 定时器0 定时器1和定时器2 定时器0 1各具有四种工作模式 定时器2有两种工作模式 定时器0 1和定时器2的任何一种工作模式均可通过程序对相应寄存器进行设置来选择 定时器在定时时间到时 可以由程序决定是否产生中断请求信号 进而判断是否执行中断程序 但是 无论中断请求信号是否产生 当定时器在定时时间到时 定时器的溢出标志位TF0 TF1 由硬件置 1 7 8 2定时器T0和T1的结构 定时器T0和T1的结构如图8 1所示 图8 1定时器T0和T1结构图 核心寄存器 16位加法计数器 定时器模式寄存器 8 1 16位加法计数器 16位加法计数器是定时器的核心 图8 1中用寄存器TH0 TL0及TH1 TL1表示 T0加法计数器的高8位和低8位分别用TH0 TL0表示T1加法计数器的高8位和低8位分别用TH1 TL1表示高8位和第8为可分别单独使用当定时器工作时 加法计数器对内部机器周期脉冲Tcy计数 Tcy 9 2 模式寄存器 TMOD TMOD用来选择定时器0 1的工作模式 低4位用于定时器0 高4位用于定时器1 其组成如图8 2所示 图8 2模式寄存器组成 T1 T0 10 3 控制寄存器 TCON TCON高4位用于控制定时器0 1的运行 低4位用于控制外部中断 与定时器无关 定时器0 1运行控制位TR0 TR1 TR0 TR1 1启动TR0 TR1 0停止 定时器0 1溢出标志TF0 TF1 溢出时该位由硬件自动置1 响应中断后 由硬件自动清0 图8 3控制寄存器组成 11 4 中断使能寄存器 IEN0 IEN0中的ET0 ET1 位控制定时器0 1是否产生中断请求信号 为0时不产生中断请求信号 为1时允许产生中断请求信号 其结构如图8 4所示 图8 3中断使能寄存器组成 定时器0中断使能位 定时器0中断使能位 12 8 3定时器工作模式 定时器0和定时器1完全兼容 均可设定为四种不同的工作模式 如表8 1所示 寄存器TMOD的位域TxM选择定时器的工作模式 两个定时器在模式0 1和2时独立工作 在模式3时具有特定功能 13 表8 1定时器0和定时器1工作模式 14 1 工作模式0当T0M T1M 00时定时器设定为工作模式0 此时定时器工作于13位定时状态 其中TH0是高8位加法计数器 TL0是低5位加法计数器 TL0只用了低5位 高3位未用 TL0加法计数溢出时向TH0进位 TH0加法计数溢出时硬件置TF0 1 加法计数器对机器周期脉冲Tcy计数 每个机器周期TL0加1 15 定时器的定时时间计数初始值X最大定时能力 16 模式0的结构图如图8 4所示 图8 4方式0结构图 门控位 GATE 0定时器不受控于外部信号 仅打开与门 是定时器仅有TR位控制 GATE 1定时器受控于外部信号 此时要求TR 1 13位加法计数器 17 例题 生成周期为1 2ms的等宽正方波 机器晶振26 67MHz 使用T0以方式0工作 由P0 0输出 机器周期 37 5ns 计数周期Tcy是机器脉冲的2分频 因此Tcy 75ns 定时时间0 6ms 以0 6ms为周期在P1 0端交替输出高低电平 18 定时器初始化程序MOVTL0 0X00MOVTH0 0X06MOVTMOD 0X00SETBET0SETBTR0 定时器中断服务程序PUSH CPLP0 0 POP T0从192开始计数 直到超过8192即溢出 置TF0 1 产生中断信号 19 2 工作模式1T0M T1M 01时定时器设定为工作模式1 此时定时器0 定时器1 被设置为16位定时器 此时TH0 TL0都是8位加法计数器 其他与工作方式0相同 定时器的定时时间计数初始值 20 模式1的结构图如图8 5所示 图8 5方式1结构图 16位加法计数器 21 3 工作模式2当T0M T1M 10时定时器设定为工作模式2 此时定时器0 定时器1 被设置为可自动重载的8位定时器 TL0为8位加法计数器 TH0为存放该8位加法计数器初值的寄存器 TH0 TL0的初值都由程序预置 在工作模式2中 定时器的定时时间由下式确定 只有T0可工作于此模式 22 模式2的结构图如图8 6所示 图8 6方式2结构图 8位加法计数器 初值寄存器 23 4 工作模式3当T0M T1M 11时定时器设定为工作模式3 只有定时器0可以工作在工作模式3下 如把定时器1设置为工作模式3 则定时器1停止工作 TL0 TH0成为两个独立的8位加法计数器 它的工作情况与模式0 模式1类似 差别在于定时范围为 模式3的结构图如图8 7所示 TL0占用定时器0的控制位 GATE0 TR0和TF0TH0占用定时器1的控制位TR1和TF1 TH0溢出时将置位TF1 并且在ET1置位时产生中断 24 图8 7方式3结构图 25 T0和T1的应用举例 例若fOSC 26 67MHz T1工作于方式1 产生45ms的定时中断 TF1为其中断源标志 试编写主程序和中断服务程序 使P1 0产生周期为90ms的方波 忽略中断响应时间和指令执行时间 解 让P1 0每45ms取反一次即可实现 定时器的单次定时时间不可能达到45ms 如果设定16位的工作模式1 最大定时时间也才为4 9152ms 可让定时器多次定时产生4 5ms的定时时间 如让T1工作在方式1 单次定时时间为4 5ms 那么T1中断10次就是45ms的时间 26 1 确定定时常数假设使用fOSC的2分频作为计数源 则Tcy 2 fOSC 2 26 67 106 75ns由公式可知计数初值 TH1 0 x15 TL0 0 xA0 27 2 初始化程序包括T1初始化和中断系统初始化 主要是对IP IE TCON TMOD的相应位进行正确的设置 并将时间常数送入T1 一般将初始化操作放在主程序中完成 当程序规模较大时 应编写单独的初始化程序 以利于程序的模块化设计 3 中断服务程序中断服务程序除了完成要求的方波产生这一工作之外 还要注意将时间常数重新送入T1中 为下一次产生中断作准备 28 程序清单如下 主程序 includesbitP1 0 P1 0 intcount 10 10次T1中断为45msvoidmain void TMOD 0 x10 T1方式1P1 0 0 TH1 0 x15 初值TL1 0 xA0 IEN0 0 x08 允许T1中断IP 0 x08 IPH 0 x08 TF1中断为高级中断TR1 1EA 1 总开中断while 1 死循环 查询等待TF1置位 产生方波 注 寄存器所在页的选择没有列出 29 程序清单如下 中断服务程序片段 TF1 0 TH1 0 x15 TL1 0 xA0 重填初值If count 0 count else count 10 P1 0 P1 0 30 8 4定时器T2 8 4 1概述定时器2是一个16位通用计数器 其具有两种操作模式 16位自动重载模式和16位捕获模式 如果预分频功能被禁止 定时器2工作时 16位通用加法计数器以12分频的周期脉冲计数 每个周期16位通用加法计数器加1或减1 31 定时器2由T2MOD寄存器 T2CON存器 功能存器TH2 TL2 RC2H RC2L等电路构成 TH2 TL2构成16位通用计数器 RC2H RC2L作为16位寄存器 在自动重载模式中RC2H RC2L作为16位通用计数器的16位初值寄存器在捕捉模式中 当引脚T2EX上出现下降沿跳变时 把TH2 TL2的当前值捕捉到RC2H RC2L中去 32 8 4 2定时器T2控制寄存器1 模式寄存器T2MOD寄存器T2MOD用来选择定时器2的工作模式 其组成如图8 8所示 33 启动边沿选择位 外部启动使能位 捕获模式 重载模式的边沿选择位 预分频使能位 计数器递增 递减使能位 图8 8T2MOD各位功能 34 2 控制寄存器T2CON寄存器T2CON控制定时器2的工作模式 其各位功能如图8 9所示 上溢 下溢标志位 外部事件标志位展示T2EX引脚状态 捕获 重载模式选择位0 重载 1 捕获 外部使能控制位1 使能T2EX引脚控制 0 禁止T2EX引脚控制 启动 停止控制位 图8 9T2CON各位功能 35 8 4 3定时器T2工作模式 1 自动重载模式控制寄存器T2CON中的置 0 时 定时器2被选择为自动重载模式 该模式下 定时器2计数至溢出时 将寄存器RC2H RC2L中的16位初始值重新装入定时器的TH2 TL2寄存器中 开始新一轮计数循环 并置位寄存器T2CON的TF2位表示计数溢出 从而向CPU发送中断请求信号 溢出标志TF2必须由程序清零 根据控制寄存器T2MOD中DCEN控制位的设置 自动重载模式可进一步分为两种类型 36 1 禁止递增 递减计数模式若DCEN 0 则递增 递减计数选择被禁止 此时定时器只能递增计数 工作原理如图8 10所示 图8 10T2禁止递增 递减计数模式 27号引脚 使能 禁止引入外部信号控制T2 中断标志位 通用16定时器寄存器 重载值寄存器 预分频使能位 37 若EXEN2 0 置位TR2定时器开始递增计数 计数至最大值FFFFH后溢出并置位TF2 同时将寄存器RC2中的16位重载值重新装入定时器寄存器 重载值由软件预先设置 新一轮计数循环开始 定时器同上一轮计数循环一样 从重载值开始递增计数 38 若EXEN2 1 置位TR2定时器开始递增计数至最大值FFFFH 计数溢出或输入引脚T2EX的负 正跳变 由寄存器T2MOD的位EDGESEL选择 均会引起16位重载 将寄存器RC2的内容重新装入定时器寄存器 中断标志位 若由溢出引起重载 溢出标志TF2置位 若由引脚T2EX的负 正跳变引起重载 寄存器T2CON中的EXF2置位 这两种情况均产生中断 定时器进入下一轮计数循环 EXF2标志和TF2一样必须由软件清零 39 允许硬件启动时 T2RHEN 1 T2EX第一个上升沿 下降沿触发TR2 1启动T2 上升沿 下降沿的选择由T2REGS选择 如果使能外部控制 EXEN2 1 引脚T2EX的边沿跳变完成两个任务 由T2REGS选择上升沿 下降沿 启动T2EXF2置位 40 2 使能递增 递减计数模式若DCEN 1 则递增 递减计数选择被使能 此时定时器可以递增或递减计数 工作原理如图8 11所示 图8 11T2使能递增 递减计数模式 41 引脚T2EX的逻辑电平为1时定时器2递增计数 因此定时器递增计数 计数至最大值FFFFH后溢出并置位TF2 RC2寄存器的16位重载值重新装入定时器寄存器 引脚T2EX的逻辑电平为0时定时器2递减计数 定时器递减计数并当THL2的值和寄存器RC2中的值相等时发生下溢 下溢后置位TF2 并将值FFFFH重新载入定时器寄存器THL2中 42 若允许硬件启动T2 当T2RHEN 1 时 根据T2EX输入的是上升沿 下降沿可将T2设置为递增 递减计数T2由上升沿启动 T2只能工作于递增模式T2由下降沿启动 T2只能工作于递减模式 43 2 捕获模式控制寄存器T2CON中的及EXEN2置位时 定时器进入16位捕获模式 此模式下 递减计数功能必须禁止 16位计数器始终递增计数 计数至最大值FFFFH后溢出 TF2置位并将0000H重新载入定时器寄存器TH2 TL2中 溢出后TF2置位 则定时器向CPU发送中断请求 捕获模式的结构图如图8 12所示 44 图8 12T2捕获模式结构图 45 在引脚T2EX的下降沿 上升沿 由T2MOD EDGESEL选择 将定时器寄存器 THL2 的值捕获到寄存器RC2中 如果在计数器加1时检测到捕获信号 计数器先加1然后执行捕获操作 从而确保总能捕获到定时计数器的最新值 执行完捕获操作 EXF2置位 可用来产生中断请求 46 若允许硬件启动T2 当T2RHEN 1 时 引脚T2EX输入的第一个下降沿 上升沿 由T2MOD EDGESEL选择 启动T2在启动T2的同时 置位EXF2 在下一个下降沿 上升沿到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论