单片机学习6——定时器/计数功能的概念
在8051单片机中有两个定时器/计数器,分别是定时器/计数器0和定时器/计数器1。
T/C0: 定时器/计数器0
T/C1: 定时器/计数器1
T0: 定时器0
T1: 定时器1
C0: 计数器0
C1: 计数器1
如果是对内部振荡源12分频的脉冲信号进行计数,对每个机器周期计数,它是定时器(T0和T1)。
如果是对单片机引脚T0(P3.4)或者T1(P3.5)输入的外部脉冲信号进行计数,则它是计数器(C0、C1)。
定时/计数器(T/C)的结构图:
定时/计数器的结构:
1、由两个加1计数寄存器(由高8位和低8位两个寄存器组成,共计16位,每个寄存器是16位),分别对应T/C0和T/C1。
2、TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能。
3、TCON是控制寄存器,控制T0和T1的启动和停止及设置溢出标志。
加1计数寄存器输入的计数脉冲有两个来源:
1、一个是由系统的时钟振荡器输出脉冲经12分频后送来;
2、一个是由单片机引脚T0(P3.4)或T1(P3.5)输入的外部脉冲源。
每来一个脉冲,计数器加1, 当加到全1的时候,再输入一个脉冲使得计数器回零。
且计数器的溢出使TCON中的TF0或者TF1置1, 向CPU发出中断请求(定时器/计数器中断允许时)。
如果定时器/计数器工作于定时模式,则表示定时已到。
如果工作于计数模式,则表示计数值已满。
可见,由溢出时计数器的值减去计数初值是加1计数器的计数值。
控制寄存器TCON:
TCON的低4位用于控制外部中断。TCON的高4位用于控制定时器/计数器的启动和中断请求,其格式如下:
reg51.h文件:
CPU响应中断,这个时候会去执行某个中断服务函数程序。
工作方式寄存器:
工作方式寄存器TMOD用于设置定时/计数器的工作方式,低4位用于T/C0, 高4位用于T/C1。
格式如下:
GATE的工程应用是用来测量脉冲的宽度。
从高电平的时候开始计数,看高电平花了多少时间,从而计算出脉冲的宽度。
正常情况下GATE置0即可。
M1M0:工作方式设置位,定时/计数器有四种工作方式,有M1和M0进行设置。
方式1: 常用的16位定时/计数器。
方式2: 主要用在串口波特率发生器。
方式0和方式3:几乎不用。
方式1:(定时器0模式)
方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。
是对每个机器周期进行计数,计数器满了之后,会溢出,然后TF0置1,产生中断请求,CPU响应中断请求。
16位定时器0装初值的计算公式:
假设要计算的个数是n:
TH0=(65536-n)/256 商
TL0=(65536 - n)%256 求余
8051的基本时序周期:
振荡周期:为单片机提供振荡源的周期(是指振荡源的两个相邻同方向峰值之间的时间。)
机器周期:1个机器周期等于12个振荡周期。
若:fosc=12M,则8051的各周期参数如下:
振荡周期=1/12 us
机器周期=1us
单片机使用的晶振是12M,那么每个机器周期是1us。
加1计数寄存器是每1个机器周期加1,也就是相当于每间隔1us加1个数。
65536-50000=15536
也就是从15536开始计数,计数50000次,也就是50000*1us,得到50ms。
相关文章:

单片机学习6——定时器/计数功能的概念
在8051单片机中有两个定时器/计数器,分别是定时器/计数器0和定时器/计数器1。 T/C0: 定时器/计数器0 T/C1: 定时器/计数器1 T0: 定时器0 T1: 定时器1 C0: 计数器0 C1: 计数器1 如果是对内部振荡源12分频的脉冲信号进行计数,对每个机器周期计数&am…...

a-table:表格组件常用功能记录——基础积累2
antdvue是我目前项目的主流,在工作过程中,经常用到table组件。下面就记录一下工作中经常用到的部分知识点。 a-table:表格组件常用功能记录——基础积累2 效果图1.table 点击行触发点击事件1.1 实现单选 点击事件1.2 实现多选 点击事件1.3 实…...

leetCode 131.分割回文串 + 回溯算法 + 图解 + 笔记
131. 分割回文串 - 力扣(LeetCode) 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串 示例 1: 输入:s "aa…...
浅谈对于Android CMakeLists文件的理解
文章目录 文件结构 文件结构 cmake_minimum_required(VERSION 3.10.2) //设置cmake版本set(CMAKE_LIBRARY_OUTPUT_DIRECTORY${CMAKE_CURRENT_LIST_DIR}/../jniLibs/${ANDROID_ABI}) //设置.so文件输出路径 project("add") //编译目录add_library( common //生成.so文…...

虚函数可不可以重载为内联 —— 在开启最大优化时gcc、clang和msvc的表现
下面是对该问题的一种常见回答: 首先,内联是程序员对编译器的一种建议,因此可以在在重载虚函数时在声明处加上inline关键字来修饰, 但是因为虚函数在运行时通过查找虚函数表调用的,而内联函数在编译时进行代码嵌入&…...

【开源】基于Vue+SpringBoot的智能教学资源库系统
项目编号: S 050 ,文末获取源码。 \color{red}{项目编号:S050,文末获取源码。} 项目编号:S050,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…...
Sass基础知识之【变量】
文章目录 前言变量声明变量引用变量名用中划线还是下划线分隔后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:Sass和Less 🐱👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。…...
云原生系列Go语言篇-泛型Part 1
“Don’t Repeat Yourself”是常见的软件工程建议。与其重新创建一个数据结构或函数,不如重用它,因为对重复的代码保持更改同步非常困难。在像 Go 这样的强类型语言中,每个函数参数及每个结构体字段的类型必须在编译时确定。这种严格性使编译…...
力扣1089题 复写零 双指针解法
2. 复写零 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。 示例 1&…...
Redis基础与运用
一、redis介绍 简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可…...
PTA:猜帽子游戏 ,C语言
题目 宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如…...
ESP32基于IDF框架OTA学习记录
ESP32基于IDF框架OTA学习记录 参考: 空中升级 (OTA) - ESP32 - — ESP-IDF 编程指南 v5.1.1 文档 (espressif.com) 目录 ESP32基于IDF框架OTA学习记录1.分区表2.native_ota_example上手2.1配置分区表2.2配置OTA的bin文件2.3修改esp32的https证书验证方法2.4修改当…...

分布式技术(一)分布式的架构的演进
💌 所属专栏:【微服务】😀 作 者:长安不及十里💻 工作:目前从事电力行业开发🌈 目标:全栈开发🚀 个人简介:一个正在努力学技术的Java工程师,专注基…...

webpack 打包优化
在vue.config.js中配置 下载 uglifyjs-webpack-plugin 包 const { defineConfig } require("vue/cli-service"); var path require("path");module.exports defineConfig({transpileDependencies: true,filenameHashing: false, // 去除Vue打包后.cs…...

electron windows robotjs 安装教程
Robotjs 安装 前言第一步 : 安装python第二步 : 安装Visual Studio 2022第三步 : 安装robotjs 前言 robotjs可以控制鼠标键盘,获取屏幕内容,配合electron可做很多自动化操作。windows下配置环境有很多坑,很多文章都太旧了。试了很多次发现了…...

IDEA解决Git冲突详解
目录 前言: 何为冲突 冲突演示 IDEA冲突解决 小结: 前言: 相信大家多多少少都有了解和使用过Git,作为Java程序员idea可谓是无敌的存在了,那么如何使用idea解决Git冲突呢?不瞒大家前段时间在公司把同事…...

Vue3使用kkFileView预览文件pdf
kkFileView - 在线文件预览kkFileView官网 - kkFileView使用Spring Boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,图片等等https://kkfileview.keking.cn/zh-cn/docs/usage.html业务场景…...

建造者模式-C语言实现
UML类图: 代码实现: #include <stdio.h> #include <stdlib.h>// 产品类 typedef struct {char* part1;char* part2;char* part3; } Product;// 抽象建造者类 typedef struct {void (*buildPart1)(void*, const char*);void (*buildPart2)(v…...

Jmeter+influxdb+grafana监控平台在windows环境的搭建
原理:Jmeter采集的数据存储在infuxdb数据库中,grafana将数据库中的数据在界面上进行展示 一、grafana下载安装 Download Grafana | Grafana Labs 直接选择zip包下载,下载后解压即可,我之前下载过比较老的版本,这里就…...

关注这两点 或能避开一些现货黄金交易的陷阱
在现货黄金投资中,交易机会是处处都有,但是亏损的情况也可能出现。投资者要在陷阱处处的市场中获得稳定盈利,就需要懂得如何规避现货黄金投资的陷阱。下面我们就来介绍两个很常用的避开陷阱的方法。 看交易的活跃度。交易越活跃,市…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...