定时器简介

article/2025/10/10 23:45:53

文章目录

    • 一.定时器基本介绍
        • A.CPU时序
        • B.定时器的原理
    • 二.定时/计数器的相关寄存器
        • A.定时器工作方式寄存器(TMOD)
        • B.控制寄存器(TCON)
    • 三.定时器的四种工作方式图解

一.定时器基本介绍

A.CPU时序

振荡周期:CPU外部晶振提供的周期(一般提供晶振频率为12Hz或11.059Hz)
状态周期:1个状态周期=2个振荡周期
机器周期:CPU内部的时钟周期。外部晶振经过12分频后,就是内部时钟震荡频率。因此,1个机器周期=12个振荡周期。它是CPU完成一个基本动作的时间。
指令周期:CPU完成一条指令所需时间,以机器周期为单位。

B.定时器的原理

结构:
定时/计数器是一个16位的加1寄存器,由高8位THx和低8位TLx(x=0/1)两个8位寄存器组成。
当输入脉冲时,定时器加1;直到寄存器所有位加满了以后,再加1就会使定时器溢出归零。
在这里插入图片描述
51单片机内部有两组定时/计数器T0、T1
其中,T1引脚和T0引脚分别对应于P3.4P3.5管脚

工作原理:
定时/计数器有两种模式:
1.定时模式:脉冲来源为内部时钟,每过1个机器周期计数器加1,直至溢出。用来定时;
2.计数模式:脉冲来源为外部引脚,在每个机器周期的S5P2采样外部脉冲,用来计算外部事件。

定时/计数器的工作方式由两个特殊寄存器控制,如下所示:

二.定时/计数器的相关寄存器

A.定时器工作方式寄存器(TMOD)

用来控制定时器的工作状态。高4位用来控制T1,低4位用来控制T0。
在使用定时器之前,需要给TMOD赋值。
在这里插入图片描述
1.定时/计数模式选择(C/T)
用来选择工作于定时器还是计数器
C/T=0:定时器
C/T=1:计数器

2.门控位(GATE)
决定定时器工作是否需要附加条件
GATE=0:不需要附加条件,只需要TCON处TR0/1=1,定时器就可以启动
GATE=1:还需要当外部中断引脚INT0/1为高电平时,才能启动定时器

3.工作方式选择(M1M0)
在这里插入图片描述
定时器中通常使用定时器方式 1,串口通信中通常使用方式 2

B.控制寄存器(TCON)

用于控制:1.定时/计数器的开启、2.中断请求
在这里插入图片描述
高四位与定时器工作相关。
TR0/TR1:定时/计数器启动位。该位为1时,定时/计数器开始工作(要提前设置)
TF0/TF1:定时/计数器中断标志位。当计满以后,该位为1,向CPU申请中断。

三.定时器的四种工作方式图解

工作方式0:
在这里插入图片描述
高8位TH0都工作,而TL0只有低5位工作。从而定时器为13位。

在TMOD中,C/T决定是接入T0引脚还是接入机器周期;
中间的与门(&)决定了定时器是否工作。与门(&)的一端是TR0,另一端是一个或门(≥1)。只有当TR0还有或门都输出1,定时器才会工作。
另一端的或门(≥1)关系到GATE和INT0引脚,当GATE=1,则无论INT0是0还是1,或门都输出1,此时只要TR0=1,与门(&)就输出1,定时器工作;反之,若GATE=0,则只有当INT0=1时,或门才会输出1。

工作方式1:
在这里插入图片描述
定时/计数器有16位

工作方式2:
在这里插入图片描述
为自动重装初值的8为定时/计数器。8位计满后,TH0自动再向TL0装上初始值。特别适合于用作较精确的脉冲信号发生器。

工作方式3:
在这里插入图片描述
这种工作方式下,T1相当于没用。把T0分开为两个独立的8位计数器。

注意:由于单片机内部振荡频率有限,计数器的输入脉冲的频率不能太高。解释如下:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/kh8R7jZO.shtml

相关文章

定时器基本常识

1.概念解读 1.1定时器和计数器,电路一样 1.2定时或者计数的本质就是让单片机某个部件数数 1.3当定时器用的时候,靠内部震荡电路数数 1.4当计数器用的时候,书外面的信号,读取针脚的数据 2.定时器怎么定时 定时器的本质原理&a…

定时器详解

1. 什么是定时器(timer) 定时器实际上就是Soc当中的一个内部外设。 (1)定时器与计数器 定时器常与计数器扯到一起,计数器也是soc当中的一个内部外设,计数器顾名思义是用来计数的,就和我们的秒…

定时器(Timer)

一、定时器是什么? 定时器类似于我们生活中的闹钟,可以设定一个时间来提醒我们。 而定时器是指定一个时间去执行一个任务,让程序去代替人工准时操作。 标准库中的定时器: Timer 方法作用void schedule(TimerTask task, long delay)指定dela…

STM32-定时器详解

目录 前言 一、定时器基本介绍 1. STM32定时器 2. 通用定时器功能和特点 3. 计数器模式 4. 定时器工作原理 a.定时器框图 b.时钟产生器部分 c.时基单元 d.输入捕获通道 e.输出比较通道(PWM) 二、定时器中断应用 1.内部时钟选择 2.计数器模式 …

typedef和#define

typedef是c语言中一个重要的关键字其作用是为一种数据类型定义了一个新的名字这里的类型包括(int,char,double 等)和自定义数据类型,通俗一点来说就是为一种数据类型起一个别名 举个例子: 定义一个整型变量a并将其初始化为666&a…

typedef和define的区别、typedef的具体用法

typedef最核心的用法:给数据类型取别名,这个别名既可以是此数据类型的替换,也是指向此数据类型的指针。 具体用法(对普通数据类型取别名): 对结构体数据类型取别名: typedef与define的区别&…

#define与typedef的区别

目录 (1)原理不同 (2)功能不同 (3)作用域不同 (4)对指针的操作不同 (5)补充 a.指针常量 b.常量指针 typedef和define都是替一个对象取一个别名&#x…

C语言中的typedef

C语言中的"typedef" 一、什么是typedef typedef是用于定义新的类型名,在编程中可以用typedef来定义新的类型名来代替已有的类型名 格式: typedef 已有类型名 新的类型名 通俗点说,就是为已有的类型取别名,例如 老鼠&am…

define 与typedef的区别

define 与typedef大体功能都是使用时给一个对象取一个别名,增强程序的可读性,但它们在使用时有以下几点区别: 1.定义不一样 define定义后面不用加分号,并且它的别名在对象的前面 typedef需要加分号,并且它的别后面替…

C语言学习笔记---typedef 简介

在单片机和操作系统中 typedef 会经常用到,它可以为某一个类型自定义名称。和#define比较类似。但是又有不同的地方。 typedef 创建的符号只能用于数据类型,不能用于值。而#define 创建的符号可以用于值。typedef 是由编译器来解释,而不是预…

typedef介绍

[20210330更新]:这篇博客写的时间有点久了:)。本次更新修改了博客内容中的错误和表述不当的地方。 本文介绍C语言中的关键字 typedef 的用法。 1 概述 typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部…

【C语言】typedef的使用

目录 一、什么是typedef 二、typedef用法 1、对于数据类型使用例如: 2、对于指针的使用例如 3、对于结构体的使用 三、进阶typedef 1、数组指针 2、指针函数 3、Int *(*array[3])(int); 4、Void (*funA(int,void(*funB)(int)))(int); 四、Typedef与defin…

ubuntu etc 设置权限777带来的问题

ubuntu etc 设置权限777带来的问题--sudoers权限错误 在一次工作中,在ubutu通过命令行输入 sudo chmod -R 777 /etc 命令,误将etc目录权限更改为了777(rwxrwxrwx) 导致服务器无法ssh远程连接,而且sudo命令无法使用 提…

Linux修改文件权限为777

将文件权限改为777的命令为chmod 777 文件名 777说明: 你可以在linux终端先输入ll,可以看到如: -rwx-r--r-- (一共10个参数) 第一个跟参数跟chmod无关,先不管. 2-4参数:属于user 5-7参数:属于group 8-10参数:属于others 接下来就简单了:r>可读 w>可写 x&…

文件权限777

一个文件的权限为777(linux中 ls -l xxx.xxx (xxx.xxx是文件名,查看的是xxx文件之中的文件权限)) 这三个数字分别表示:不同用户或用户组的权限。 第一个数字表示文件所有者的权限 第二个数字 表示与文件所有者同属一个用户组的其他用户的权限 第三个数…

Linux-权限管理(你听过777、755、644吗)

文章目录 组rwx权限修改权限-chmod修改文件所有者-chown修改文件所在组-chgrp 组 linux 中每个文件有所有者、所在组、其它组的概念。 类似linux 中的每个用户必须属于一个组,不能独立于组外,组的相关操作可参考:Linux-用户管理 所有者 文件…

Linux文件属性的777权限

一、文件属性概述 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用…

Linux的777权限

Linux的每个文件一般都有三个权限 r–读,w–写,x–执行,其分别对应的数值为4,2,1。 输入ll可以查看到文件的权限。 聪明的同学已经看出来了——7即代表有读、写和执行的权限。那么为什么是三个7呢?“三”是…

Linux 777 权限表示什么,各数字又是什么含义?

最近在面试中,问到了 Linux 777 权限表示什么,各数字的含义又是什么。小格子通过自己的理解和查找的资料,做了如下总结,希望读者们遇到此问题时,可以快速又正确的回答。 1、三种权限 Linux 下的每个文件都有以下三种…

C语言移位运算(<<)

上来个题目给大家感受下 解题 #include<stdio.h> int main() {int x;while(scanf("%d",&x)!EOF){printf("%d\n",1<<x);}return 0; } 输出结果 其他&#xff1a; 运算符含义 运算符含义描述<<左移二进制数左移x位&#xff0c;高…