单片机中的定时器计算_单片机定时器计算-程序员宅基地

技术标签: C51单片机联系小结  51单片机  

一.单片机的定时原理

通过每一个机器周期,就加一,通过数1的方式进行计时。

二.基本概念

1.晶振:又称晶体振荡器,是数字电路“心脏”,是电子元件中不可或缺的频率元件,对于数字电路系统,晶振的好还直接影响系统的稳定性。

2.时钟周期:将晶振的频率的倒数定义为时钟周期,在一个时钟周期内,CPU完成一个基础动作,对于更小的时钟周期,意味着CPU有更好的性能,更高的工作效率。

3.机器周期:将时钟周期的6倍或者12倍定义为一个机器周期,具体的设定需要通过人为进行控制

三.每一次“加1”经过的时间是多少

当晶振频率是11.0592MHz的时候,等于11059.2KHz = 11059200Hz

机器周期 = 12 x 时钟周期 =12 x (1/时钟频率) 秒 = 12 / 11059200 秒 = 12 000 000 / 11059200 微秒 = 1.085 微秒

也就是说对于11.0592Mhz的晶振,其机器周期就是1.085微秒

四.实际案例

案例:通过单片机设定一个10ms的定时器

在51单片机中,定时器相关的寄存器有如下的部分

符号 含义
TL0(Timer Low0) 定时器0的低8位寄存器
TH0(Timer HIgh0) 定时器0的高8位寄存器

根据上表,可以知道共16位的寄存器可以数2^16次,就是65536次,而每次计数一下,就会耗费1.085微秒,因此当计数超过65535时,定时器寄存器就会爆表,也就是经过65535*1.085=71,105.475us=71.104575ms之后就会爆表,通常可以理解为经过71ms之后就会爆表。

对于10ms而要,首先可以计算出10ms定时定时器需要数多少次,设需要数x次,则

x=(10*1000)/1.085=9216

设定时器的初始值为y,则

y=65536-9216=56320

将56320转化成16进制数,通过计算可以知道16#DC00,因此TH = DC ;TL = 00

也就是说需要计数9612次,就可以认为经过了10ms,这时,我们可以用71ms减去10ms的次数,就可以知道定时开始计数的初始值,这个值就是y值

五.小结

单片机定时器的原理就是通过计算出所定时间需要计数的次数x,通过65536减去x,算出定时器所需的初始值,然后将初始值转化成16进制,填入TH与TL寄存器中,然后通过读取定时器溢出标志位,就可以知道定时器的定时状态。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qetuo_jfdkshlgdf/article/details/123726977

智能推荐

USB转IIC I2C SPI UART适配器模块可编程开发板应用工业数字接口转换_i2c转usb转换原理电路图-程序员宅基地

文章浏览阅读906次。可编程USB转UART/I2C/SMBusS/SPI/CAN/1-Wire适配器USB2S(USB To Serial ports)是多种数字接口物理层协议转发器,广泛应用于电子设备开发测试、工业数字接口转换、数字接口学习验证等领域。 支持嵌入程序开发自由 制定 转发透传逻辑,可实现Windows/Android/Wince indows/Android/Wince 操作系统 USB接口与 串行接口以及串行接口之间的双向通讯,还可用于脉冲计数字示波器、电压比较器。广泛应用于电子设备开发测试、工业数字接_i2c转usb转换原理电路图

【北京大学】16 TensorFlow1.x的项目实战之图像风格融合与快速迁移_风格融合网络-程序员宅基地

文章浏览阅读2.3k次,点赞5次,收藏35次。目录1 简介1.1 图像风格快速迁移1.2 图像风格融合1.3 图像风格融合与快速迁移2 数据集3 模型结构3.1 损失函数网络3.2 图像生成网络4 代码讲解4.1 代码结构4.2 核心代码forward.py文件backward.py文件test.py文件app.py文件5 实验环境及源码下载1 简介图像风格融合与快速迁移分为风格融合和风格快速迁移两步B站图像风格融合与快速迁移讲解视频1.1 图像风格快速迁移将一个图像的风格迁移到另一张图片上。原始图像风格迁移技术与快速图像风格迁移技术对比_风格融合网络

matlab非线性相位fir,数字信号处理实验(MATLAB版)实验23线性相位FIR数字滤波器.ppt...-程序员宅基地

文章浏览阅读572次。一、实验目的  (1)加深对线性相位FIR数字滤波器特性的理解。  (2)掌握线性相位滤波器符幅特性和零极点分布的研究方法。  (3)了解用MATLAB研究线性相位滤波器特性时程序编写的思路和方法。 二、实验原理  1.线性相位FIR滤波器的特性  与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函..._线性相位fir滤波器的零点分布。(已知一个零点求另外3个零点)

JSTL-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏2次。什么是JSTLJSTL全称JavaServer Pages Tag Library Jsp标准标签库该标签库是由Apache组织提供的免费开源的jsp标签JSTL是干什么用的?为了简化和替换jsp页面上的java代码 因为有时候我们不得不需要在jsp页面加入java代码 ,但是加入java代码以后会使前端人员看不懂,不能很好的一起协作完成项目,并且后期维护的时候换了其他维护人员也会造成代码阅读的不方便,但是如果加入标签的话,前端人员就能很快看出来这段代码的作用,并且对其进行美化操作之类的协作。_jstl

SQL语法之FOREIGN KEY 约束_创建表sql语句foreign关键字-程序员宅基地

文章浏览阅读1k次。FOREIGN KEY约束_创建表sql语句foreign关键字

linux的sleep()和usleep()_linux usleep 头文件-程序员宅基地

文章浏览阅读1.1k次。usleep() :将进程挂起一段时间, 单位是微秒(us)(百万分之一秒);sleep():暂停的单位是秒,而不是毫秒. --LinuxSleep():暂停的单位是毫秒,不是秒,(其中"S"是大写) --Windowusleep函数在Linux系统中两个函数头文件都是: unistd.h   语法: void usleep(int micro_seconds);   返回值: 无   内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的微秒数(us)。_linux usleep 头文件

随便推点

IE6下select覆盖div z-index无效 解决方案-程序员宅基地

文章浏览阅读107次。遇到了IE6 select遮挡div的bug,这个bug表现为页面有浮动元素(某个div元素)在select上面时,在IE6里面select总是显示在这个浮动元素上方,该元素z-index的值多大都没有作用。解决的思路是:IE6中iframe可以覆盖select,而div可以覆盖iframe,所以解决办法就是使用iframe元素包裹或者覆盖select元素或浮动元素,或者在selec..._el-select 的el-option被压盖问题z-index都不行

Android8.1源码编译_android8.1 编译-程序员宅基地

文章浏览阅读4k次。编译须知:1.本次编译平台Ubuntu18.04。使用的虚拟机来完成的源码编译,本次编译的是android8.1版本。2.虚拟机的虚拟硬盘最好在150g以上,我的虚拟中分配了268g内存,只安装了Android编译需要的库,编译完Android磁盘占用54%,环境搭建1.安装虚拟机Ubuntut虚拟机,为了方便查找编译过程中的资料,我选择了Ubuntu18.4的版本ubu..._android8.1 编译

经典背包问题3——背包问题求方案数 、背包问题求具体方案-程序员宅基地

文章浏览阅读2.3k次。经典背包问题3——背包问题求方案数 、背包问题求具体方案1. 背包问题求方案数2. 背包问题求具体方案1. 背包问题求方案数有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。第 i件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 最优选法的方案数。注意答案可能很大,请输出答案模 109+7的结果。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N行,每行两个整数 vi,wi,用空格隔_背包问题求方案数

Vue中created methods,computed等常用的方法整理-程序员宅基地

文章浏览阅读1.2k次。一下是个人理解 如有错误请指出 谢谢! 现学现卖0.0created:html加载完成之前,执行。执行顺序:父组件-子组件mounted:html加载完成后执行。执行顺序:子组件-父组件methods:事件方法执行watch:watch是去监听一个值的变化,然后执行相对应的函数。computed:computed是计算属性,也就是依赖其它的属性计算所得出最后的值,定义起来像函数,用起来想属性 意思就是调用不加括号简单写一下var vm = new Vue({ el:"#app",

Excel文件数据导出_如何用单片机导出表格文件-程序员宅基地

文章浏览阅读432次。模板导出Excel导入导出是一般数据统计中常用到的一个功能;那么如何去实现导出数据呐!我们来看一下:页面:页面通常就是一个想这样的导出按钮;点击按钮就触发跳转: function exportExcel() {window.open('@Url.Content("~/Main/ExportARData")');}跳转到指定控制器方法上面:ExportARData到了控制器,我们又可以分为3个块来看;查出要导出的数据;二.我们先把要导出的字段查出来;然后打开我们需.._如何用单片机导出表格文件

vue JAVA服务器端渲染_Vuejs 2服务器端渲染 - 无法正常工作-程序员宅基地

文章浏览阅读240次。我一直在努力使我的vuejs应用程序与SSR功能良好,但我的所有尝试都失败了 . 我真的需要帮助 .请注意,我使用普通的js文件,而不是使用es6的.vue文件,并且需要使用webpack require函数的html模板 .该应用程序在开发模式下工作正常,但是,当我使用'vue-server-renderer'开始执行它并转到任何路由时,将抛出此错误:错误:渲染函数或模板未在组件中定义:在pre..._vue-server-renderer\build.dev.js not supported