蓝桥杯单片机快速开发笔记——定时器

news2024/9/25 11:21:07

一、基本原理:

  1. 定时器的作用

    • 定时器是一种用于产生精确时间延时的模块,可以在程序中用来进行时间控制、计时等操作。
  2. 定时器的工作原理

    • 51单片机的定时器是通过内部的计数器来实现的,计数器每隔一个固定的时间周期自动加1,当计数器的值达到设定的目标值时,会触发定时器中断。
  3. 定时器的控制寄存器

    • 在51单片机中,定时器的工作通过控制寄存器来实现,包括定时器的工作模式、计数器的初始值、中断使能等。

二、应用:

  1. 延时函数

    • 利用定时器可以实现精确的延时函数,用于控制程序中的时间间隔。
  2. 定时中断

    • 可以利用定时器中断来定时执行某些任务,例如定时采集传感器数据、定时发送数据等。
  3. PWM波形生成

    • 定时器可以用来生成PWM波形,用于控制电机速度、LED亮度等。
  4. 计时功能

    • 可以利用定时器来实现计时功能,例如秒表、计时器等。

三、寄存器

四、思维导图

五、示例代码

//定时器TO初始化
void Init_Timer0()
{
	//定时器计数器初值设置:50ms
	TH0 = (0 - 50000) / 256;
	TH0 = (0 - 50000) % 256;
	TMOD = 0x01;       //T0的定时模式1:16位不可重装模式
	ET0 = 1;           //使能定时器0
	EA = 1;            //打开总中断
	TR0 = 1;           //启动定时器0
}

//定时器T0的中断服务函数
void Service_Timer0() interrupt 1
{
	
}

       初始化定时器T0,并设置了定时器T0的中断服务函数框架,可以根据实际需求在中断服务函数中添加具体的处理逻辑。

       

  1. void Init_Timer0():定义了一个函数Init_Timer0(),用于初始化定时器T0。

  2. TH0 = (0 - 50000) / 256;:设置定时器计数器的高8位,计算公式为(0 - 计数值) / 256。这里设置了定时器初值为50000,对应50ms的定时。

  3. TH0 = (0 - 50000) % 256;:设置定时器计数器的低8位,计算公式为(0 - 计数值) % 256。

  4. TMOD = 0x01;:设置定时器T0的工作模式为定时模式1,即16位定时器模式,不可重装模式。

  5. ET0 = 1;:使能定时器T0的中断功能,允许定时器T0产生中断。

  6. EA = 1;:打开总中断,允许中断嵌套。

  7. TR0 = 1;:启动定时器T0,定时器开始工作。

  8. void Service_Timer0() interrupt 1:定义了一个中断服务函数Service_Timer0(),用于处理定时器T0的中断。interrupt 1表示该中断函数对应定时器T0的中断。

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

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

相关文章

windows 安装 gitlab-runner CICD

点击搜索图标 手动输入PowerShell, 右键点击管理员权限打开, 一、安装 安装 gitlab runner 文档参考地址 1、下载exe执行文件 我这里是 win64 https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-amd64.exe 2、创建 gitla…

通过OceanBase 3.x中not in无法走hash连接的变化,来看OB优化器的发展

作者简介: 张瑞远,曾从事银行、证券数仓设计、开发、优化类工作,现主要从事电信级IT系统及数据库的规划设计、架构设计、运维实施、运维服务、故障处理、性能优化等工作。 持有Orale OCM,MySQL OCP及国产代表数据库认证。 获得的专业技能与认…

基于单片机的电子琴设计

基于单片机的电子琴设计 摘 要 读书、看电影、听音乐,都是最常见的丰富内心世界的良剂。听音乐,作为陶冶情操、提升境界最便捷的方式,正受到越来越多人们的欢迎。音乐可以很轻松的融入各种场合,给人们带来很轻松的氛围&#xff…

Pytorch从零开始实战21

Pytorch从零开始实战——Pix2Pix理论与实战 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——Pix2Pix理论与实战内容介绍数据集加载模型实现开始训练总结 内容介绍 Pix2Pix是一种用于用于图像翻译的通用框架,即图像到图像的转换。…

多人语聊房社交APP开发需要有哪些功能呢?

随着移动互联网的快速发展,社交APP已经成为人们日常生活中不可或缺的一部分。而随着语音社交的兴起,多人语聊房社交APP也逐渐受到了用户的青睐。在开发多人语聊房社交APP时,需要具备一系列功能,以满足用户的需求并提供良好的使用体…

大米自动化生产线的运作原理与科技创新

在当今科技飞速发展的时代,自动化生产线已经成为各个行业提高效率、降低成本的重要工具。而在粮食产业中,大米的自动化生产线更是以其独特的魅力,引领着粮食加工业的转型升级。星派将带您深入了解大米自动化生产线的运作原理,以及…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:XComponent)

可用于EGL/OpenGLES和媒体数据写入,并显示在XComponent组件。 说明: 该组件从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 构造参数type为"surface"时不支持。 从API version …

点云配准论文阅读1-Research on Three-Dimensional Point Cloud Registration Algorithm

Research on Three-Dimensional Point Cloud Registration Algorithm三维点云配准算法研究 Publisher: IEEE发行者 : IEEE Cite This引用此内容 PDF Yuqing Zhang; Shilong Sun; Jingjing Shang; Minghan Yang张玉清;孙世龙; 尚晶晶;杨明翰 Abstract: Accordi…

gin框架教程笔记

参考 官方中文文档:https://gin-gonic.com/zh-cn/docs/introduction/ 但是示例截图少 https://www.kancloud.cn/shuangdeyu/gin_book/949411 https://www.topgoer.com/gin%E6%A1%86%E6%9E%B6/ 这个网站不光有gin框架 适合阅读 吉米老师的 :https://www…

unity报错出现Asset database transaction committed twice!

错误描述: 运行时报错 Assertion failed on expression: ‘m_ErrorCode MDB_MAP_RESIZED || !HasAbortingErrors()’Asset database transaction committed twice!Assertion failed on expression: ‘errors MDB_SUCCESS || errors MDB_NOTFOUND’ 解决办法&…

如何看待Figure公司与Open AI合作的最新机器人成果Figure 01?

想象一下,如果有一天,你走进办公室,迎面而来的不是熟悉的同事,而是一位名叫Figure 01的机器人新朋友。它不仅可以帮你倒咖啡,还能跟你聊天,甚至在你加班时给予精神上的支持。听起来是不是像科幻小说的情节&…

webpack5零基础入门-7webpack修改输出文件目录

1.修改output中的path后打包 path: path.resolve(__dirname, dist/js),//所有文件的输出目录 可以看到dist目录下多了个js目录 但所有文件都在js目录中 我们想要的是根据不同的资源进行分类很显然这样不行 从这里可以看出path是所有文件的输出目录 2.修改output中的filename…

Airtest-Selenium升级兼容Selenium 4.0,给你全新体验!

一、前言 在上期更新推文中提到,我们Airtest-Selenium更新到了1.0.6版本,新增支持Selenium4.0的语法,那么我们来看一下Airtest-Selenium更新后有什么新的内容吧~ 二、selenium 4.0有什么新功能 selenium4.0最主要的还是定位元素方法的更新…

基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台

tar -xzf prometheus-2.7.0-rc.1.linux-amd64.tar.gzcd prometheus-2.7.0-rc.1.linux-amd64/./prometheus --config.fileprometheus.yml --web.listen-address:5555 Prometheus 默认监听端口号为 9090,为了不与系统上的其它进程监听端口冲突,我们在启动…

数据仓库为什么要分层建设?每一层的作用是什么?

在数字化时代,数据已成为企业最宝贵的资产之一。为了更好地管理和利用这些数据,许多企业都建立了数据仓库。然而,数据仓库并非简单的数据存储工具,而是一个复杂的数据处理和分析系统。其中,分层建设是数据仓库设计的重…

net/http 框架源码解读

一、Hello World 使用net/http编写一个简单的web服务器, 定义了一个UserHandler的处理函数,通过HandleFunc来将路由和handler进行绑定,最后通过ListenAndServe启动web服务,后面我将handler统称为视图函数 package mainimport "net/htt…

探索非监督学习:解决聚类问题

目录 1 非监督学习的概念1.1 非监督学习的定义1.2 非监督学习的重要性 2 聚类问题的定义和意义2.1 聚类问题的定义2.2 聚类问题的意义2.3 聚类问题在非监督学习中的地位 3 聚类算法介绍3.1 K均值聚类3.2 层次聚类3.3 密度聚类 4 聚类问题的评估4.1 内部评估指标4.2 外部评估指标…

提升数据分析效率,选择IBM SPSS Statistics专业统计分析软件

在当今信息爆炸的时代,数据已经成为决策的重要依据。对于研究人员、学者、企业管理者等群体来说,如何高效地进行数据分析并得出准确结论至关重要。而IBM SPSS Statistics作为一款专业统计分析软件,为用户提供了强大的工具和功能,助…

Unreal发布Android在刘海屏手机上不能全屏显示问题

Unreal 4.27发布Android在刘海屏手机上不能全屏显示问题 Android设置全屏刘海屏全屏设置4.27设置刘海屏在部分手机不能显示问题 Android设置全屏 AndroidManifest.xml文件配置 ...<activity android:name"com.epicgames.ue4.GameActivity" android:label"st…

Claude 3 Haiku,它不仅是Claude系列中最快的成员,还在速度的赛道上领先一大步。

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…