奶爸业余单片机学习之:定时器以工作方式1运行时的初值的计算方法(51单片机)

//==========51单片机========

/*定时器以工作方式1运行

TMOD = 0x01;//定时器0

TMOD = 0x10;//定时器1

TMOD =0x11;//定时器0/1同时工作

*/

定时器工作时,如何确定定时时间?

假设有一个5L的水桶,现在要往水桶里面装水3L,怎么才知道装够3L了呢?答案就是先往水桶里面装水2L,然后继续装,水满溢出时,就表示3L水装够了。

(以定时器0为例)溢出:单片机也一样,当单片机内定时器以工作方式1运行时,定时器存储寄存器每经过一个机器周期就加1,计数长度为65535(十六进制为:FFFFFF),所以65536+1时就会溢出,溢出后寄存器值从0开始计数,则:定时周期 = 65536 - 初值,初值为0时,定时周期 = 65535个机器周期

所以,当需要定时时,先往寄存器里装入初值,让寄存器从初值开始计数,到65536时,寄存器溢出为0,溢出后TF0 == 1,表示定时值已到,若需要用到循环定时,则溢出后,首先必让溢出标志(TF0)归零(归零方法:一、程序清零,则TF0 = 0;二、进入定时器中断以实现硬件自动清零。)。

其次,须往寄存器重新装入初值再开始计算。

时钟周期 = 1/时钟频率;

机器周期(定时器存储寄存器加1时间)= 12×时钟周期,

以11.0592MHz频率晶振为例,机器周期(秒) = 12×(1/11059200)

初值为0时,最大定时时间为 65535×12×(1/11059200)=71ms(约),所以程序需要定时时,通常要根据定时时间来确定一个合适的初值。

假设需定时一个30毫秒时间,则0.03 = A×机器周期,可以算出A = 0.03/机器周期 = (0.03×11059200)/12,则经历A个机器周期时,就为30毫秒定时时间

可以算出 A = 27648

所以,初值 = 65536 - 27648 = 37888,37888转换成十六进制为9400,所以高八位TH0 = 0x94,低八位TL0 = 0x00;

公式总结:

初值 = 65536 - 定时时间(秒)/机器周期

时钟周期 = 1/时钟频率;

机器周期(定时器存储寄存器加1时间)= 12×时钟周期

51单片机初值计算方法相关推荐

  1. 51单片机计算定时器初值

    51单片机计算定时器初值 前言 理论分析 工作方式寄存器 TMOD GATE 门控位 C/T' 计数器模式和定时器模式选择位 M1 M0 工作方式选择位 定时器/计数器控制寄存器 TCON TCON补 ...

  2. 51单片机定时器初值计算详解

    前言: 本文详细介绍了51单片机学习过程中定时器的初值计算问题以及相关概念,力求把每一个学习过程中的可能会遇到的难点说清楚,并举相关的例子加以说明.学习完毕,又顺手利用刚学到定时器的相关知识写了一个& ...

  3. 51单片机定时器初值计算

    **菜鸟关于51类单片机的定时器初值计算问题的计算**首先先来介绍单片机的几个周期: 1.时钟周期,也称为振荡周期:定义为时钟脉冲的倒数,在单片机中也就等于晶振的倒数. 51单片机中把一个时钟周期定义 ...

  4. 51单片机定时器初值计算以及初值计算软件

    51单片机定时器初值计算以及初值计算软件 不想搞懂计算原理的直接跳到文章末尾,使用初值计算软件来解决有关初值计算的问题 51单片机定时器初值计算部分 时钟周期,也称为振荡周期:定义为时钟脉冲的倒数,在 ...

  5. 51单片机中串口波特率的计算方法详解

    首先,波特率并不是指每秒传送多少个字节,而是指每秒能够传送多少个二进制.举例:波特率为9600代表每秒能够传送9600个二进制,而一个字节=8个二进制. 那么,串口是按照什么时间标准来发送数据的? 其 ...

  6. 51单片机复习:外部中断,定时器/计数器中断

    中断: 什么是中断,就是打断,你一开始在做一件事,突然意外发生(中断源),你不得不停止手中的事,(中断响应),去处理那 件意外(中断服务),处理完意外后你继续做刚才那件事(中断返回),这就是中断,而单 ...

  7. 学习笔记:51单片机(STC89C52)如何定时10ms

    1.定时器如何定时 首先大致描述一下定时器的定时原理,其实本质就一句话:每经过一个机器周期,寄存器就加1. 这里就又要解释什么是时钟周期,什么是机械周期.我们的51单片机无论是开发板还是最小系统板上, ...

  8. 51单片机入门——定时器与外部中断

    目 录 1. 定时器 1.1. 定时器的初步认识 1.2. 定时器的寄存器 1.3. 定时器的应用 2. 外部中断 2.1. 中断的背景 2.2. 定时器中断的应用 2.3. 中断的优先级 1. 定时 ...

  9. 使用51单片机采用中断方式进行串口通信的学习记录:

    使用51单片机进行串口通信的学习记录之中断方式: 1.51单片机采用中断方式的串口通信过程及程序分析: 所谓中断方式,就是串口收/发标志位出发中断后,在中断中执行既定操作,可通过函数调用来实现. 接收 ...

  10. 51单片机:中断系统(外部中断,定时器中断,串口通信)

    目录 中断系统简介: 中断的优先级和嵌套: 8个中断请求源及其优先级: 中断的分别介绍: 1.外部中断0:INT0 2.外部中断1 3.T0和 T1:定时计数器的功能 4.串口中断(串口为什么使用定时 ...

最新文章

  1. Java泛型使用需要小心
  2. 关于安装nagios make all时出现问题的解决方法
  3. 步入DevExpress的使用(VS)
  4. 网络经典命令行【网络高手必备】
  5. .Net Core微服务入门全纪录(完结)——Ocelot与Swagger
  6. 自适应 幻灯片代码 app_字节跳动 To B 再添一员,将推出飞书文档独立App | 36氪独家...
  7. SpringCloud Sleuth分布式请求链路追踪
  8. 有关TinyXML使用的简单总结
  9. Asterisk中实现回拔
  10. 预测未来的环境,提前做出改变
  11. 几何画板是哪方面的计算机应用,几何画板最新版
  12. 推荐个工作日志的软件nyfedit
  13. 塔防游戏策划方案unity
  14. 在Delphi2007下安装ReportMachine6.5
  15. js正则表达式检验经纬度
  16. 一文详解IP地址:含义、作用、格式、分类等
  17. window系统中,交换键盘中win键和ctl键
  18. 可解释推荐系统:身怀绝技,一招击中用户心理
  19. 三调地类图斑统计分析——GP后端实现
  20. 上海租房房源数据分析(基于R的案例分析)(一)

热门文章

  1. minicom 使用方法
  2. 在 vi 中替换字符串
  3. MySQL数据库 单表数据记录查询
  4. 第七讲:工业网络——PST软件使用及web配置
  5. 使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强
  6. 利用android studio制作简单的QQ的注册、登录、忘记密码的页面
  7. android带杜比音效的播放器,杜比音乐播放器(杜比音效)
  8. java控制台通讯录
  9. 新一代Pascal.Net编程语言---PascalABC.Net开发平台
  10. 我国计算机辅助翻译专业,我国翻译硕士专业之计算机辅助翻译课程调查.pdf