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

第6章 定时器计数器

目录

6.1 定时计数器的结构框图

 6.2 定时器的控制字

6.2.1 TMOD:工作方式控制寄存器

 6.2.2 定时/计数器控制寄存器TCON

6.3 定时/计数器的4种工作方式

6.3.1  方式0、方式1(13位、16位定时计数方式)

6.3.2 方式2(常数自动重装入)

 6.3.3 方式3(T0具有)

 6.4 定时/计数器的输入信号

6.5 定时器/计数器的编程

6.5.1 初值的计算

几种工作方式的最大定时时间

 6.5.2 编程方式

6.6 定时计数器的应用举例

6.6.1:方式0的应用

 6.6.2 T0计数、T1定时工作于方式2

6.6.3 含中断的定时/计数器响应程

6.1 定时计数器的结构框图

 6.2 定时器的控制字

                工作方式控制寄存器TMOD(地址89H)

                GATE C/T M1 M0| GATE C/T M1 M0

        注意:TMOD不能位寻址

                控制寄存器TCON (88H)

                – TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

        复位后两个寄存器的状态均为00H

6.2.1 TMOD:工作方式控制寄存器

1、GATE:门控位

GATE=1,T0、T1是否工作受外部引脚输入电平的控制,INT0 引脚控制T0运行,INT1引脚控制T1运行。可用于测量在INT0或 INT1引脚出现的正脉冲的宽度

GATE=0,定时/计数器的运行不受外部引脚INT0或INT1的控制。(一般使用GATE=0

2、C/T位:计数器模式和定时器模式的选择位

 C/T=0,定时器模式。内部计数器对晶振频率12分频后的脉冲计数(该脉冲的周期等于机器周期),每个周期计数值加1。若选择12MHz晶振,则计数频率为1MHz。从计数值便可求得计数的时间,所以称为定时器模式;

C/T=1,设置为计数器模式,计数器对由引脚T0(P3.4脚)或T1 (P3.5脚)输入的外部脉冲(负跳变)计数,允许最高计数频率 为晶振频率的1/24。

3、M1 、M0工作方式选择位

 6.2.2 定时/计数器控制寄存器TCON

1、TF1位:T1计数溢出标志位。当T1计数溢出时,由硬件置 1,申请中断。进入中断服务程序后被硬件自动清0。

2、TR1位:T1计数运行控制位。由软件置1或清0。当GATE 位(TMOD.7)=0时,若TR1=1,允许T1计数TR1=0时,禁止T1计数。当GATE位=1时,TR1=1且 INT1=1时,允许T1计数。

3、 TF0位:T0计数溢出标志位,功能同TF1。

4、TR0位:T0计数运行控制位,由软件置1或清0。当GATE 位(TMOD.3)=0时,若TR0=1,允许T0计数; TR0=0时,禁止T0计数。当GATE位=1时,TR0=1且 INT0=1时,允许T0计数。

6.3 定时/计数器的4种工作方式

6.3.1  方式0、方式1(13位、16位定时计数方式)

         T1工作于方式0的等效框图(M1M0=00、01)

         定时/计数器T1工作在方式0时,为13位的计数器,由TL1 的低5位和TH1的8位所构成。TL1低5位溢出向TH1进位,TH1计数溢出置位TCON中的溢出标志位TF1。

         GATE位的状态决定定时/计数器运行控制取决于TR1 一个条件还是TR1和INT1引脚这两个条件。

        当GATE=0时,A点电位恒为1,则只要TR1被置为1,B 点电位即为1,定时/计数器被控制为允许计数(定时/计 数器的计数控制仅由TR1的状态确定,TR1=1计数, TR1=0停止计数)。

        当GATE=1时,B点电位由INT1输入的电平和TR1的状 态确定,当TR1=1,且INT1=1时,B点电平才为1,才允许定时器/计数器计数(计数控制由TR1和INT1二个条件控制)。

        方式1时,TL1的8位都参与计数,因而属于16位 定时/计数器。其控制方式,等效电路与方式0完全相同。

6.3.2 方式2(常数自动重装入)

         TL1作为计数器,当 TL1计数溢出时,在置1溢出标志TF1的同时,还自动的将TH1 中的常数送至TL1, 使TL1从初值开始重 新计数。

         这种工作方式可以省去用户软件中重装常数的程序,简化定时常数的计算方法(确定计数初 值),可以相当精确的确定定时时间。应用在波特率发生器

 6.3.3 方式3(T0具有)

        T0工作于方式3时,分为2个独立的8位计数器:TL0、TH0。

        TL0使用T0的状态控制位C/T, GATE, TR0, INT0,而TH0被固定为一个8位定时器 (不能作外部计数方式),并使用定时器T1的 状态控制位TR1和TF1,同时占用定时器T1的中断源、

        此时,定时/计数器T1可为方式0、方式1 和方式2,作为串行口的波特率发生器

 工作于方式 3 的T0

 T0工作于方式3时的T1

 6.4 定时/计数器的输入信号

        (1)、工作于定时器方式对内部时钟信号计数,内部时钟信号的频率为时钟振荡频率的1/12,即每个机器周期计数值加1。 例:采用12MHz频率的晶体时,每1微秒计数值将加1

         由于定时的精度决定于输入脉冲的周期,因此 当需要高分辨率的定时时,应尽量选用频率较高的晶 体(MCS51最高为12MHz)

        (2)、工作于计数器方式:当定时/计数器用作计数器时,计数脉冲来自外部输入引脚T0或T1。当输入信号产生由1至0的跳变(即下跳变(下降沿))时,计数器的值增1。

        需要注意:每个机器周期的S5P2期间,对外部输入进行采样。如在第一个周期中采得的值为1,而在下一个周期 中采得的值为0,则计数器加1。由于确认一次下跳变至少要用两个机器周期,即24个振荡周期,因此外部输入 的计数脉冲的最高频率为振荡器频率的1/24,同时输入信号的高、低电平保持一个机器周期以上。
        理想的计数器输入信号:脉冲信号的高、低电平至 少要各保持一个机器周期以上,确保电平在变化 之前能被采样一次。

6.5 定时器/计数器的编程

初始化

1 根据要求给方式寄存器TMOD送一个方式控制字,以设定定时器的工作方式;

2 根据需要给TH和TL选送初值,以确定需要的 定时时间或计数的初值;

3 根据需要给中断允许寄存器IE送中断控制字, 以开放相应的中断和设定中断优先级; 也可用查询方式来响应定时器。

4 给TCON送命令字以启动或禁止定时/计数器的运行。

6.5.1 初值的计算

几种工作方式的最大定时时间

例如:

         初值的计算:fOSC=12MHz,试计算定时时间2ms所需的定时器的初值。

 6.5.2 编程方式

(一)、采用查询方式:

        程序一直检测TF0(TF1),若TF0=1(TF1=1),说明定时时间到或计满数,需要软件清除溢出标志位TFx。

(二)、采用中断方式:

        程序初始化时,设置定时器 溢出中断允许后,内部硬件自动检测到TF0 =1(TF1=1)时,自动响应中断,进入中断 服务程序。由硬件自动清除TFx

6.6 定时计数器的应用举例

6.6.1:方式0的应用

        例1 选用T1方式0产生500us的定时,在 P1.1输出周期为1ms的方波; FOSC=6MHz。

        注意:T0不用时的处理,一般设为方式0,禁止进入方式3

 

 6.6.2 T0计数、T1定时工作于方式2

        从P3.4 T0输入低频脉冲,要求该脉冲每发生一次跳 变时由P1.0输出一个500us的负脉冲,与此同时由 P1.1输出一个宽为1ms的正脉冲(6MHz晶振)。

        先设T0为计数方式,工作于方式2,初值设为 0FFH,即加1即刻产生溢出。当外部输入一个负 跳变脉冲时,计数加1,并产生溢出,TF0=1;引起 CPU的T0中断。

        中断服务程序内,对定时器T1设定初值,T1也工作于方式2。

6.6.3 含中断的定时/计数器响应程序

相关文章:

第6章 定时器计数器

目录 6.1 定时计数器的结构框图 6.2 定时器的控制字 6.2.1 TMOD:工作方式控制寄存器 6.2.2 定时/计数器控制寄存器TCON 6.3 定时/计数器的4种工作方式 6.3.1 方式0、方式1(13位、16位定时计数方式) 6.3.2 方式2(常数自动重装入) 6.3.3 方…...

回归预测 | Matlab实现GWO-BP-Adaboost基于灰狼算法优化BP神经网络结合Adaboost思想的回归预测

回归预测 | Matlab实现GWO-BP-Adaboost基于灰狼算法优化BP神经网络结合Adaboost思想的回归预测 目录 回归预测 | Matlab实现GWO-BP-Adaboost基于灰狼算法优化BP神经网络结合Adaboost思想的回归预测回归效果基本介绍GWO-BP-Adaboost:基于灰狼算法优化BP神经网络结合Adaboost思想…...

蓝桥杯真题0团建dfs+哈希表/邻接表

dfs邻接表储存或者哈希表的运用,考察我们对数据的存储 本题核心就是在求从根节点开始的两棵树相同的最长序列,首先确定用dfs进行深搜,对于节点的形式可以用邻接表,邻接矩阵,哈希表来进行存储数据。下面看代码 邻接表 …...

系统架构的评估的系统的质量属性

体系结构苹果可以针对一个体系结构,也可以针对一组体系结构。 体系结构评估过程中,评估人员所关注的是系统的质量属性,所有评估方法所普遍关注的质量属性有以下几个:性能、可靠性(容错,健壮性)…...

论文阅读:基于超图高阶表示的WSI生存预测

Generating Hypergraph-Based High-Order Representations of Whole-Slide Histopathological Images for Survival Prediction 文章目录 论文介绍快速阅读摘要1 引言2 相关工作2.1 生存分析2.2 超图学习的准备工作 3 方法3.1 patch采样和低级特征提取3.2 多超图学习3.2.1 多超…...

NLP常见任务专题介绍(1)-关系抽取(Relation Extraction, RE)任务训练模板

📌 关系抽取(Relation Extraction, RE)任务训练示例 本示例展示如何训练一个关系抽取模型,以识别两个实体之间的关系。 1️⃣ 任务描述 目标:从文本中提取两个实体之间的语义关系,例如 “人物 - 组织”、“药物 - 疾病”、“公司 - 创始人” 等。输入:句子 + 标注的实…...

27. Harmonyos Next仿uv-ui 组件NumberBox 步进器组件禁用状态

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 文章目录 1. 组件介绍2. 效果展示3. 禁用状态设置3.1 整体禁用3.2 输入框禁用3.3 长按禁用 4. 完整示例代码5. 知识点讲解5.1 禁用状态属性5.2 禁用…...

docker无法pull镜像问题解决for win10

docker无法pull镜像问题解决for win10 问题原因分析解决方法 问题 在win10系统上安装好doker-desktop后ping registry-1.docker.io不同,并且也无法登陆hub.docker.com, 使用docker pull xx也无法正常下载 原因分析 hub.docker.com在2024年5月之后,国内…...

批量将 Excel 转换 PDF/Word/CSV以及图片等其它格式

Excel 格式转换是我们工作过程当中非常常见的一个需求,我们通常需要将 Excel 转换为其他各种各样的格式。比如将 Excel 转换为 PDF、比如说将 Excel 转换为 Word、再比如说将 Excel文档转换为图片等等。 这些操作对我们来讲都不难,因为我们通过 Office 都…...

Node.js调用DeepSeek Api 实现本地智能聊天的简单应用

在人工智能快速发展的今天,如何快速构建一个智能对话应用成为了开发者们普遍关注的话题。本文将为大家介绍一个基于Node.js的命令行聊天应用,它通过调用硅基流动(SiliconFlow)的API接口,实现了与DeepSeek模型的智能对话…...

Mac同时安装jdk8和jdk17,默认选择jdk8

在Mac上同时安装JDK 8和JDK 17,并设置默认版本为JDK 8,可以按照以下步骤操作: 一、下载并安装JDK 8和JDK 17 下载JDK 8 访问Oracle JDK下载页面。在“Java SE Archive Downloads”部分,找到JDK 8的下载链接。选择适合您Mac芯片类…...

【Zinx】Day5-Part3:Zinx 的连接管理

目录 Day5-Part3:Zinx 的连接管理创建连接管理模块将连接管理模块集成到 Zinx 当中将 ConnManager 集成到 Server 当中在 Connection 的工厂函数中将连接添加到 ConnManagerServer 中连接数量的判断连接的删除 补充:连接的带缓冲发包方式补充&#xff1a…...

网络安全之RSA算法

1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字(RonRivest,AdiShamir和LeonardAdleman)命名。但RSA的安全性一直未能得到理论上的证…...

Unity Dots

文章目录 什么是DotsDOTS的优势ECS(实体组件系统)Job System作业系统Burst编译器最后 什么是Dots DOTS(Data-Oriented Technology Stack)是Unity推出的一种用于开发高性能游戏和应用的数据导向技术栈,包含三大核心组件…...

设计模式-结构型模式-桥接模式

概述 桥接模式 :Bridge Pattern: 是一种结构型设计模式。 旨在将抽象部分与实现部分分离,使它们可以独立变化。 它通过组合代替继承,解决类爆炸问题,并提高系统的灵活性和可扩展性。 组成部分 【抽象部分】&#xff08…...

Ultravox:融合whisper+llama实现audio2text交互

Ultravox是由Fixie AI开发的一种创新型多模态大语言模型,专为实时语音交互设计。与传统的语音交互系统不同,Ultravox无需单独的语音识别(ASR)阶段,可以直接理解文本和人类语音,实现更快速、更自然的交互体验。Ultravox v0.5在语音理解基准测试中超越了OpenAI的GPT-4o Realt…...

【MySQL_06】表的相关操作

文章目录 一、表的基本操作1.1 创建表1.2 修改表结构1.2.1 添加列1.2.2 删除列1.2.3 修改列1.2.4 重命名列1.2.5 添加约束 1.3 删除表1.4 查询表结构1.5 重命名表1.6 复制表1.6.1 仅复制结构1.6.2 复制结构及数据 1.7 清空表数据 二、数据完整性约束2.1 主键约束2.2 唯一约束2.…...

clickhouse集群部署保姆级教程

ClickHouse安装 版本要求 23.8及之后的版本 硬件要求 三台机器 建议配置 磁盘 ssd 500G内存 32gcpu 16c 最低配置 磁盘 机械硬盘 50G内存 4gcpu 4c 容量规划 一亿条数据大约使用1TB磁盘容量 参考官方容量推荐 安装包准备 zookeeper安装 zookeeper需要java启动&…...

驾培市场与低空经济无人机融合技术详解

随着科技的飞速发展和社会的不断进步,驾培市场正面临着前所未有的变革。传统汽车驾驶培训已不再是唯一的选择,无人机驾驶等新兴领域正逐渐成为驾培市场的重要组成部分。本报告旨在探讨驾培市场与低空经济的融合发展,特别是应用型人才培养与驾…...

pandas-基础(数据结构及文件访问)

1 Pandas的数据结构 1.1 Series 特点:一维的数据型对象,包含一个值序列和数据标签(即索引) 创建Series: pandas.Series(dataNone, indexNone, dtypeNone, nameNone, copyFalse, fastpathFalse) 参数说明: data&a…...

简单记录一下Oracle数据库与mysql数据库注入的不同。

Oracle数据库的注入比mysql较复制。 一确定注入点:与mysql一样。 and 11 -- #文章有出现. and 12 -- #文章不见了。 二。确定列数。 ’order by 1,2 -- #没问题 order by 1,2,3 -- #保错,所以有两列。 三,所有uni…...

前端小食堂 | Day11 - Vue.js の烹饪秘籍

&#x1f3a8; 今日主菜&#xff1a;Vue 常用技巧全家桶 1. 响应式烹饪秘籍 <script setup> // &#x1f373; 精准控制响应式 const counter ref(0); // 基本类型用ref const user reactive({ name: 小明, age: 18 }); // 对象用reactive // &#x1f525; 自…...

如何将本地已有的仓库上传到gitee (使用UGit)

1、登录Gitee。 2、点击个人头像旁边的加号&#xff0c;选择新建仓库&#xff1a; 3、填写仓库相关信息 4、复制Gitee仓库的地址 5、绑定我们的本地仓库与远程仓库 6、将本地仓库发布&#xff08;推送&#xff09;到远程仓库&#xff1a; 注意到此处报错&#xff…...

多方安全计算(MPC)电子拍卖系统

目录 一、前言二、多方安全计算(MPC)与电子拍卖系统概述2.1 多方安全计算(MPC)的基本概念2.2 电子拍卖系统背景与需求三、MPC电子拍卖系统设计原理3.1 系统总体架构3.2 电子拍卖中的安全协议3.3 数学与算法证明四、数据加解密模块设计五、GPU加速与系统性能优化六、GUI设计与系…...

Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器

1、用Androidstudio打开已经写好了的music项目 2、逍遥模拟器打开apk后缀文件 3、在源文件搜索关键字 以后的测试中做资产收集...

C# Channel

核心概念创建Channel无界通道有界通道FullMode选项 生产者-消费者模式生产者写入数据消费者读取数据 完整示例高级配置优化选项&#xff1a;取消操作&#xff1a;通过 CancellationToken 取消读写。 错误处理适用场景Channel的类型创建Channel写入和读取消息使用场景示例代码注…...

17网商品列表的HTML结构是怎样的?

根据搜索结果&#xff0c;目前没有直接提供17网&#xff08;17zwd&#xff09;商品列表的HTML结构的详细信息。不过&#xff0c;我们可以根据一般的电商网站结构进行推测&#xff0c;并结合已有的爬虫代码示例来分析可能的HTML结构。 17网商品列表的HTML结构推测 一般来说&am…...

若依ry-vue分离板(完整版)前后端部署

目录 1.目标 2.准备工作 3.源码下载 4.整理前后端目录 5.先部署后端 &#xff08;1&#xff09;导入数据库 &#xff08;2&#xff09;改代码数据库配置 &#xff08;3&#xff09;运行redis &#xff08;4&#xff09;运行执行文件 &#xff08;5&#xff09;后端启…...

【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO &#x1f341;YOLOv8入门改进专栏&#x1f341; &#x1f341;如果再也不能见到你&#xff0c;祝你早安&#xff0c;午安&#xff0c;晚安&#x1f341; 【YOLOv8改进系列】&#xff1a; 【YOLOv8】YOLOv8结构解读…...

深入理解 HTML 文本格式化

在网页开发中&#xff0c;HTML 文本格式化是一项基础且关键的技能。通过合理运用 HTML 格式化标签&#xff0c;我们能够让网页上的文本以丰富多样的形式呈现&#xff0c;从而提升用户体验。本文将详细介绍 HTML 文本格式化的相关知识。​ 一、HTML 文本格式化基础​ 加粗文本…...