51单片机定时器/计数器

欢迎入群共同学习交流
时间记录:2024/7/3

一、电路原理图

电路原理图
51单片机具有两个定时器T0、T1

二、知识点介绍

1、寄存器介绍
(1)TMOD方式寄存器
TMOD寄存器
T0为例介绍:
工作方式选择位M1、M0
工作方式
    常用方式为方式1、方式2,方式2低八位装载计数值,高8位装载自动重装载值
工作模式选择位C/T
    C/T为1时计数器模式,以外部引脚3.4/3.5上输入的脉冲为输入信号,C/T为0时定时器模式,以晶振频率为计数信号
门控位GATE
    GATE为0时,仅由TR0、TR1来开启定时器T0、T1,GATE为1时,外部中断引脚为高电平时才能够通过TR0、TR1开启定时器T0、T1
(2)TCON控制寄存器
控制寄存器TCON
位4(TR0)为定时器T0启动控制位,位5(TF0)为定时器T0定时时间溢出标志位
(3)IE中断允许寄存器
中断允许寄存器
位1(ET0)定时器T0中断允许位,位7(EA)总中断允许位
2、工作方式框图
(1)方式1
方式1
开启定时器后开始计数,计数到最大值2^16=65535时,下一个脉冲产生定时器中断,TF1位置1,同时从0开始下一次计数
(2)方式2
方式2
开启定时器后TLx开始计数,计数到最大值2^8=255时,下一个脉冲产生定时器中断,TF1位置1,同时将THx的值装载到TLx进行下一次计数
3、时钟时间介绍
(1)振荡周期:晶振周期
(2)状态周期(S):两个振荡周期
(3)机器周期:12个振荡周期
(4)指令周期:执行1条指令使用的时间周期
TH、TL初值设置公式(1ms为例):
TH:(65535-1000)/256
TL:(65535-1000)%256

三、代码示例

#include <reg51.h>sbit led = P1^0;void tim0Init(void);int main()
{tim0Init();while(1){}
}//初始化TIM0
void tim0Init(void)
{TMOD |= 0x01; // 选择定时器0,设置定时器模式,选择模式1 TH0 = (65535-1000)/256;TL0 = (65535-1000)%256; // 设置定时时间ET0=1; //开启定时器0中断EA=1; // 打开总中断TR0=1;//开启定时器0
}//定时器中断函数
void tim0Handler(void) interrupt 1
{static int cnt = 0;cnt++;TH0 = (65535-1000)/256;TL0 = (65535-1000)%256; // 重新设置定时时间if(cnt==1000) //1s计时{cnt=0;led=!led;}
}

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

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

相关文章

【按键精灵】#1找图、找色、移动和点击

关键字&#xff1a; 找图、找色、移动和点击 找图&#xff1a; 抓抓截图&#xff0c;添加到附件 FindPic 0,0,1024,768,"Attachment:\Xmind.bmp",0.9,intX,intYIf intX > 0 And intY > 0 Then TracePrint "找到了" //找到打印Else TracePri…

Python | Leetcode Python题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; class Solution:def shortestPalindrome(self, s: str) -> str:n len(s)fail [-1] * nfor i in range(1, n):j fail[i - 1]while j ! -1 and s[j 1] ! s[i]:j fail[j]if s[j 1] s[i]:fail[i] j 1best -1for i in range(n - 1,…

宠物商城系统7000字文档20页ppt java项目javaweb项目ssm项目jsp项目java课程设计java毕业设计

文章目录 宠物商城系统一、项目演示二、项目介绍三、7000字项目文档四、20页ppt五、部分功能截图六、部分代码展示七、底部获取项目源码带7000字文档和20页ppt&#xff08;9.9&#xffe5;带走&#xff09; 宠物商城系统 一、项目演示 宠物商店 二、项目介绍 语言: Java 数据…

Echarts折线图

实现效果&#xff1a; 代码&#xff1a; <template><div class"echarts"><div class"select-box"><div v-for"(item,index) in trendList":key"index":class"[period item.id?active:,item]"click&…

PyMuPDF 操作手册 - 08 API - Document属性方法和简短说明

文章目录 https://pymupdf.readthedocs.io/en/latest/document.html#Document 方法/属性简短描述Document.add_layer()仅限 PDF:进行新的可选内容配置Document.add_ocg()仅限 PDF:添加新的可选内容组Document.authenticate()访问加密文档Document.bake()仅限 PDF:将…

Spring Boot集成geode快速入门Demo

1.什么是geode&#xff1f; Apache Geode 是一个数据管理平台&#xff0c;可在广泛分布的云架构中提供对数据密集型应用程序的实时、一致的访问。Geode 跨多个进程汇集内存、CPU、网络资源和可选的本地磁盘&#xff0c;以管理应用程序对象和行为。它使用动态复制和数据分区技术…

【C++】类和对象(中)--上篇

个人主页~ 类和对象上 类和对象 一、类的六个默认成员函数二、构造函数1、构造函数基本概念2、构造函数的特性 三、析构函数1、析构函数的概念2、特性 四、拷贝构造函数1、拷贝构造函数的概念2、特征 一、类的六个默认成员函数 如果有个类中什么成员都没有&#xff0c;那么被称…

数据库安装

1.选择最下面自定义安装 2.选择x64 3.next 4.完成后next 5.next 6.选择如图&#xff0c;next 7.如图 8.输入密码 9.如图 10.如图 11.安装 12.完成 13.控制面板选择系统和安全 14.选择系统 15.高级系统设置 16.环境变量 17.双击打开path 18.新建 19.输入MySQLbin文件夹路径 20.管…

firewalld(4) Rich Rule

简介 前文介绍了firewall基本原理&#xff0c;基础的命令使用、保存、以及zone的配置&#xff0c;前面文章我们在配置zone的时候有些复杂的条件&#xff0c;比如限速、日志记录等并不能直接在zone中进行配置。本篇文章主要介绍richlanguage&#xff0c;它能提供更加丰富的策略配…

分布式日志采集 Loki 配置及部署详细

分布式日志采集 Loki 配置及部署详细 Loki 部署模式Loki 读写分离部署配置Loki 配置大全 Loki 部署模式 &#xff08;1&#xff09;可扩展部署模式 Loki 的简单可扩展部署模式是最简单的部署方式、首选方式。可扩展到每天几TB的日志&#xff0c;但是如果超出这个范围&#xff…

Oracle 11.2.0.1升级到11.2.0.4并做rman备份异机恢复

下载好数据库升级包&#xff0c;想去Oracle官网下载的&#xff0c;提示没有授权 只能在csdn找付费的了&#xff0c;9块1个&#xff0c;下载了前2个。 注意&#xff0c;总共有7个包&#xff0c;如果Oracle是安装在linux服务器&#xff0c;且无图形界面管理的 只需要第一&#xf…

液压传动知识

绪论 工作原理 依靠运动者的液体的压力能传递动力液体在受调节、控制状态下工作&#xff0c;液压传动和控制同等重要液压传动以液体为工作介质 液压系统组成 动力元件&#xff1a;机械能转换为液体压力能。液压泵控制元件&#xff1a;对液体流动方向、压力、流量进行控制或…

uniapp零基础入门Vue3组合式API语法版本开发咸虾米壁纸项目实战

嗨&#xff0c;大家好&#xff0c;我是爱搞知识的咸虾米。 今天给大家带来的是零基础入门uniapp&#xff0c;课程采用的是最新的Vue3组合式API版本&#xff0c;22年发布的uniappVue2版本获得了官方推荐&#xff0c;有很多同学等着我这个vue3版本的那&#xff0c;如果没有学过vu…

部署nginx服务用于浏览服务器目录并实现账号密码认证登录

1、背景&#xff1a; 因公司业务需求&#xff0c;部署一套数据库备份中心服务&#xff0c;但是因为备份的数据库很多&#xff0c;有项目经理要求能经常去查看备份数据库情况及下载备份数据文件的需求。根据该需求&#xff0c;需要在备份数据库的服务器上部署一个nginx服务&…

CentOS 7.9 快速更换 阿里云源教程

CentOS 7.9 更换源教程 总结 # 下载 wget yum -y install wget # 备份 yum 源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 下载阿里云的yum源到 /etc/yum.repos.d/ # 此处以 CentOS 7 为例&#xff0c;如果是其它版本或者系统的话&#…

【AIGC自动化编程技巧笔记】一、起步

本专栏参考了CSDN高级讲师李宁的《AIGC自动化编程技巧》&#xff0c;是学习过程中记录的笔记。 一、ChatGPT的实质 尽管ChatGPT的功能非常强大&#xff0c;看似无所不能&#xff0c;但是ChatGPT毕竟只是基于很多算法和 数据并运行在强大GPU上的大量代码而已。ChatGPT甚至并不…

js替换对象里面的对象名称

data为数组&#xff0c;val为修改前的名称&#xff0c;name为修改后的名称 JSON.parse(JSON.stringify(data).replace(/val/g, name)) &#xff1b; 1.替换data里面的对象tenantInfoRespVO名称替换成tenantInfoUpdateReqVO 2.替换语句&#xff1a; 代码可复制 let tenantInf…

基于Spring Boot的先进时尚室内管理系统

1 项目介绍 1.1 研究背景 随着21世纪信息技术革命的到来&#xff0c;互联网的普及与发展对人类社会的演变产生了深远影响&#xff0c;跨越了物质生活的丰盈边界&#xff0c;更深层次地滋养了人类的精神文化生活。在过去&#xff0c;囿于地理位置和技术条件的限制&#xff0c;…

大模型落地过程中的现状和问题——RAG技术方案

大模型有幻觉怎么办&#xff1f;&#xff1f;大模型这么多&#xff0c;怎么选&#xff1f;需要多少硬件资源支持&#xff1f;大模型有幻觉怎么办&#xff1f;&#xff1f;新技术层出不穷&#xff0c;如何跟进&#xff1f;大家都在做长文本对我有什么影响么&#xff1f; 模型微…

第十六章 标准 IP 访问控制列表配置

实验目标 理解标准 IP 访问控制列表的原理及功能&#xff1b; 掌握编号的标准 IP 访问控制列表的配置方法&#xff1b; 实验背景 你是公司的网络管理员&#xff0c;公司的经理部、财务部们和销售部门分属于不同的 3 个网段&#xff0c;三部门之间用路由器进行信息传递&…