定时器基本常识

2023-11-01 06:59
文章标签 定时器 基本常识

本文主要是介绍定时器基本常识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.概念解读

1.1定时器和计数器,电路一样

1.2定时或者计数的本质就是让单片机某个部件数数

1.3当定时器用的时候,靠内部震荡电路数数

1.4当计数器用的时候,书外面的信号,读取针脚的数据

2.定时器怎么定时

定时器的本质原理:每经过一个机器周期,就加1(在寄存器里加一,后面再讲)

思考:

2.1什么是晶振

晶振(晶体振荡器):又称数字电路的”心脏“,是各种电子产品里面必不可少的频率元器件,数字电路的所有工作离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响整个系统的稳定性。

2.2什么是时钟周期:等于晶振频率的倒数

时钟周期也称为振荡周期,定义为时钟频率的倒数,时钟周期是计算机最基本的-最小的时间单位,在一个时钟周期内,CPU仅完成一个最基本的动作,时钟周期是一个时间的量,更小的时钟周期就意味着更高的工作频率。

2.3什么是机器周期

机器周期也称为CPU周期,在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段(如取指、译码、执行等),每一个阶段完成一个基本操作,完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个时钟周期组成。

晶振频率的倒数->时钟周期

时钟周期*12或者*6->机器周期

机器周期加一耗费一个机器周期->加1耗费的时间

说到定时,就一定离不开寄存器,什么是寄存器,官方说法为:寄存器_百度百科 (baidu.com)

但是据有经验的嵌入式开发工程师来讲,也很少有人去深究寄存器的概念,所以作为初学者的话,明白它大概的作用就可以了。

寄存器相当于人体的神经,大脑下达指令,身体去执行这个指令,中间肯定是要有传递信号的媒介,那就是神经。寄存器在单片机中也是类似于神经的存在,计数是在寄存器中+1,由寄存器来定时,形成了一个完整的计时系统。

*寄存器加一经过了多少时间

以上文晶振型号举例:当晶振频率是11.0592MHz的时候,等于11059.5KHz=11059200Hz

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

*在哪里加1,最大计数时间,也就是爆表能计算多长

在TH和TL寄存器中加1,默认是从0开始数数,最多能数65536下,累计计时71ms

*如何算出10ms定时器的初值

就不让它从0开始数数,10ms需要数9216下,让寄存器从65536-9126=56320(16进制表示为0xDC00)开始数数

*怎么知道爆表

TCON寄存器的bit5能表示爆表:当爆表的时候,硬件会修改bit5(TF0)上面的数据,改成1(置1),如果不用中断,我们代码清零。

*怎么开始计时

TCON寄存器的bit4,通过编程让这个位为1的时候,开始计时,相当于按下了闹钟

*定时器使用是有很多种模式的

定时器模式寄存器:TMOD来选择定时器模式,选择工作方式1:TMDO的bit0,bit1配置成0 ,1  : 16的定时器功能

以上程序是对 定时器的一个使用,令LED灯隔1s开关一次。

-------------------------------------------定时器中断相关寄存器------------------------------------------------

中断寄存器IE:中断允许寄存器(可位寻址)

CPU能响应定时器0中断的条件:需要配置IE寄存器的bit1:ET0 bit7:EA

1.ET0中断允许要置1

2.EA总中断要置1

EA:CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请,EA的作用是使中断允许形成两级控制,即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制。

ET0:T0的溢出中断允许位。ET0=1,允许T0中断,ET0=0禁止T0中断。

这篇关于定时器基本常识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/321279

相关文章

【Qt】定时器事件

定时器事件 在之前学习QTimer中实现了定时器的功能,而在QTimer背后是QTimerEvent定时器事件进行支撑的。在QObject中提供了一个timeEvent这个函数。 startTimer启动定时器killTimer关闭定时器 Qt 中在进⾏窗⼝程序的处理过程中,经常要周期性的执⾏某些操作,或者制作⼀些动画效果,使⽤定 时器就可以实现。所谓定时器就是在间隔⼀定时间后,去执⾏某⼀

独立按键单击检测(延时消抖+定时器扫描)

目录 独立按键简介 按键抖动 模块接线 延时消抖 Key.h Key.c 定时器扫描按键代码 Key.h Key.c main.c 思考  MultiButton按键驱动 独立按键简介 ​ 轻触按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通与断开。  ​ 按键抖动 由于按键内部使用的是机

【JavaScript】在循环体中了解定时器工作机制

for (var i = 0; i < 5; i++) {setTimeout(function() {console.log(i);}, 1000);}console.log(i);   如果我们约定,用箭头表示其前后的两次输出之间有 1 秒的时间间隔,而逗号表示其前后的两次输出之间的时间间隔可以忽略,代码实际运行的结果该如何描述?会有下面两种答案: A. :5 -> 5 -> 5 ->

WebAPI (一)DOM树、DOM对象,操作元素样式(style className,classList)。表单元素属性。自定义属性。间歇函数定时器

文章目录 Web API基本认知一、 变量声明二、 DOM1. DOM 树2. DOM对象3. 获取DOM对象(1)、选择匹配的第一个元素(2)、选择匹配多个元素 三、 操作元素1. 操作元素内容2. 操作元素属性(1)、常用属性(href之类的)(2)、通过style属性操作CSS(3)、通过类名(className)操作CSS(4)、通过classList操作控制CSS(5)、操作表单

深入理解C语言中的POSIX定时器

引言 在Unix和类Unix系统中,定时器是一种常见的机制,用于在特定时间间隔后执行某些操作。POSIX定时器因其灵活性和功能丰富而被广泛采用。本文将深入探讨POSIX定时器的工作原理、内部机制、使用方法及其在实际开发中的应用。 POSIX定时器基础 POSIX定时器是一种高级定时器接口,它允许用户创建定时器并指定定时器到期时的动作。POSIX定时器支持以下特性: 信号通知:定时器到

Android AnalogClock TextClock DigitalClock Chronometer 时钟 定时器

AnalogClock 相关属性:  android:dial="@drawable/img1" //表盘android:hand_hour="@drawable/alert_dialog_icon" //时针android:hand_minute="@drawable/alert_dialog_icon" //分针 TextClock 相关属性: android:f

Qt 设置定时器,label自动隐藏

使用这一句话,label将会在3秒后自动隐藏。 QTimer::singleShot(3000,ui->lb_ok,SLOT(hide()));

Android -- 视频音频多媒体播放,在线播放, MediaPlayer, SurfaceView, SoundPool, Timer定时器使用

1. SoundPool 用于快速重复的播放短音频 [java]  view plain copy public class MainActivity extends Activity {       private SoundPool soundPool;       private int soundId;          @Override       protec

javascript定时器小结

javascript有两种定显示器, setTimeout和setInterval,下面简要介绍两个函数然后附上简单的例子。 setTimeout(function, time) ,  当定位到time间隔则执行function函数,执行一次就不再执行 clearTimeout(t), 结束setTimeout定时器 setInterval(function, time), 每隔time间隔