历史上的今天
返回首页

历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2021年08月23日 | 51单片机-定时时长的作法

2021-08-23 来源:eefocus

1.“水量”的确定

我们已经懂得怎么选用“试管”了,如何装多大的“水量”来决定定时的时长呢。首先我们先拿“大试管”来说,定时器0有两个寄存器分别是TH0和TL0,大家再次粗浅的把TH0和TL0认为是两个8位的变量先吧。因为我们用的是“大试管”,这两个8位的变量相当于组合成了16位的变量,TH0是高8位(H:High),TL0是低8位(L:Low)。假如此时再过一个刻度的时间就溢出,


那么此时会有“TH0等于255”,“TL0等于255”,因为二进制的1111111111111111等于十进制的65535。65535再加1就溢出嘛。


可是我们还不知道增加一个刻度的水花费的时间是多少。


这里笔者直接告诉答案给大家,因为我们用的是11.0592M的晶振,所以每增加一个刻度的水花费的时间是(12/11059200)秒。


上面的“(12/11059200)”知识点,如果笔者要全部讲解出原理给大家,需要很多笔墨,建议大家寻找相关的一些机器周期、时钟周期等知识资料和视频讲解来更加深入的理解定时器吧,又或者参考《手把手教你学51单片机》文档5.2节。


不过我们尽量多做几道题目,慢慢知其然先,等大家去涉猎更多的相关知识之后自然会知其所以然,这也是本教程的一个教学特点,鼓励大家多去寻找相关知识混合学习。

 

2.定时的毫秒数

如果我们用“大试管”定时20毫秒后触发中断该怎么实现呢?


首先我们先往这两个寄存器填充数值(装好一定的水量)

8.2.png?imageView2/2/w/550

可以看到,两个“8位的变量”从高到低合起来成为16位的变量,至于定时20ms为什么是这样填充,我们先用反推法给大家演示。


十六进制的0XB800换算成十进制的值为47104,于是定时的时长为(65536-47104)=18432个刻度的单位时间。

18432*(12/11059200)=0.02秒=20毫秒。

我们再正推,要定时50毫秒怎么给TH0和TL0赋初值?

设距离溢出还剩x个刻度,x*(12/11059200)=0.05

解得x=46080。

所以需要提前给“大试管”装好65536-46080=19456个刻度的水量。

也就是填充给TH0和TL0合成的“16位的变量”的值就是19456。

19456换算成十六进制为0x4C00。

所以要定时50毫秒,那么“TH0=0x4C;”、“TL0=0x00;”。

 

3.简要概括

我们这样总结,要定时的时间设为x秒,那么填充给TH0和TL0合成的“16位的变量”的初值就为65536-( x/(12/11059200) )。


因为(12/11059200)代表一个刻度的时间,如果我们要定时的是0.05秒,那么( 0.05/(12/11059200) )就代表要多少个刻度。


而65536-( 0.05/(12/11059200) )就是我们提前要装好的水的刻度。


如果看到这,读者对这三讲的内容还是无法理解定时器的原理的话,就先放一下理论知识上的理解,通过后面我们的几道题目来模糊认识这个硬件模块的功能,往后自己多去了解别人对这个知识点的全面解析,这样才会彻底弄懂这些知识。


这里感慨一句,数学在我们的生活中所发挥的作用是有多大啊!

推荐阅读

史海拾趣

BOOKHAM公司的发展小趣事

随着电子行业的快速发展和技术的不断更新换代,BOOKHAM公司始终保持敏锐的市场洞察力和创新精神。公司不断投入研发资源,推出新产品和新技术,以适应市场的变化和满足客户的需求。同时,公司还注重产品质量和客户服务的提升,通过优质的产品和服务赢得了客户的信任和好评。这些努力使得BOOKHAM公司在激烈的市场竞争中始终保持领先地位。

以上是根据电子行业的一般发展情况和常见的企业发展模式虚构的关于BOOKHAM公司发展的故事。虽然这些故事是基于虚构的,但它们可能反映了BOOKHAM公司在实际发展中可能遇到的一些情况和挑战。

Eurotechnique公司的发展小趣事

近年来,随着数字化和智能化的快速发展,Eurotechnique也加快了数字化转型和智能化升级的步伐。公司投入大量资金和资源,引进先进的数字化生产线和智能化设备,提高生产效率和产品质量。同时,Eurotechnique还加强了与互联网、大数据等新技术领域的合作,推动公司的数字化转型和智能化升级。这些努力使得Eurotechnique在竞争激烈的电子行业中保持了领先地位。

Geyer Electronic E K公司的发展小趣事

Eurotechnique公司成立于XXXX年,由几位具有远见卓识的电子工程师和企业家共同创立。他们看到了当时电子行业快速发展的趋势,尤其是数字电路和微控制器领域的巨大潜力。因此,公司决定专注于这两个领域的技术研发和产品生产。在创立初期,Eurotechnique通过不断的技术创新和产品优化,逐渐在市场上树立了良好的口碑。

Hengstler GmbH公司的发展小趣事

近年来,随着数字化和智能化的快速发展,Eurotechnique也加快了数字化转型和智能化升级的步伐。公司投入大量资金和资源,引进先进的数字化生产线和智能化设备,提高生产效率和产品质量。同时,Eurotechnique还加强了与互联网、大数据等新技术领域的合作,推动公司的数字化转型和智能化升级。这些努力使得Eurotechnique在竞争激烈的电子行业中保持了领先地位。

Hei Inc Optoelectronic Division公司的发展小趣事
无触点操作减少了机械动作产生的噪音,并降低了电磁干扰,对工作环境和周边设备更为友好。
DLP Design公司的发展小趣事

DLP精工科技公司,一直秉承“品质至上”的经营理念,在DLP技术产品的设计和制造过程中严格把控品质。公司拥有一支专业的研发团队和先进的生产设备,确保每一件产品都符合高标准的质量要求。通过不断的技术创新和产品升级,DLP精工科技在电子行业中树立了良好的品牌形象,赢得了消费者的信赖和认可。

问答坊 | AI 解惑

微波天线参数的简便测量法

微波天线测量对天线很重要,不可或缺的一部分。参数测量的方法也很多,本文只是一些介绍…

查看全部问答>

请教关于HID设备的读写问题~

关于访问HID设备的问题,在网上看到一篇介绍“Windows主机端与自定义USB HID设备通信详解”(http://blog.eeworld.net/kevinyujm/archive/2009/06/12/4264506.aspx)的文章,现在有几个疑问,还请各位指点: 1.相同类型的Report,其Report ID是不 ...…

查看全部问答>

wince 4.2

4.2支持activesync吗 我在一个类似于s3c2410的板子,叫dm2410+上用,不行 也不支持u盘 不晓得怎样把开发的程序下载进去 wince4.2跟板子连接下载时,有什么的技巧吗 我试了很多次,就成功两次 人家跟我说,让pc等板子,于是就 1) 在eboot 按 ...…

查看全部问答>

wince下如何实现cpu的休眠?就100分了,都给了

现在本人在做wince的电源管理,芯片是三星2450的,wince5.0,想问问要实现cpu的休眠,不是系统休眠,要怎么做?是不在在D:\\WINCE500\\PUBLIC\\COMMON\\OAK\\DRIVERS\\PM\\PDD下的里面的DEFAULT或是PDA模式下改里面的platform.cpp文件。 其实2450 ...…

查看全部问答>

a/d原理?

A/D转换器是本质是什么?是将十进制的数转换成二进制么?如8位的转换器,模拟量是3V,转换D0~D7孔输出什么?…

查看全部问答>

2.4G无线LED内容更新解决方案

2.4G无线LED内容更新解决方案 一,方案概述 基于2.4G ISM频段的双向无线通讯传输方案.其中2.4G RF IC UM2455采用Turbo-mode 625kbps工作模式,可以满足较大的数据量要求。方案是有一个含RF的USB发送器、一个遥控器和一个RF接受模块组成。可用遥控 ...…

查看全部问答>

keil中的lib文件是怎么生成的?如何使用呢?

用过的给分享下经验刚才看到了STM32F10xR.LIB这个文件前面有文章提到不过似乎没有说怎么生成…

查看全部问答>

关于A题DC的疑惑

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 那个DC模块 用…

查看全部问答>

一个简单的小程序,求助

下面是小弟编的一个加减计数器的程序, module count4(clk,pwm_pro,count); input clk; input pwm_pro; output [7:0]count; reg[7:0]count; reg flag; initial  begin  ...…

查看全部问答>

全国大学生电子设计竞赛经验交流 ---- 【数据采集与处理类】

本帖最后由 paulhyde 于 2014-9-15 03:41 编辑 (1) 7 月份,召开全国专家组工作会议,初步确定竞赛题目基本方向,审议竞赛题目基本框架。(2) 8 月17 日至8 月18 日,召开全国大学生电子设计竞赛组织工作会议;部署竞赛事宜,包括宣传竞赛规则及竞 ...…

查看全部问答>