1.定时器如何定时

首先大致描述一下定时器的定时原理,其实本质就一句话:每经过一个机器周期,寄存器就加1。

这里就又要解释什么是时钟周期,什么是机械周期。我们的51单片机无论是开发板还是最小系统板上,都会有一个电子元件叫做“ 晶振 ”,这个晶振就是单片机的“心脏”。通常为了使串口波特率稳定传输数据,大部分的51单片机上的晶振频率为11.05922MHz。时钟周期 的计算方法就是晶振频率的倒数,也就是11.0592分之一秒。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。更小的时钟周期就意味着更高的工作频率。有了时钟周期我们就可以进而计算出机械周期,一个机械周期 = 12 x 时钟周期 =12 x (1/时钟频率) 秒 = 12 / 时钟频率 秒 = 12 / 11059200 秒 = 12 000 000 / 11059200 微秒 = 1.085 微秒。总结一下,定时器定时的过程就相当于数有几个机械周期,数完了机械周期后定时器会溢出从而结束定时。

2.如何定时10ms

使用51单片机定时不得不了解TCON寄存器,TR0:控制开始计时,TF0:判断定时器是否溢出(溢出时该位置1),TL0定时器初值低八位,TH0定时器初值高八位(不配置初值默认从0开始计数)。也就是说定时器模式在16位自动重装载值的情况下,从0开始计数,数完65536个机械周期也就是71ms的时候定时器会溢出。那么如果我们想定时10ms只需要从61ms的时候开始数,数到71ms的时候定时器刚好会溢出。这个时候只需要配置定时器初值的高八位和低八位即可。

配置高八位低八位的过程:

配置的过程也并不复杂,首先确定10ms包含了几个机械周期:

10ms➗1.085us=9216(这里注意单位换算)

若从0开始计数到溢出一共是65536个机械周期,那么如果从61ms开始定时也是就是从65536-9216=56320开始计数,换算成16进制就如下图:

因此高位为DC, 低位为0。完美散花!!!

当然现在有的软件输入定时时间后可以自动生成C代码,例如ISP。但是我想接触单片机初期这些“捷径”尽量少走,多搞清楚点底层的东西对单片机的学习是很有帮助的。

学习笔记:51单片机(STC89C52)如何定时10ms相关推荐

  1. [学习笔记]51单片机

    关于51单片机入门,前提是先学一下电路,不然有的的地方不太容易理解 之前在知乎上看见一位dalao总结的单片机学习分四个层次: 第一个层次:完成单片机开发板的学习,理解单片机的工作,能够看懂单片机的程 ...

  2. 学习笔记 51单片机通用软件延时方法

    对于STC51单片机来说,延时函数,想必都不陌生.而用的最多的延时基本都是通过软件方法实现的,但由于STC51不同系列的芯片所采用的指令集不同,各指令执行所用机器周期不同.例如STC12Cx的一个振荡 ...

  3. 单片机学习笔记————51单片机实现带数码管显示的象棋比赛专用计时器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  4. 单片机学习笔记————51单片机实现数码管中的倒计时程序

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  5. 单片机学习笔记————51单片机实现用LED灯和按键来模拟工业自动化设备的运动控制

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  6. 单片机学习笔记————51单片机实现带数码管显示的加法简易计算器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  7. 单片机学习笔记————51单片机实现在数码管中实现iphone4S开机密码锁的程序

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  8. 单片机学习笔记————51单片机实现主机的串口收发

    proteus虚拟串口的实现:https://mp.csdn.net/console/editor/html/107251649 一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 / ...

  9. 单片机学习笔记————51单片机实现矩阵键盘的组合按键触发

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  10. 单片机学习笔记————51单片机实现按住一个独立按键不松手的加速匀速触发

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

最新文章

  1. 自定义注解实现日志脱敏
  2. python面试常见问题-Python面试中常见的40个问题
  3. C# 参考之方法参数关键字:params、ref及out
  4. OpenGLES渲染
  5. 优化网站设计:减少DOM元素的数量
  6. 转载一篇写的简单易懂的lvs用法
  7. 搭建 Ubuntu 可视化界面
  8. 数据管理系统 php,dms: 数据管理系统;采用mvc模型,存php原生操作无模板引擎;响应式前端框架huiadmin套用,扁平化风格,兼容移动端;...
  9. Android开发中的Java包的定义
  10. 【将多个Excel合并成一个Excel】
  11. 王道操作系统2.1.7课后习题--解答题
  12. 【头发渲染】Technical Artist的不归路 —— Kajiya-Kay Shading
  13. 鬼谷八荒修改先天气运+逆天改命
  14. 生活所迫?那些年摆过的地摊,有你么?
  15. ERP/MIS系统中集成命令行式的功能调用
  16. 商络转债上市价格预测
  17. 【操作系统笔记(四)】CPU管理的核心:多进程图像
  18. c语言高级算法bc,老调重弹篇:有关BC/C++语言程序编程学习的:10大基础算法科普帖...
  19. 单片机的c语言ppt,第9章-单片机的C语言编程.ppt
  20. 华为郑叶来:AI炒作和投机回落,是行业应用春天的开始...

热门文章

  1. 区块链公司谈区块链相关重大信息
  2. git 码云 线上线下关联
  3. IP和MAC地址绑定的好处和作用
  4. 【Vuejs】1385- Vue3 中这样使用 Icon 更优雅!
  5. 一个简单的双骰子游戏
  6. 8205A TSSOP-8 6A20V双N沟道场效应锂电池保护IC
  7. 幼儿园课程体系结构图_幼儿园课程精编版
  8. 回望过去,立足当下,展望未来
  9. 独家 | 跨链通信:区块链技术发展的新趋势
  10. 阿里云ACP有什么用?该怎么获取?