单片机定时器0,TH0和TL0初值的计算

2018年12月16日 13:09:04 92年程序员 阅读数:1791

以晶振12MHZ为例:
可以得到:
TMOD=0x01;
TL0=0xb0;
TH0=0x3c;

至于怎么来的请看:
12M晶振每秒可产生1M个机器周期,1M个机器周期就是1000000个机器周期。一个机器周期为1us, 50ms就需要50000个机器周期,定时器在方式1工作,为16位,最大值为65536,所以需设初值为65536-50000=15536;
15536转化为16进制得3cb0;故高位TH0=0x3c;TL0=0xb0;

不同频率晶振产生的机器周期不一样:
公式为:机器周期=晶振频率/12。。。这是在该晶振频率下每秒产生多少M机器周期。

比如当晶振频率为11.0592M的晶振。则每秒可产生机器周期为11.0592/12=0.9216M的机器周期,也就是921600个机器周期。50ms等于0.05秒,所以需要921600*0.05=46080个机器周期;定时器在方式1工作,为16位,最大值为65536,所以需设初值为65536-46080=19456;转为16进制为(4c00),所以高位TH0=0x4c; TL0=0x00;

单片机定时器0,TH0和TL0初值的计算相关推荐

  1. 51单片机 定时器0中断实现1秒LED流水灯

    使用定时器0中断实现LED1秒的流水灯 #include <reg52.h> typedef unsigned int u16; typedef unsigned char u8; u8 ...

  2. 51单片机定时器0控制蜂鸣器

    我们不能直接使用单片机的 IO 口驱动,因为 51 单片机 IO 口的驱动能 力较弱(即使外接上拉电阻),而蜂鸣器驱动需要约 30mA,所以非常困难,即 使可以驱动,那对于整个芯片的其它 IO 剩下驱 ...

  3. 单片机定时器_51单片机的定时器如何计算初值?

    在学习单片机的时候,我们发现很多功能都是通过中断来实现的.之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法.8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次 ...

  4. 请描述定时器初值的计算方式_51单片机定时器初值计算方法详解

    在学习单片机的时候,我们发现很多功能都是通过中断来实现的.之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法.8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次 ...

  5. 51单片机定时器实现LED闪烁

    要启用一个定时器,先要开启定时器,然后产生中断 系统中断: 初始化程序应完成如下工作: 对TMOD赋值,以确定T0和T1的工作方式. 计算初值,并将其写入TH0.TL0或TH1.TL1. 中断方式时, ...

  6. c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)

    51c程序 51单片机定时器中断程序(C语言) 用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶 ...

  7. STC89C52单片机定时器及中断系统的介绍以及代码示例

    目录 一,定时器介绍 二,STC89C52定时器资源 三,定时器框图 四,定时器工作模式 五,中断系统及其流程 六,STC89C52中断资源 七,定时器与中断系统 八,相关寄存器的认识与配置 首先是定 ...

  8. 51单片机定时器工作方式1、2原理详解

    写在前面 1.本篇博文旨在帮助那些像我一样刚入门51单片机,如果你对定时器有一定了解,但是其中的的工作方式不能理解,那么这篇文章很适合你,如果你是大神的话-直接绕行吧-- 2.我在学习的过程中由于知识 ...

  9. 单片机定时器精准定时_单片机入门-C51语言采用定时器查询方法获取1秒精准定时...

    原标题:单片机入门-C51语言采用定时器查询方法获取1秒精准定时 视频如下: 51系列单片机含有专用的 定时器/计数器,定时器/计数器是一个二进制的加1寄存器,当启动后就开始从所设 定的计数初始值开始 ...

最新文章

  1. 腾讯云与每日优鲜便利购战略签约 引领无人零售2.0时代发展
  2. python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据
  3. 无线信标功能调试-2021-3-9-HALL检测与主控接口
  4. Android杂谈--layout的横竖屏处理
  5. 【连载】【FPGA黑金开发板】NIOS II那些事儿--编程风格(三)
  6. HihoCoder - 1831 - 80 Days(暴力)
  7. Linux C高级编程——目录操作
  8. Wi-Fi 协议和数率?
  9. php二叉树层序遍历 带层数和不带层数 需要用到队列
  10. 数据交换-电路/报文/分组交换
  11. php 管道,PHP 进程间通信---管道篇
  12. 分布式存储系统学习笔记(三)—分布式键值系统(1)—Amazon Dynamo
  13. 冒泡排序法C语言代码
  14. 最新win11 JDK环境变量的配置
  15. 越狱开发笔记(三)——非越狱App砸壳
  16. postman 定时任务
  17. 任天堂switch底座带网口全新方案分享
  18. EasyUI【DataGrid数据查询】
  19. springCloud sentinel 流量卫兵
  20. 读书:找到锚点,然后把自己给钉死

热门文章

  1. 《Essential C++》学习笔记 第三章:泛型编程风格(一)
  2. 基于卷积自编码网络结构的图像修复
  3. syslinux 启动后显示SYSLINUX 5.01H. Peter Anvin et al
  4. 2022渗透测试-信息收集笔记
  5. 控件、组件和插件的区别
  6. 精心推荐自己收藏的机器学习资源
  7. Qt-QCustomPlot
  8. 计算机设备统计报告,2017年1-12月通信设备、计算机及其他电子设备制造业增加值统计分析...
  9. json oracle 导入,JsonToOracle(Json导入Oracle工具)
  10. 联想笔记本linux不能启动无线网卡解决方法