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

可以看到,两个“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) )就是我们提前要装好的水的刻度。


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


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

关键字:51单片机  定时时长  寄存器 引用地址:51单片机-定时时长的作法

上一篇:51单片机-定时器工作模式
下一篇:51单片机-定时器简单运用

推荐阅读

董明珠的芯片公司——珠海零边界集成电路有限公司浮出水面,这是董明珠今年大力宣传造芯计划后,真正落地的重要一步,根据工商信息显示,董明珠为芯片公司法人,其余四位披露的高管皆是格力系的“亲卫队”。 昨日晚间,董明珠的芯片公司——珠海零边界集成电路有限公司浮出水面,这是董明珠今年大力宣传造芯计划后,真正落地的重要一步,根据工商信息显示...
提到高通,相信行业中每个人都知道。因为这个来自美国的Fabless不但为智能手机等设备提供了强悍的“大脑”——骁龙系列芯片;还用独特的专利授权模式帮助全球厂商方便、快捷地打造出能接入高速网络的高性能产品;最值得说明的是,高通也是CDMA的先祖,没有高通就没有2G,3G网络。是高通把我们的移动技术推向了新的台阶,下面就让我们从头至尾了解一下这家...
8月21日消息 谷歌正在 Android 11中做出一项改变,将迫使想要拍摄照片或视频的应用使用手机内置的相机应用,即使用户已经将第三方相机应用设置为默认相机应用。“我们相信这是保护用户隐私和安全的正确权衡。”Android 工程团队在8月17日写道,并补充说,调用摄像头的应用程序需要明确说明他们想要支持的每一个第三方相机应用。现在,谷歌给出最新的理...
1.另一个外部中断前面两讲都是围绕外部中断0(P3.2的功能)来讲解,这里我们也还有一个外部中断1(P3.3的功能)。P3.3要想实现上一讲的功能只需杜邦线接下面的IO端口即可代码就是把“EX0”改为“EX1”,“IT0”改为“IT1”。interrupt后面的0要改为2,函数名我们改为“EXTI1_IRQHandler()”#include <reg52.h> #include <function.h>//详见第六章第8讲 v...

史海拾趣

问答坊 | AI 解惑

继电器及二次回路知识(3)

二、继电器相关知识(4) 1、电流互感器有几个准确度级别?各准确度适用于哪些地点? 2、电流互感器应满足哪些要求? 3、电流互感器有哪几种基本接线方式? 4、怎样选择电压互感器二次熔断器的容量? 5、电压互感器二次保险有什么作用?哪些情况下 ...…

查看全部问答∨

3线式串口通信只有输出无输入程序如何实现

使用EZUSBFX2、部分命令用3线式串口通信、数据只有输出无输入、程序如何实现…

查看全部问答∨

超级终端问题

我将Eboot.bin烧写成功,Eboot.nb0也下载成功,打开超级终端里面没有Bootloader的菜单选项,为什么啊?有时候有的试验箱又可以显示。还有将Nk.bin下载到实验板后,怎么没有Wince系统的现实呢?应该上电就有显示吧。…

查看全部问答∨

EVC做界面

那个对话框作出来的界面怎么恰好在PDA上恰好完全显示那,是特定的限制象素决定还是什么…

查看全部问答∨

制作"基于arm的大楼灯光控制器需要什么硬件?

是我的毕业设计,可我不知道需要什么硬件和芯片,没办法和学院要设备, 希望得到高尚的帮忙 谢谢大家拉.…

查看全部问答∨

在build plateform后为什么没有NB.bin文件

在PUBLIC下的相应的工程文件里为什么没有NB.BIN文件啊.. 但上面没有显示编译有问题啊 而且后来我在上面做了些修改,比如旋转什么的后 再make image后,也没有出现问题 但就是见不到NK.BIN文件啊…

查看全部问答∨

05月26日DIY 示波器周进展

       刚刚拿到板子 ,大家都非常兴奋 ,都在往板子里写程序 ,分享了很多的心得,梦之旅同学给了我们很好的表率作用,一个晚上就发了三篇心得,非常感谢他的努力!还有这里有部分成员的心得和资料,大家可以参考参 ...…

查看全部问答∨

毕业了 转让一些项目剩下的东西

本帖最后由 ddllxxrr 于 2016-1-7 17:08 编辑 芯片              数量AT89C52        50       PIC16F877& ...…

查看全部问答∨

msp430G2仿真板,可以升级了

呵呵,msp430g2仿真板可以升级了支持后续的器件了,手上刚好有个msp430g2452,就升级了,现在可以仿真了。附上msp430g2仿真升级软件…

查看全部问答∨

吉时利如何诠释“功率半导体”最佳partner

中国功率半导体产业迎来发展良机发展新能源、促进节能减排已成为中国经济实现产业转型和快速发展的必然选择。新能源、节能减排的发展与半导体技术和半导体功率器件关联紧密。 吉时利也及时更新针对功率半导体行业的测试测量系列产品的开发应用, ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved