51单片机定时/计数器相关知识点
51单片机定时/计数器相关知识点
结构组成
51单片机的定时/计数器中有两个寄存器:
- T0:低位:TL0(字节地址8AH)高位:TH0(字节地址8CH)
- T1:低位:TL1(字节地址8BH)高位:TH1(字节地址8DH)
他们的控制通过两个特殊功能寄存器实现, 其中:
- TMOD定时方式控制寄存器:确定定时/计数器的工作方式和功能
- TCON定时控制寄存器:管理T0,T1的启停、溢出、中断
两个定时器都有一根连接外部的引脚P3.4,P3.5,用于接入外部计数脉冲信号。
当软件设置T0或T1启动定时/计数器后,他们会由硬件自动运行。无需CPU干预,直到计数器溢出后才会通过中断让CPU进行后续的处理。
定时/计数器的控制
TMOD定时方式控制寄存器
以下是TMOD的寄存器组成:

下面是对其中每一位的说明:
| 位 | 符号 | 功能 |
|---|---|---|
| TMOD.7 | GATE | TMOD.7控制定时器1,置1时只有在 I N T 1 ‾ \overline {INT1} INT1脚为高及TR1控制位置1时才可打开定时器/计数器1。 |
| TMOD.3 | GATE | TMOD.7控制定时器1,置1时只有在 I N T 0 ‾ \overline {INT0} INT0脚为高及TR1控制位置1时才可打开定时器/计数器1。 |
| TMOD.6 | C/ T ‾ \overline {T} T | TMOD.6控制定时器1用作定时器或计数器,清零则用作定时器(从内部系统时钟输入),置1用作计数器(从T1/P3.5脚输入) |
| TMOD.2 | C/ T ‾ \overline {T} T | TMOD.2控制定时器0用作定时器或计数器,清零则用作定时器(从内部系统时钟输入),置1用作计数器(从T0/P3.4脚输入) |
| TMOD.5/TMOD.4 | M1 M0 | 定时器/计数器1模式选择 |
| TMOD.1/TMOD.0 | M1 M0 | 定时器/计数器0模式选择 |
定时/计数器的模式选择,其对应模式如下:
T1定时器:
| M1 | M0 | 模式 |
|---|---|---|
| 0 | 0 | 13位定时器/计数器,兼容8048定时模式,TL1只用低5位参与分频,TH1整个8位全用。 |
| 0 | 1 | 16位定时器/计数器,TL1、TH1全用 |
| 1 | 0 | 8位自动重装载定时器,当溢出时将TH1存放的值自动重装入TL1 |
| 1 | 1 | 定时器/计数器1此时无效(停止计数) |
T0定时器:
| M1 | M0 | 模式 |
|---|---|---|
| 0 | 0 | 13位定时器/计数器,兼容8048定时模式,TL0只用低5位参与分频,TH0整个8位全用。 |
| 0 | 1 | 16位定时器/计数器,TL0、TH0全用 |
| 1 | 0 | 8位自动重装载定时器,当溢出时将TH0存放的值自动重装入TL0 |
| 1 | 1 | 定时器0此时作为双8位定时器/计数器。TL0作为一个8位定时器/计数器,通过标准定时器0的控制位控制。TH0仅作为一个8位定时器,由定时器1的控制位控制 |
定时/计数器的工作方式
方式1
这里不介绍具体原理,读者知道以下几点即可:
- M1M0 = 01时,定时/计数器工作在方式1状态
- 这个状态下满计数值为216
- T1和T0两个定时/计数器在方式1方面没有区别
- 当C/ T ‾ \overline {T} T = 0时,为定时器工作方式
- GATE的作用实际上是是否设置外部引脚控制定时,如果它为0,那么定时/计数器的开与关只与TR的状态有关
- 当C/ T ‾ \overline {T} T = 1时,为计数器工作方式
- 处在计数器工作方式时,以该定时器对应的引脚的负脉冲作为计数信号
- 最高计数频率为(1/24)fOSC
关于定时/计数器的初值a与定时时间t的关系:
t = ( 2 16 − a ) ⋅ 12 / f O S C t = ( 2^{16} - a ) \cdot 12/ f_{OSC} t=(216−a)⋅12/fOSC
因此,当时钟频率为12MHz时,方式1的定时范围为1~65536μs
计数器初值a与计数值N的关为:
N = 2 16 − a N = 2^{16} - a N=216−a
因此,方式1的计数范围为1~65536个脉冲
方式2
当M1M0 = 10 时,定时/计数器工作于方式2
需要知道的有:
- TLx(这里的x可以为0或者1,表示定时/计数器1或者0中的低八位寄存器)作为计数器,计满数值为28
- THx记录TLx的初值,当TLx满时,由硬件自动将TLx的值还原为THx中的值
- THx中的初值是由软件赋值的
定时方式2的定时时间t和计数初值分别按下式计算:
t = ( 2 8 − a ) ⋅ 12 / f O S C a = 2 8 − t ⋅ f O S C / 12 t = (2^8 - a) \cdot 12 / f_{OSC} \\ a = 2^8 - t \cdot f_{OSC} /12 t=(28−a)⋅12/fOSCa=28−t⋅fOSC/12
方式2可以产生非常精确的定时时间,适合作用于串行口波特率发生器
计数初值a与计数值N的关系为:
N = 2 8 − a N = 2^8 - a N=28−a
方式0
当M1M0 = 00 时,定时/计数器工作于方式0
需要知道的有以下几点:
- 方式0采用低5位TLx和高8位THx组成13位的加1计数器
- 满记数值为213
- 初值不能自动重装
- TLx中的高三位是无效的,可以为任意值
方式0的定时时间t与计数初值a分别按照下式计算:
t = ( 2 13 − a ) ⋅ 12 / f O S C a = 2 13 − t ⋅ f O S C / 12 t = (2^{13} - a) \cdot 12 / f_{OSC} \\ a = 2^{13} - t \cdot f_{OSC}/12 t=(213−a)⋅12/fOSCa=213−t⋅fOSC/12
计数初值a与计数值N的关系为:
N = 2 13 − a N = 2^{13} - a N=213−a
方式3
当M1M0 = 11时,定时/计数器工作于方式3
方式3与其他方式不同,方式3时,单片机可以组合出3种定时/计数器关系:
- TH0 + TF1 + TR1 组成带有中断功能的8位定时器
- TL0 + TF0 + TR0 组成带有中断功能的8位定时/计数器
- T1 组成的无中断功能的定时/计数器
相关文章:
51单片机定时/计数器相关知识点
51单片机定时/计数器相关知识点 结构组成 51单片机的定时/计数器中有两个寄存器: T0:低位:TL0(字节地址8AH)高位:TH0(字节地址8CH)T1:低位:TL1(…...
机器视觉兄弟们,没有项目订单,机器视觉项目行业难题来了
产品没一个正形,光源像是打了几十年的光棍一样,偏偏配不上,n次“相亲”之后图像硬是“阴晴圆缺”,老板阴阳怪气你这打不出来,给客户看之后说,这都打不出来,你们不行啊。 我听了后真想ÿ…...
机器人开发--动力系统
机器人开发--动力系统 1 介绍概述BMS电池管理芯片系电源管理细分赛道,主要产品形态包括电池计量(电量计)、电池安全、充电管理等三大类芯片BMS 产业链动力电源、消费电子细分领域 BMS 芯片种类、技术及下游销量概览 电池电池包典型产品及参数…...
51单片机四位数码管计算器 Proteus仿真程序
目录 概要 仿真图 部分代码 资料下载地址:51单片机四位数码管计算器 Proteus仿真程序 概要 1.系统通过4x4的矩阵键盘输入数字及运算符。 2.可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E 3.可以进行加法以外…...
问题 B: 分牌
题目描述 有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上…...
3元一平方公里的在线卫星影像
我们为大家分享了免费下载卫星影像的方法。 但让人遗憾的是,该影像的最高分辨率只有10米,需要更高清且比较新的卫星影像,看来还是得付费购买才比较靠谱。 自助选择区县范围 商业卫星影像主要面向企事业单位,一般来讲都比较贵&a…...
只会用 xxl-job?更强大的新一代分布式任务调度框架来了!
前言 PowerJob是新一代分布式任务调度与计算框架,支持CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,能让您轻松完成作业的调度与繁杂任务的分布式计算。 文章来源:https://blog.csdn.net/LY_624/…...
LeetCode-无重复字符的最长子串(3)
题目描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 代码: class Solution {public int lengthOfLongestSubstring(String s) {Set<Character> occnew HashSet<Character>();int lens.length();int…...
【C#】知识点实践序列之Lock简单解决并发引起数据重复问题
欢迎来到《小5讲堂之知识点实践序列》文章,大家好,我是全栈小5。 这是2024年第3篇文章,此篇文章是C#知识点实践序列文章,博主能力有限,理解水平有限,若有不对之处望指正! 本篇在Lock锁定代码块基…...
NLP基础——TF-IDF
TF-IDF TF-IDF全称为“Term Frequency-Inverse Document Frequency”,是一种用于信息检索与文本挖掘的常用加权技术。该方法用于评估一个词语(word)对于一个文件集(document)或一个语料库中的其中一份文件的重要程度。…...
kubernetes(四)
文章目录 1. 持久化存储1.1 HostPath1.2 NFS1.3 PV和PVC 1. 持久化存储 1.1 HostPath hostpath:多个容器共享数据,不能跨宿主机,如果宿主机挂了,在其他宿主机上起pod,那么之前的数据就没有了 spec:nodeName: 10.0.0…...
安科瑞变电站综合自动化系统在青岛海洋科技园应用——安科瑞 顾烊宇
摘 要:变电站综合自动化系统是将变电站内的二次设备经过功能的组合和优化设计,利用先进的计算机技术、通信技术、信号处理技术,实现对全变电站的主要设备和输、配电线路的自动监视、测量、控制、保护、并与上级调度通信的综合性自动化功能。 …...
紫光展锐5G扬帆出海 | 欧洲积极拥抱更多5G选择
和我国一样,欧洲不少国家也在2019年进入5G商用元年:英国在2019年5月推出了5G商用服务,该国最大的移动运营商EE(Everything Everywhere)最先商用5G;德国在2019年年中推出5G商用服务,德国电信、沃达丰和 Telefonica是首批…...
Open3D聚类算法
按照官网的例子使用聚类,发现结果是全黑的。 经过多次测试发现 eps3.3, min_points1这里是关键 min_points必须等于1否则无效果 import time import open3d as o3d; import numpy as np; import matplotlib.pyplot as plt#坐标 mesh_coord_frame o3d.geometry.Tria…...
swing快速入门(三十九)进度对话框
🎁注释很详细,直接上代码 🧧新增内容 🧨1.模拟耗时操作 🧨2.使用计时器更新进度对话框 🎀源码: package swing31_40;import javax.swing.*; import java.awt.event.ActionEvent; import java.aw…...
Oracle-存储过程
简介 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,它大大提高了SQL语句的功能和灵活性。存储过程编译后存储在数据库中,所以执行存储过程比执行存储过程中封装的SQL语句更有效率。 语法 存储过程: 一组为了完成某种特定功能的sql语句…...
L1-085:试试手气
我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙,每次摇出的结果都满足以下两个条件: 1、每个骰子摇出…...
nginx+keepalived实现七层负载
目录 一、部署nginx01、nginx02 二、keepalived配置(抢占模式、master- backup模式) 三、测试 四、非抢占模式(backup-backup模式) nginx01 11.0.1.31nginx0211.0.1.32虚拟IP(VIP)11.0.1.30 一、部署ngin…...
机器人制作开源方案 | 智能盲道除雪小车
作者:汪荣顺 李明旭 马晓乐 吴泽俊 李以陈 单位:江汉大学 指导老师:张朝刚 张会利 本文论述了一种新型智能盲道除雪小车的设计与研发。由于目前的除雪设备集中在公路、城市道路、机场路面、高速公路等领域,但对于街道等路况的研…...
Mypy: 把静态类型检查带给Python
之前我们介绍过,Python作为一门动态语言,为人诟病的缺点之一,就是难以像java那样,支持静态类型检查,这样会把一些错误带到运行中(如果你不进行单元测试的话)。 不过,随着type hint的推开,实际上现在Python已经有了比较充分的静态类型检查。这一章我们先介绍其它Lint工…...
apt-offline终极指南:离线环境下的APT包管理解决方案
apt-offline终极指南:离线环境下的APT包管理解决方案 【免费下载链接】apt-offline Offline APT Package Manager 项目地址: https://gitcode.com/gh_mirrors/ap/apt-offline 你是否曾面临这样的困境?服务器在安全隔离的网络中,无法直…...
无损视频剪辑神器LosslessCut:3分钟学会零编码损耗的专业剪辑技巧
无损视频剪辑神器LosslessCut:3分钟学会零编码损耗的专业剪辑技巧 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 你是否还在为视频剪辑时画质损失而烦恼&…...
从GOPATH到Go Mod:老项目迁移必知的5个文件结构陷阱
从GOPATH到Go Mod:老项目迁移必知的5个文件结构陷阱 当Golang社区在2018年推出Go Modules时,很少有人预料到这个看似简单的包管理工具会成为Go语言发展史上的分水岭。四年后的今天,仍有大量遗留项目困在GOPATH的泥潭中,而迁移过程…...
对抗训练新玩法:用AdverIN攻击自己反而提升医学分割模型20%泛化性
医学影像分割的对抗训练革命:AdverIN如何让模型在新设备上表现更优 医学影像分析领域正面临一个尴尬的现实:实验室里表现优异的深度学习模型,在真实临床环境中常常"水土不服"。不同医院使用的扫描设备、成像协议差异导致的域偏移&a…...
OpenClaw技能市场盘点:10个适配Qwen3.5-4B-Claude的实用工具
OpenClaw技能市场盘点:10个适配Qwen3.5-4B-Claude的实用工具 1. 为什么需要关注技能适配性 当我第一次在OpenClaw上尝试安装第三方技能时,遇到了一个典型问题:技能安装成功了,但执行时模型总是输出"我不明白这个请求"…...
跨境云手机适用于哪些场景
跨境云手机适用于多种场景,能为不同用户群体带来便利与价值,对于跨境电商从业者而言,可用于多账号管理与运营,通过在云端虚拟出不同地区、不同配置的手机环境,实现多个店铺账号的同时登录和独立操作,有效规…...
6种专业计时模式:让OBS直播时间管理变得如此简单
6种专业计时模式:让OBS直播时间管理变得如此简单 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer 想让你的直播画面看起来更加专业吗?OBS高级计时器正是你需要的秘密武器!这款…...
若依前后端分离系统生产环境部署:从零到上线的保姆级教程
若依前后端分离系统生产环境部署实战指南 引言:为什么选择若依框架? 对于刚接触企业级开发的新手来说,若依(RuoYi)框架无疑是一个绝佳的起点。这个基于Spring Boot和Vue.js的前后端分离架构,不仅提供了完善的权限管理、代码生成等…...
极域电子教室破解神器:JiYuTrainer 让课堂学习更自由高效
极域电子教室破解神器:JiYuTrainer 让课堂学习更自由高效 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否厌倦了在计算机课堂上被极域电子教室完全控制…...
Nexus | 连接预测和决策:数据驱动优化的进展和挑战
文章信息论文题目为《Bridging prediction and decision: Advancesand challenges in data-driven optimization》,该文于2025年发表于《Nexus》期刊上。摘要数据驱动方法通过将预测与决策相结合,彻底改变了传统的优化方法。文章探讨了三种关键方法 ——…...
