6 单片机c程序设计4_定时器.ppt_第1页
6 单片机c程序设计4_定时器.ppt_第2页
6 单片机c程序设计4_定时器.ppt_第3页
6 单片机c程序设计4_定时器.ppt_第4页
6 单片机c程序设计4_定时器.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

定时器 计数器及应用 单片机c程序设计之 定时器 计数器及应用 目标 本章旨在向学员介绍 1 定时器工作原理2 定时器如何使用 时间 6学时教学方法 ppt 实验 定时器 计数器中的核心部件为可预置初值计数器 预置初值后开始计数 直至计数值归0或产生溢出 可申请中断 计数器为加1计数形式 例 设定时器 计数器中为8位加1计数器 按要求选择功能和初值 要求检测到100个外部脉冲 发中断请求 通知CPU 答 选计数功能 计数初值X 28 100 156 要求每隔200 s时间 发一次中断请求 设内部机器周期1 s 答 选定时功能 计数初值为X 28 200 s 1 s 56 1定时器 计数器的基本工作原理 定时器 计数器的内部逻辑电路结构 定时器0 或定时器1 在某方式时的逻辑电路结构图 脉冲源有哪几种选择 区别 如何启动定时器 计数器的工作 为什么要设置初值 溢出有什么作用 门控位何时起作用 用途 注 图中x 0 1 对应于定时器0 1 89C51有两个16位的定时器 计数器 称为定时器0 T0 和定时器1 T1 可编程选择其功能 定时器或计数器 此外 工作方式 定时时间 计数值 启动 中断请求等都可以由程序设定 289C51定时器结构 一 结构 89C51的整个定时器 计数器由T0 T1 定时器方式寄存器TMOD和定时器控制寄存器TCON组成 T0 T1是16位加法计数器 分别由两个8位SFR组成 T0由TH0和TL0组成 T1由TH1和TL1组成 每个寄存器均可单独访问 T0或T1用作计数器时 对芯片引脚T0 P3 4 或T1 P3 5 上输入脉冲计数 每输入一个脉冲 加法计数器加1 外部脉冲的下降沿有效 最高频率 振荡频率的1 24 T0或T1其用作定时器时 对内部机器周期脉冲计数 由于机器周期是定值 故计数初值确定时 时间也随之确定 TMOD TCON与T0 T1间通过内部总线及逻辑电路连接 TMOD用于设置定时器的工作方式 TCON用于控制定时器的启动与停止 当设置了定时器的工作方式并启动工作后 定时器就独立工作 不再占用CPU的操作时间 只有在计数器计满溢出时才可能中断CPU当前的操作 在启动定时器 计数器工作前 必须将一些命令 控制字 写入定时器 计数器中 即初始化 定时器 计数器的初始化是通过TMOD和TCON两个寄存器来完成的 二 定时器 计数器的控制 1 定时器控制寄存器TCON 可位寻址 TCON的作用是控制定时器的启动 停止 标志定时器的溢出与否 注意 当TMOD寄存器中GATE 0时 TR0 TR1置1即可启动CTC 当GATE 1时 且引脚P3 2 P3 3为高电平时 TR0 TR1置1启动定时器 定时器运行控制位TR0 TR1TR0 0 停止T0工作 TR0 1 启动T0工作 TR1 0 停止T1工作 TR1 1 启动T1工作 例 启动T0 TR0 1 TCON 溢出中断标志位TF0 TF1T0 T1计满数产生溢出时 使TF0 TF1 1 引起T0 T1中断请求 CPU响应T0 T1中断后 硬件自动将TF0 TF1清0 在中断屏蔽时 TF0 TF1可作查询测试用 此时只能由软件清0 如 while TF0 0 TF0 0 TCON中的低4位用于控制外部中断 与定时 计数器无关 当系统复位时 TCON的所有位均清0 TCON 2 定时器方式寄存器TMOD 门控位GATE 0为非门控方式 内部启动 TR0 TR1置1即可启动T0 T1工作 1门控方式 外部启动 TR0 TR1置1 且引脚P3 2 P3 3为高电平方可启动T0 T1 即允许外部中断启动T0 T1 注意 TMOD的低4位为T0的方式字段 高4位为T1的方式字段 它们的含义完全相同 TMOD 方式选择位M1 M0 确定定时器工作方式指令 例 设T0用方式2非门控定时 T1用方式1门控计数 TMOD TMOD 0 xd2 11010010B 3定时器计数器四种工作方式的区别 定时器0在方式0时的逻辑电路结构图 13位的计数器 设计数初值为X 计数值计算公式 213 X定时值计算公式 213 X Tcy 其中Tcy 1 fosc 12 以定时器0为例 必须注意的是 加法计数器THx溢出后 必须用程序重新对THx TLx设置初值 否则下一次THx TLx将从0开始计数 定时器0在方式1时的逻辑电路结构图 与方式0比较 计数器的位数是16位的 单次计数 定时范围增大了 设计数初值为X 计数值计算公式 216 X定时值计算公式 216 X Tcy 其中Tcy 1 fosc 12 3定时器计数器四种工作方式的区别 定时器0在方式2时的逻辑结构图 3定时器计数器四种工作方式的区别 真正的计数器长度变成8位的 但是增加了自动重载的功能 设计数初值为X 计数值计算公式 28 X定时值计算公式 28 X Tcy 其中Tcy 1 fosc 12 定时器0在方式3时的逻辑结构 3定时器计数器四种工作方式的区别 TL0功能无变化 TH0抢了T1定时器的资源 影响T1了 TH0此时做什么功能 方式3是定时器0独有的 此时TL0和TH0分家了 此时T1怎么办 3定时器计数器四种工作方式的区别 定时器0在方式3时的逻辑结构 TH0抢走了T1的TR1 TF1 中断信号 那T1此时能工作在什么情况下 T1的两个8位寄存器TH1 TL1健在 T1的C T控制位也在 定时和计数功能还在 依然可以工作在方式0 1 2 因为T1的TR1被占用 其启动和关闭较为特殊 当设置好工作方式时 T1即自动启动 若要停止 只需送入一个设置T1为方式3的方式字即可 因为T1的TF1被占用 溢出后只能将溢出信号送到串行口 因为T1的中断信号被占用 此时T1不能引起中断了 定时器0在方式3时的逻辑结构 定时器0方式3的应用场合 T1方式2自动重载 通常情况下 T0不运行于工作方式3 只有在T1处于工作方式2 并不要求中断的条件下才可能使用 这时 T1往往用作串行口波特率发生器 TH0用作定时器 TL0定时器或计数器 所以 方式3是为了使单片机有一个独立的定时器 计数器 一个定时器以及一个串行口波特率发生器的应用场合而特地提供的 这时 可把定时器1用于工作方式2 把定时器0用于方式3 TMOD 选择方式TH0 TH1 预置初值TL0 TL1 EA 根据需要开中断ET0 ET1TR0 TR1 启动定时器 1 初始化编程格式 注意 方式0 13位 TL0 TL1的低5位有效方式2 8位 TL0 TL1 TH0 TH1 X 4定时器 计数器程序结构 定时器初始化TF0 TF1 检测溢出标志TH0 TH1 重装初值TL0 TL1 溢出处理 2 溢出处理编程格式 查询方式 先查询定时器溢出标志 再进行溢出处理 注意 方式2时 不必重装初值 4定时器 计数器程序结构 1 在定时模式寄存器TMOD中加载相应的值 以指示采用哪个定时器 以及选择哪种定时模式 2 根据具体定时要求 设置THx TLx的初始值 3 在时间控制寄存器TCON中置TRx 1 启动定时器 4 在程序中持续检查TCON中的定时器标志TFx 直至TFx 1 5 清零TFx标志 TFx 0 并停止定时器 TRx 0 完成有关应用任务 6 如循环定时 转到步骤2 查询方式 查询检测弊端 查询检测方式 从代码中可以看到CPU一直都在检查定时器标志是否置位 TF0或TF1 中断模式可以提高CPU的使用效率或降低系统功耗 KeilCx51编译器对中断有很好的支持 只要简单地定义相关的中断服务例程 InterruptionSeviceRoutine 并在中断服务例程函数头中指明中断源和函数使用的寄存器组就可以了 堆栈处理 寄存器组切换 中断向量的产生等等由编译器负责处理 000BH 001BH T0 T1中断入口对应interrupt1 3voidXXX ISR void interrupt1 3using2 TH0 TH1 重装初值 中断服务程序 TL0 TL1 溢出处理 main 初始化后执行其他程序 中断方式 初始化后执行其他任务 中断服务程序处理溢出 注意 方式2时 不必重装初值 1 设单片机的fosc 12MHz晶振 要求在P1 0脚上输出周期为2ms的方波 proteus下示波器可以查看 要求用定时器0的方式1 16位定时器 计数器方式 编程 采用查询方式 2 设单片机的fosc 12MHz晶振 要求在P1 0脚上输出周期为2ms的方波要求用定时器0的方式1 16位定时器 计数器方式 编程 采用中断方式 3 采用10MHz晶振 在P1 0脚上输出周期为2 5s 占空比20 的脉冲信号 应用举例 4 有P3 4引脚 T0 输入一低频信号 其小于0 5kHZ 要求P3 4每发生一次负跳变时 P1 0输出一个50ms同步负脉冲 已知晶振频率为6MHZ 应用举例 提示 1 先制作 周期为1s 占空比为98 的脉冲 可以使用脉冲发生器或者使用定时器产生该脉冲2 将该脉冲信号引到P3 4 做外部脉冲 注 如果使用定时器产生脉冲则需要两个51单片机 一个产生脉冲 一个进行脉冲展宽 两个51使用不同的hex文件关联到proteus进行仿真 为了方便两个51工作频率都为6MHZ 附 实验四实验结果 附 实验四需要的脉冲发生器配置 所在库 器件名字 选择脉冲波 高电平电压5v 占空比设置 周期1s 思考 如果使用方式2有什么好处 51的外部中断最多可以有几个 扩展应用 1 交通灯 定时精确时间2 音乐播放 门控位GATE为1时 TRx 1 INTx 1才能启动定时器 利用这个特性可以测量外部输入脉冲的宽度 假定定时器单次就足够采集外部输入脉冲的宽度 5门控位的应用 定时器0 或定时器1 在某方式时的逻辑电路结构图 6小结 定时计数器应用非常广泛 如定时采样 时间测量 产生音响 作脉冲源 制作日历时钟 测量波形的频率和占空比 检测电机转速等 因

温馨提示

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

评论

0/150

提交评论