当前位置: 首页 > news >正文

51单片机的时钟系统

1.简介

51内置的时钟系统可以用来计时,与主程序分割开来,在计时过程中不会终端主程序,还可以通过开启时钟中断来执行相应的操作。

2.单片机工作方式

单片机内部有两个十六位的定时器T0T1。每个定时器有两种工作方式选择,分别为计数方式定时方式
定时器的工作原理其实就是将一个计数器,将数值进行累加,接收一次脉冲就累加一次数据。这个数值只能累加到65535,因为数值存储的大小只有16位。

2.1定时模式

如果接收的脉冲信号来着单片机本身那么就是定时方式。定时器每6个周期或者12个周期会接收一个计数脉冲,例如单片机的晶振频率为12MHz,如果设置的是12个周期接收一个脉冲信号,系统会以1MHz的频率发送计数脉冲,即1us增加一次,设置的是6个周期就是,2MHz的频率发送脉冲,即0.5us增加一次。
我们下载程序的时候可以修改模式(默认为12个周期):
在这里插入图片描述

2.2计数模式

如果接收的脉冲信号来着外部引脚(T0为P3.4,T1为P3.5)就是计数方式。通过对外部引脚来发送脉冲,计数器累加。我们可以接入时钟芯片,达到更加精确的时间。

3.相关寄存器

在这里插入图片描述

TCON

在这里插入图片描述
TCON可以位寻址,寄存器地址为88H。
TF1、TR1控制T1。IE1、IT1控制外部中断1。
TF0、TR0控制T0。IE0、IT0控制外部中断2。
下面只对1说明,0基本是一样的。
TF1: 当累加溢出时(数值累加到65535)TF1置1,同时会向cpu请求中断,只有中断处理完毕TF1才会置0,也可以手动清零。
TR1: 如果为0,禁止计数。为1,可以开始计数。
IE1: 外部中断请求源,对应单片机引脚的P3.3/INT1(IE0对应的引脚为P3.2),为1外部请求中断,中断处理完毕后置0。(这个是外部中断的引脚,和定时器没有关系)
IT1: 外部中断控制位,IT1=0,低电平触发中断,IT1=1,脉冲下降沿触发中断。

TMOD

在这里插入图片描述TMOD的寄存器地址为89H,初始值为00H,不可以按位寻址。
GATE: 为1,需要INT引脚为1和TR为1时才能开始计数;为0,TR为1就可以开始计数。
C/T: 用来控制是使用内部还是外部(外部引脚P3.4或P3.5)触发计数。为0是内部,1为外部。
M1、M0控制计数的模式:
M1=0、M0=0:13位计数。8191溢出
M1=0、M0=1:16位计数。65535溢出 (常用)
M1=1、M0=0:8位计数。255溢出
M1=1、M0=1:很少用不解释。

可以看看下图,可能会有好的理解:
在这里插入图片描述

4.一般初始化操作

定时器0

void Timer0_Init(){TMOD = TMOD&0xF0;TMOD = TMOD|0x01;//设置16位计数模式(我自己取得名qwq)TF0 = 0;//中断标志位置0//这里如果是12MHZ,就是1000us溢出一次,TH0 = 64535/255;TL0 = 64535%255;ET0=1;//开启时钟0的中断EA=1;//开启所有中断TR0 = 1;//开始计数
}
//计数器溢出后会调用下面方法
void Timer0_Routine() interrput 1 {TH0 = 64535/255;TL0 = 64535%255;
}

定时器1类似

相关文章:

51单片机的时钟系统

1.简介 51内置的时钟系统可以用来计时,与主程序分割开来,在计时过程中不会终端主程序,还可以通过开启时钟中断来执行相应的操作。 2.单片机工作方式 单片机内部有两个十六位的定时器T0和T1。每个定时器有两种工作方式选择,分别…...

神经网络的问题总结

神经网络目前可以分为以下几类问题,每类问题都有其特点和不断取得的进展: 分类问题: 特点:在给定一组数据点的情况下,将它们分为不同的类别。进展:神经网络在图像分类、文本分类、音频分类等方面取得了显著…...

树莓派图像处理基础知识

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、基本函数1. cvtColor(src,tmp,COLOR_BGR2RGB);2.在OpenCV和Qt中,转换cv::Mat到QImage3.Canny(tmp,dst,30,255);4.dst matframe.clone();5.video…...

Kotlin中的Lambda表达式基本定义和使用

在Kotlin中,Lambda表达式是一种简洁的方式来定义匿名函数。Lambda表达式可以作为函数的实际参数或者返回值,使得函数成为高阶函数。本篇博客将介绍Lambda表达式的基本概念以及使用方法,并提供相关的示例代码。 Lambda表达式的基本概念 Lamb…...

递福巴士是不是骗局呢?

递福巴士的背景介绍 递福巴士是社区服务机构软件。递福巴士是一家提供公益服务的平台,为社区居民提供各种服务和支持的软件。多年来,递福巴士一直致力于社区服务和社会公益,积极推动社区的发展,改善社区居民的生活质量。 递福巴士…...

torch.Size([])与torch.Size([0])的区别

在PyTorch中,torch.Size([])和torch.Size([0])都表示一个空的维度(dimension)。然而,它们之间有微妙的区别。 torch.Size([]): 表示一个标量(scalar),即一个没有维度的张量。这个张量…...

DP基础相关笔记

基础 DP LIS LIS(Longest Increasing Subsequence),顾名思义,就是最长上升子序列问题。 在这里我们要区分一下子串和子序列的区别,很简单,子串连续,子序列可以不连续。然而就在几小时之前本蒟…...

配置公网和私网用户通过非公网口的IP地址访问内部服务器和Internet示例

组网需求 如配置公网和私网用户通过非公网口的IP地址访问内部服务器和Internet示例所示,某小型企业内网部署了一台路由器、一台FTP服务器和一台Web服务器。路由器作为接入网关,为下挂的内网用户提供上网服务,主要包括浏览网页、使用即时通信…...

相机镜头选择与机器视觉控制

相机镜头选择与机器视觉控制 在机器视觉领域,除了图像处理和算法,还需要关注硬件方面的选型和控制。相机镜头的选择是其中重要的一部分,需要考虑像素大小、镜头焦距等因素以满足项目需求。此外,编程技能也包括相机的调用和使用&a…...

Git 为文件添加执行权限

背景 当你是一台Linux,想要给文件加权限很简单,只需要执行以下命令 chmod x filename就可以给文件添加执行权限,但是如果你是Windows那就很麻烦了 解决方案 假设这里有一个名为 file.sh 的文件,内容如下: #!/bin/…...

问题记录:GPU显卡提高后,代码总体运行效率没有提高

问题:GPU显卡提高后,代码总体运行效率没有提高 原先显卡NIVIDA T400换成NVIDIA RTX A4000,CUDA核心(物理GPU线程单位)从三百多提升到了六千多,但是程序总体运行的时间没有变化。 原因分析 显卡没用上或者…...

Reparameterization trick(重参数化技巧)

“Reparameterization trick”(重参数化技巧)是一种在训练生成模型中处理随机性潜在变量的方法,特别常见于变分自动编码器(VAE)等模型中。这个技巧的目的是使模型可微分(differentiable)&#x…...

Kotlin中的可空类型

在 Kotlin 中,可空类型是一项重要的特性,它允许我们声明变量可以为空。在本篇博客中,我们将介绍 Kotlin 中的可空类型,并提供示例代码演示如何处理可空变量、使用安全调用操作符(?.)、Elvis 运算符&#x…...

数学建模——最大流问题(配合例子说明)

目录 一、最大流有关的概念 例1 1、容量网络的定义 2、符号设置 3、建立模型 3.1 每条边的容量限制 3.2 平衡条件 3.3 网络的总流量 4、网络最大流数学模型 5、计算 二、最小费用流 例2 【符号说明】 【建立模型】 (1)各条边的流量限制 &a…...

AAOS CarMediaService 服务框架

文章目录 前言MediaSessionCarMediaService作用是什么?提供了哪些接口?如何使用?CarMediaService的实现总结 前言 CarMediaService 是AAOS中统一管理媒体播放控制、信息显示和用户交互等功能的服务。这一服务依赖于android MediaSession框架…...

gRPC之gRPC转换HTTP

1、gRPC转换HTTP 我们通常把RPC用作内部通信,而使用Restful Api进行外部通信。为了避免写两套应用,我们使用grpc- gateway 把gRPC转成HTTP。服务接收到HTTP请求后,grpc-gateway把它转成gRPC进行处理,然后以JSON 形式返回数据。…...

【十四】记一次MySQL宕机恢复过程,MySQL INNODB 损坏恢复

记一次MySQL宕机恢复过程 简介:一个业务数据库疏于运维管理,突然在今天崩溃宕机了,真是让人抓狂,上面也不知道积累了多久的数据,平时也没有定期做好备份,这下岂不是瞎了啊,经过不断的收集信息和…...

从0开始在Vscode中搭建Vue2/3项目详细步骤

1.安装node.js:Node.js下载安装及环境配置教程【超详细】_nodejs下载_WHF__的博客-CSDN博客 node.js自带npm,无需单独安装。 验证: node -v npm -v 2.先简单创建一个空文件夹,vscode进入该文件夹,并打开终端。 3.安装cnpm&…...

JavaScript ES6类的定义与继承

文章目录 一、class方式定义类1.认识class定义类2.类和构造函数的异同3.类的构造函数4.类的实例方法5.类的访问器方法6.类的静态方法 二、继承1.extends实现继承2.super关键字3.继承内置类4.类的混入mixin 三、ES6转ES51.class转换2.extends转换 四、多态 一、class方式定义类 …...

中科芯与IAR共建生态合作,IAR集成开发环境全面支持CKS32系列MCU

中国上海–2023年10月18日–嵌入式开发软件和服务的全球领导者IAR今日宣布,与中科芯集成电路有限公司(以下简称中科芯)达成生态合作,IAR已全面支持CKS32系列MCU的应用开发。这一合作将进一步推动嵌入式系统的发展,并为…...

别再乱设帧率了!用DaVinci Resolve 18剪辑前,先搞定这3个关键设置(新手避坑)

别再乱设帧率了!用DaVinci Resolve 18剪辑前,先搞定这3个关键设置(新手避坑) 刚接触DaVinci Resolve的新手们,往往迫不及待地想要开始剪辑,却忽略了前期设置的重要性。错误的帧率选择、不当的缓存位置设置以…...

Stata实战:用5种方法搞定分组回归系数差异检验(附完整代码与避坑指南)

Stata分组回归系数差异检验:5种方法的深度实操与选择逻辑 当研究国有企业与非国有企业的薪酬激励效果差异时,分组回归系数检验是绕不开的实证关卡。但面对reghdfe高维固定效应下的报错警告、结果不显著或方法选择困惑,许多研究者往往陷入技术…...

万象视界灵坛代码实例:Python调用Omni-Vision Sanctuary API实现批量图像语义评分

万象视界灵坛代码实例:Python调用Omni-Vision Sanctuary API实现批量图像语义评分 1. 平台概览与技术背景 万象视界灵坛(Omni-Vision Sanctuary)是一款基于OpenAI CLIP模型的高级多模态智能感知平台。它通过创新的像素风格界面,…...

别再空谈概念了!用Python+Unity3D,手把手教你搭建一个简易的智慧交通数字孪生Demo

用PythonUnity3D实战:从零构建智慧交通数字孪生系统 十字路口的红绿灯交替闪烁,车流如织——这个再普通不过的交通场景,正成为城市管理的痛点。传统交通仿真往往停留在二维图表阶段,而今天我们尝试用Python处理实时数据流&#x…...

Helixer深度学习基因预测:5分钟从零到一的完整指南

Helixer深度学习基因预测:5分钟从零到一的完整指南 【免费下载链接】Helixer Using Deep Learning to predict gene annotations 项目地址: https://gitcode.com/gh_mirrors/he/Helixer 你是否曾经面对一个全新的基因组序列,却不知道如何开始基因…...

SpringBoot项目里,用dynamic-datasource搞定多库读写分离和事务,保姆级避坑指南

SpringBoot多数据源实战:dynamic-datasource深度整合与避坑手册 当你的应用流量开始突破单库性能瓶颈,或是业务需要接入多个异构数据库时,如何优雅管理数据源连接就成了必须面对的工程难题。最近在重构公司订单系统时,我亲历了从…...

Docker容器监控配置实战:从零搭建Prometheus+Grafana全链路监控(含完整YAML模板)

第一章:Docker容器监控配置实战:从零搭建PrometheusGrafana全链路监控(含完整YAML模板)环境准备与依赖安装 确保宿主机已安装 Docker 和 docker-compose v2.20。运行以下命令验证: # 检查版本 docker --version docker…...

别再被SystemExit: 2搞懵了!Python argparse在Jupyter Notebook里的正确打开方式

别再被SystemExit: 2搞懵了!Python argparse在Jupyter Notebook里的正确打开方式 如果你曾在Jupyter Notebook中尝试运行一个包含argparse模块的Python脚本,大概率会遇到那个令人困惑的SystemExit: 2错误。这个看似简单的报错背后,隐藏着命令…...

Mermaid Live Editor:免费在线图表编辑的终极解决方案

Mermaid Live Editor:免费在线图表编辑的终极解决方案 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor…...

别再只看额定电流了!拆解一个日本进口漏电断路器,聊聊型号里那些容易忽略的关键参数

日本进口漏电断路器深度解析:隐藏在型号铭牌中的安全密码 当你从工具箱里取出那台日本进口的NV125-SV漏电断路器时,是否曾对着面板上密密麻麻的参数符号陷入沉思?在电气安全领域,每个字母和数字都是工程师精心设计的安全密码。今天…...