第6章 定时器计数器

news2025/3/11 22:31:47

目录

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 含中断的定时/计数器响应程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2313422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回归预测 | 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 多超…

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 都…

网络安全之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…

clickhouse集群部署保姆级教程

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

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

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

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

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

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

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

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

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

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

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

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

主页:HABUO🍁主页:HABUO 🍁YOLOv8入门改进专栏🍁 🍁如果再也不能见到你,祝你早安,午安,晚安🍁 【YOLOv8改进系列】: 【YOLOv8】YOLOv8结构解读…

北大一二三四版全套DeepSeek教学资料

DeepSeek学习资料合集:https://pan.quark.cn/s/bb6ebf0e9b4d DeepSeek实操变现指南:https://pan.quark.cn/s/76328991eaa2 你是否渴望深入探索人工智能的前沿领域?是否在寻找一份能引领你从理论到实践,全面掌握AI核心技术的学习…

【大模型】WPS 接入 DeepSeek-R1详解,打造全能AI办公助手

目录 一、前言 二、WPS接入AI工具优势​​​​​​​ 三、WPS接入AI工具两种方式 3.1 手动配置的方式 3.2 Office AI助手 四、WPS手动配置方式接入AI大模型 4.1 安装VBA插件 4.1.1 下载VBA插件并安装 4.2 配置WPS 4.3 WPS集成VB 4.4 AI助手效果测试 4.5 配置模板文…