51单片机基础篇系列-定时/计数器的控制工作方式

🌈个人主页:会编程的果子君 

💫个人格言:“成为自己未来的主人~”  

定时/计数器的控制

80C51单片机定时/计数器的工作由两个特殊功能寄存器控制,TMOD用于设置其工作方式:

1.工作方式寄存器TMOD

工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1,

GATE,门控位,GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作,GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/技术器工作,即此时定时器的启动多了一个条件

M1M0:工作方式设置位,定时/计数器有四种工作方式,由M1M0进行设置

TCON的低四位用于控制外部中断,TCON的高四位用于控制定时/计数器的启动和中断申请

TF1(TCON.7),T1溢出中断请求标志位,T1计数溢出时由硬件自动置TF1为1,CPU响应中断后TF1由硬件自动清0,T1工作时,CPU可随时查询TF1的状态,所以,TF1可用作查询测试的标志,TF1也可以用软件置1或者清0,同硬件置1或清0的效果一样。

TR1(TCON.6),T1运行控制位,TR1置1时,T1开始工作,TR1置0时,T1停止工作,TR1由软件置1或清0,所以,用软件可控制定时/计数器的启动与停止

TF0(TCON.5),T0溢出中断请求标志位,其功能和TF1类似

TR0(TCON.4),T0运行控制位,其功能与TR1类同

定时/计数器的工作方式

方式0

方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成,TL0的低五位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求

定时器模式时有:N=t/Tcy 计数初值计算的公式为:X=2^13-N,定时器的初值还可以采用计数个数直接取补发获得。计数模式时,计数脉冲是T0引脚上的外部脉冲。

门控位GATE具有特殊的作用。当GATE=0时,经反相后使或门输出为1,此时仅有TR0控制与门的开启,与门输出1时,控制开关接通,计数开始,当GATE=1时,由外中断引脚信号控制或门的输出,此时控制与门的开启由外中断引脚信号和TR0共同控制,当TR0=1时,外中断引脚信号引脚的高电平启动计数,外中断引脚信号引脚的低电平停止计数,这种方式常用来测量外中断引脚上正脉冲的宽度。

方式一

方式一的计数位数是16位,由TL0作为低八位,TH0作为高8位,组成了16位加1计数器

方式二

方式二为自动重装初值的8位计数方式

方式三

方式三只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数

 

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

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

相关文章

C++的类和对象(七):友元、内部类

目录 友元 友元函数 友元类 内部类 匿名对象 拷贝对象时的一些编译器优化 再次理解类和对象 友元 基本概念:友元提供了一种突破封装的方式,有时提供了便利,但是友元会增加耦合度,破坏了封装,所以友元不宜多用&…

AXI CANFD MicroBlaze 测试笔记

文章目录 前言测试用的硬件连接Vivado 配置Vitis MicroBlaze CANFD 代码测试代码测试截图Github Link 前言 官网: CAN with Flexible Data Rate (CAN FD) (xilinx.com) 特征: 支持8Mb/s的CANFD多达 3 个数据位发送器延迟补偿(TDC, transmitter delay compensation)32-deep T…

Jenkins 面试题及答案整理,最新面试题

Jenkins中如何实现持续集成与持续部署? Jenkins通过自动化构建、测试和部署应用程序来实现持续集成与持续部署(CI/CD)。这个过程包括以下步骤: 1、源代码管理: Jenkins支持与多种版本控制系统集成,如Git、…

数据结构 之 优先级队列(堆) (PriorityQueue)

🎉欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ 🎉感谢各位读者在百忙之中抽出时间来垂阅我的文章,我会尽我所能向的大家分享我的知识和经验📖 🎉希望我们在一篇篇的文章中能够共同进步!!&…

oops-framework框架 之 启动流程(三)

引擎: CocosCreator 3.8.0 环境: Mac Gitee: oops-game-kit 回顾 上篇博客中我们通过 oops-game-kit 模版构建了基础的项目,另外讲解了下assets目录结构和游戏配置文件的基本使用相关,详情内容可参考: oops-framewo…

mysql5.7离线安装 windows

windows上离线安装mysql5.7 下载安装包 去官网下载对应版本的mysql官网 点击archives,接着选择自己要下载的版本,选择windows系统,并根据自己电脑的位数选择相应的版本【找到“此电脑”,鼠标右击,出来下拉框,选择“属性…

频率响应概述与波特图

频率响应的定义 在放大电路中,存在电抗元件(如电容、电感)、半导体管(存在极间电容)。由于电抗元件和极间电容的存在,当输入信号频率过高或过低时,不但放大倍数的数值会减小,而且将…

Python 3.x 快速安装 pip 包管理工具

目录 ℹ️ 1. 查看是否安装 pip1.1 方法一1.2 方法二 🛠️ 2. 安装方法2.1 通过 ensurepip 进行安装2.2 通过 get-pip.py 进行安装 参考文档: pip 官方安装文档:https://pip.pypa.io/en/stable/installation/ ℹ️ 1. 查看是否安装 pip 【…

最详细数据仓库项目实现:从0到1的电商数仓建设(数仓部分)

1、数仓 数据仓库是一个为数据分析而设计的企业级数据管理系统,它是一个系统,不是一个框架。可以独立运行的,不需要你参与,只要运行起来就可以自己运行。 数据仓库不是为了存储(但是能存),而是…

hcia复习总结7

1,AR2发送2.0网段的信息给AR1,如果,AR1本身并不存在该网段的路由 信息,则将直接 刷新 到本地的路由表中。 Destination/Mask Proto Pre Cost Flags NextHop Interface 2.2.2.0/24 RIP 100…

Codeql复现CVE-2018-11776学习笔记

基本使用 1、首先下载struts2漏洞版本源码: https://codeload.github.com/apache/struts/zip/refs/tags/STRUTS_2_3_20 2、构建codeql数据库(构建失败文末有解决办法): codeql database create ~/CodeQL/databases/struts2-2.3.…

unraid docker.img扩容

unraid 弹Docker image disk utilization of 99%,容器下载/更新失败 我的版本是6.11.5,docker.img满了导致容器不能更新,遇到同样问题的可以先用docker命令清除一下仓库(当然不一定能清理出来,我已经清理过只清理出来1G多点&…

存储卡乱码:原因、恢复与预防全攻略

一、存储卡乱码现象初现 在数字时代,存储卡已成为我们生活中不可或缺的一部分,无论是手机、相机还是其他电子设备,都离不开它的陪伴。然而,当我们在某一天突然发现存储卡上的文件出现了乱码,那种焦虑和困惑感简直无法…

Linux环境(Ubuntu)上的防火墙工具使用方法

目录 概述 1 防火墙工具(ufw) 1.1 安装防火墙工具: 1.2 操作防火墙相关命令 2 ufw操作命令的范例 2.1 打开/关闭防火墙 2.1.1 打开防火墙 2.1.2 关闭防火墙 2.1.3 查询当前防火墙状态 2.1.4 允许选择的端口访问 2.1.5 允许选择固定…

【海贼王的数据航海】排序——直接选择排序|堆排序

目录 1 -> 选择排序 1.1 -> 基本思想 1.2 -> 直接选择排序 1.2.1 -> 代码实现 1.3 -> 堆排序 1.3.1 -> 代码实现 1 -> 选择排序 1.1 -> 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置&…

c++入门你需要知道的知识点(下)

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 今日主菜:c入门 主厨:邪王真眼 所属专栏:c专栏 主厨的主页:Chef‘s blog 前言: 上次我们通过c入…

C#构建类库

类库程序集能将类型组合成易于部署的单元(DLL文件),为了使编写的代码能够跨多个项目重用,应该将他们放在类库程序集中。 一、创建类库 在C#中,构建类库是指创建一个包含多个类的项目,这些类可以被其他应用…

JavaScript进阶:js的一些学习笔记-4

文章目录 1. 拷贝1. 浅拷贝2. 深拷贝 2. 异常处理 1. 拷贝 这里指的拷贝是指拷贝引用类型的数据(对象) 1. 浅拷贝 拷贝对象:Object.assign() 或者 {…obj} 展开运算符 const obj {name:liuze,age:23 } const o {...obj}; o.age 22; console.log(o); console.…

华为WLAN配置攻击检测功能示例

华为WLAN配置攻击检测功能示例 组网图形 图1 配置攻击检测功能组网图 配置流程组网需求配置思路配置注意事项操作步骤配置文件 配置流程 WLAN不同的特性和功能需要在不同类型的模板下进行配置和维护,这些模板统称为WLAN模板,如域管理模板、射频模板、…

瑞熙贝通打造智慧校园实验室安全综合管理平台

一、建设思路 瑞熙贝通实验室安全综合管理平台是基于以实验室安全,用现代化管理思想与人工智能、大数据、互联网技术、物联网技术、云计算技术、人体感应技术、语音技术、生物识别技术、手机APP、自动化仪器分析技术有机结合,通过建立以实验室为中心的管…