16:定时器和计数器

定时器和计数器

  • 1、定时器和计数器的介绍
  • 2、定时器是如何工作
  • 3、寄存器
  • 4、51单片机定时器简介(数据手册)
  • 5、定时器中的寄存器(数据手册)
    • 5.1、TCON(定时器控制寄存器)
    • 5.2、TMOD(工作模式寄存器)

1、定时器和计数器的介绍

(1)定时器是单片机里面的一个内部外设,就是CPU的“闹钟”。CPU定时的时间段里面,CPU也能干别的事。当定的时间到了后,CPU再去干被指定的事。
(2)定时器其实就是用计数器实现的,计数器是记录脉冲的个数。计数器可以计算CPU外部脉冲的个数。

2、定时器是如何工作

(1)先设置好定时器的时钟源(既一个脉冲的持续的时间,一般不需要设置)
(2)初始化的时钟相关的寄存器
(3)设置定时的时间(通过设置脉冲的个数)
(4)设置中断要处理程序(时间到后被指点要做的事)
(5)打开定时器
(6)计时开始,时间到后产生中断,执行指点程序

3、寄存器

软件可以通过寄存器控制硬件,硬件也可以改变寄存器里面的值。
列如为什么0就能使LED灭,1就能使LED亮,这就和寄存器有关,

在这里插入图片描述
假如8位寄存器的第一位的控制LED灯的亮灭,1为灯亮,0为灯灭。其中寄存器怎样让LED灯亮和灭,这就牵扯到内部电路了。
我们只需要知道程序和硬件之间还有一个寄存器来作为桥梁,当程序在寄存器中放入1时,寄存器反应出灯亮。

硬件可以改变寄存器里面的值
在这里插入图片描述

列如按键控制,平常按键不安下时,对应的寄存器的值为1,当按下时,值变为0。
所以一般:
①->②
④->③->①->②
在这里插入图片描述

4、51单片机定时器简介(数据手册)

在这里插入图片描述
STC89C52内部一共有3个定时器,分别为T0,T1,T2。T0和T1是16位的定时/计数器,是定时器还是计数器取决于TMOD中的C/T。则一共能计数2的16次方个脉冲。

12时钟(12T)和6时钟(6T)的区别:
假如外部晶振为12MHZ,工作带12T的模式下,则内部时钟是频率为1MHZ,则一个脉冲的时间周期为1÷1MHZ=1us,如果工作在6T 的模式下,则内部时钟的频率为 2MHZ,一个脉冲的时间周期1÷2MHZ=0.5us

5、定时器中的寄存器(数据手册)

在这里插入图片描述
TL0为定时器/计数器T0的低8位,TH0为定时器/计数器T0的高8位(一共16位)。
TL1为定时器/计数器T1的低8位,TH1为定时器/计数器T1的高8位(一共16位)。

假如使用定时器T0要计数1000个脉冲,则为0X03E8(0000 0011 1110 1000)。
则高8位存放0000 0011,低8位存放1110 1000

5.1、TCON(定时器控制寄存器)

在这里插入图片描述

(1)8个位,但是有4个名字:TF、TR、IE、IT,每个名字的符号都有2个,后面分别带0和1,对应T0和T1。
(2TF:定时器(溢出)标志位,是只读(软件只是通过读取TF1来知道硬件的状态,而不用去写这一位来设置硬件的伏态)的。定时器定时时间到了后会做2件事情:第一个是把F标志改为1,第二个是产生中断让CPU去中断处理。TF是硬件清零的(由1变0是自动的,不需要软件来干预)。有一些CPu的设计是需要软件去清零的,这时候用户的程序就一定要记得给标志位清零,不然就不能重复进入中断。
(3)TR就是timer run,就是定时器的启动计数的开关。当我们把整个定时器初始化好了之后,我们给TR位写1就可以开启计数了。TR位和GATE位有一定关联性。
(4)GATE是TMOD寄存器中的,也有2个分别对应T0和T1。GATE位中文名叫门控位,工作方式是:当GATE=0时(相当于门是打开的,此时GATE位是可以忽略的),此时定时器开关就只受TR位影响。具体就是TR=1开启计数,TR=0结束计数。当timer处于定时器工作模式时GATE就要等于0;GATE一般是在timer处于计数器模式时用的。当timer用来计数时,很关键的就是什么条件下计数,什么条件下不计数。当GATE=0时计数条件只有TR1一个(TR1=1就计数,TR1=0就不计数),当GATE=1时是否计数不仅取决于TR1还取决于INT1引脚(P3.3),实际规则是:当TR1=1并且INT1引脚也为高电平时才会计数。
(5)IE也是个标志位,作用就是用来展示硬件的状态改变的。譬如IE1对应外部中断1(INT1),平时不发生INT1时IE1=0,当INT1发生中断时,硬件自动IE1=1,当CPU处理了INT1时硬件会自动给IE1=0(硬件自动清零)。
(6)IT是用来设置外部中断的中断触发方式的。所谓中断的触发方式,就是指硬件在某种条件下才会被判定为要产生中断,所以其实就是中断产生的条件。中断触发方式一般就是:边沿触发和电平触发2种。边沿触发又分为:上升沿触发、下降沿触发、双边沿触发;电平触发方式分为:高电平触发、低电平触发2种。

5.2、TMOD(工作模式寄存器)

在这里插入图片描述

(1)GATE上面已经讲过了
(2)C/T位,设置T0/T1工作在定时器模式还是计数器模式。1表示计数器,0表示定时器。
(3)M1 + M0,2个位一起来表示T0/T1处于哪种工作模式下,一般有4种:13位、16位、8位自动重载、双8位。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WordPress突然后台无法管理问题

登录WordPress后台管理评论,发现点击编辑、回复均无反应。 尝试清除缓存、关闭CF连接均无效。 查看插件时发现关闭wp-china-yes插件可以解决问题。 后来又测试了下发现加速管理后台这项,在启用时会发生点击无效问题,禁用就好了,不…

Mysql进阶(sql优化和explain关键字)

一、为什么要对SQL进行优化? 由于业务数据量的增多,SQL的执行效率对程序的运行效率影响增大,此时就需要对SQL进行优化。 二、SQL优化的方法 1.查询sql尽量不要使用select * ,而是具体字段。 节省资源,减少开销。 …

Flink Format系列(2)-CSV

Flink的csv格式支持读和写csv格式的数据,只需要指定 format csv,下面以kafka为例。 CREATE TABLE user_behavior (user_id BIGINT,item_id BIGINT,category_id BIGINT,behavior STRING,ts TIMESTAMP(3) ) WITH (connector kafka,topic user_behavior…

【01】判断素数/质数(C语言)

目录 (1)素数特点:只能被1和本身整除 (2)代码如下: (3)运行结果如下 ​编辑 (4)函数引申 (1)素数特点:只能被1和本身…

飞马座卫星

1960年代马歇尔太空飞行中心的历史显然与建造土星五号月球火箭有关。然而,鲜为人知的是该中心在设计科学有效载荷方面的早期工作。 Fairchild 技术人员正在检查扩展的 Pegasus 流星体探测表面。Pegasus 由马里兰州黑格斯敦的 Fairchild Stratos Corporation 通过马歇…

HarmonyOS SDK 助力新浪新闻打造精致易用的新闻应用

原生智能是HarmonyOS NEXT的核心亮点之一,依托HarmonyOS SDK丰富全面的开放能力,开发者只需通过几行代码,即可快速实现AI功能。新浪新闻作为鸿蒙原生应用开发的先行者之一,从有声资讯入手,基于Speech Kit朗读控件上线听…

Docker-Learn(二)保存、导入、使用Docker镜像

1.保存镜像 根据上一节内容,将创建好镜像进行保存,需要退出当前的已经在运行的docer命令行中断里面,可以通过在终端里面输入指令exit或者按下键盘上的 ctrlD建退出: 回到自己的终端里面,输入指令: docker…

基于全连接神经网络模型的手写数字识别

基于全连接神经网络模型的手写数字识别 一. 前言二. 设计目的及任务描述2.1 设计目的2.2 设计任务 三. 神经网络模型3.1 全连接神经网络模型方案3.2 全连接神经网络模型训练过程3.3 全连接神经网络模型测试 四. 程序设计 一. 前言 手写数字识别要求利用MNIST数据集里的70000张…

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

解析spritf和sscanf与模拟常用字符串函数strchr,strtok(二)

今天又来继续我们的字符串函数的文章&#xff0c;这也是最后一篇了。希望这两篇文章能让各位理解透字符串函数。 目录 strchr strtok sprintf和sscanf strchr strchr 是一个用于在字符串中查找特定字符首次出现位置的函数。以下是解析和模拟实现 strchr 函数的示例&…

vue3:25—其他API

目录 1、shallowRef和shallowReactive 2、readonly与shallowReadonly readonly shallowReadonly 3、toRaw和markRaw toRaw markRaw 4、customRef 1、shallowRef和shallowReactive shallowRef 1.作用:创建一个响应式数据&#xff0c;但只对顶层属性进行响应式处理。2…

Java玩转《啊哈算法》纸牌游戏之小猫钓鱼

缘起性空 文章目录 缘起代码地址纸牌游戏分析代码演示优化 缘起 各位小伙伴们好呀&#xff0c;还有几天就要过年了&#xff0c;祝大家新年快乐&#xff0c;万事胜意&#xff01; 本人最近看了下《啊哈算法》&#xff0c;确实阔以。 但稍显遗憾的是&#xff0c;书籍示例代码是…

Qt QVariant类应用

QVariant类 QVariant类本质为C联合(Union)数据类型&#xff0c;它可以保存很多Qt类型的值&#xff0c;包括 QBrush&#xff0c;QColor&#xff0c;QString等等&#xff0c;也能存放Qt的容器类型的值。 QVariant::StringList 是 Qt 定义的一个 QVariant::type 枚举类型的变量&…

适用于 Windows 和 Mac 的 16 款最佳数据恢复软件

数据恢复软件是找回因硬盘损坏、病毒攻击或意外删除数据等原因而在设备上丢失的数据的最佳方法。在数字世界中&#xff0c;丢失数据是一件非常糟糕的事情&#xff0c;这会让许多人的情况变得更糟。使用最佳数据恢复软件可以减轻您必须努力恢复丢失数据的压力。它将带回您的大部…

7机器人位姿的数学描述与坐标变

由上次刚体的空间转动直接切换为机器人相关术语。 1.机器人位姿的数学描述与坐标变换 1.1位姿描述 {B}相对于{A}的姿态描述用3x3矩阵表示为&#xff1a; 式中为三个单位正交主矢量&#xff0c;分别表示刚体坐标系{B}的三个坐标轴XBYBZB在参考系{A}中的方位&#xff0c;∠XBXA表…

如何实现Vuex本地存储

在前端开发中&#xff0c;Vuex是一款非常强大的状态管理工具&#xff0c;但是默认情况下&#xff0c;Vuex的数据是存储在内存中的&#xff0c;刷新页面后数据将会丢失。这往往会导致用户在刷新页面后需要重新登录等繁琐的操作。本篇文章将教会您如何实现Vuex的本地存储&#xf…

人工智能专题:量子汇编语言和量子中间表示发展白皮书

今天分享的是人工智能系列深度研究报告&#xff1a;《人工智能专题&#xff1a;量子汇编语言和量子中间表示发展白皮书》。 &#xff08;报告出品方&#xff1a;量子信息网络产业联盟&#xff09; 报告共计&#xff1a;78页 量子计算与量子编程概述 随着社会生产力的发展&am…

sqli靶场完结篇!!!!

靶场&#xff0c;靶场&#xff0c;一个靶场打一天&#xff0c;又是和waf斗智斗勇的一天&#xff0c;waf我和你拼啦&#xff01;&#xff01; 31.多个)号 先是一套基本的判断 &#xff0c;发现是字符型&#xff0c;然后发现好像他什么都不过滤&#xff1f;于是开始poc 3213131…

相机图像质量研究(7)常见问题总结:光学结构对成像的影响--镜片固化

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

Pandas 对带有 Multi-column(多列名称) 的数据排序并写入 Excel 中

Pandas 从Excel 中读取带有 Multi-column的数据 正文 正文 我们使用如下方式写入数据&#xff1a; import pandas as pd import numpy as npdf pd.DataFrame(np.array([[10, 2, 0], [6, 1, 3], [8, 10, 7], [1, 3, 7]]), columns[[Number, Name, Name, ], [col 1, col 2, co…
最新文章