51单片机基础:定时器
1.定时器介绍
51单片机通常有两个定时器:定时器 0/1,好一点的可能有定时器3。
在介绍定时器之前我们先科普下几个知识:
2. 单片机定时器原理
1,工作方式寄存器 TMOD
》 C/T :定时/计数模式选择位。C/T =0 为定时模式;C/T =1 为计数模式。
2,控制寄存器 TCON

3.定时/计数器的工作方式
1:方式 0
2:方式 1
方式 1 的计数位数是 16 位,由 TL0 作为低 8 位,TH0 作为高 8 位,组成了 16 位加 1 计数器。其结构图如下所示:

计数初值与计数个数的关系为:X=2(16)-N。
3:方式 2(串口通信)
方式 2 为自动重装初值的 8 位计数方式。工作方式 2 特别适合于用作较 精确的脉冲信号发生器。其结构图如下所示:

4:方式 3
4.定时器配置
void Timer0Init()
{
TMOD|=0X01;//选择为定时器 0 模式,工作方式 1,仅用 TR0 打开启动。
TH0=0XFC; //给定时器赋初值,定时 1ms
TL0=0X18;
ET0=1;//打开定时器 0 中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
} 5.实例
1.通过定时器 0 中断控制 D1 指示灯间隔 1 秒闪烁。
代码如下:
#include <REGX51.H>
typedef unsigned char u8;
typedef unsigned int u16;sbit LED1=P2^0;void Timer0Init()
{TMOD|=0X01;//选择为定时器 0 模式,工作方式 1,仅用 TR0 打开启动。TH0=0XFC; //给定时器赋初值,定时 1msTL0=0X18;ET0=1;//打开定时器 0 中断允许EA=1;//打开总中断TR0=1;//打开定时器
}void main()
{Timer0Init();while(1){}}void Timer0() interrupt 1
{{static u16 i;TH0=0XFC; //给定时器赋初值,定时 1msTL0=0X18;i++;if(i==1000){i=0;LED1=~LED1;}}
} 2.按键控制LED流水灯模式
#include <REGX51.H>#include <INTRINS.H>
typedef unsigned char u8;
typedef unsigned int u16;u8 LEDMode;//延时子函数
void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}void Timer0Init()
{TMOD|=0X01;//选择为定时器 0 模式,工作方式 1,仅用 TR0 打开启动。TH0=0XFC; //给定时器赋初值,定时 1msTL0=0X18;ET0=1;//打开定时器 0 中断允许EA=1;//打开总中断TR0=1;//打开定时器
}void main()
{P2=0xfe;Timer0Init();while(1){if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);LEDMode++;if(LEDMode>=2)LEDMode=0;}}}
void Timer0() interrupt 1
{ static u16 i;TH0=0XFC; //给定时器赋初值,定时 1msTL0=0X18;i++;if(i==500){i=0;if(LEDMode==0){P2=_crol_(P2,1);}if(LEDMode==1){P2=_cror_(P2,1);}}
}
相关文章:
51单片机基础:定时器
1.定时器介绍 51单片机通常有两个定时器:定时器 0/1,好一点的可能有定时器3。 在介绍定时器之前我们先科普下几个知识: 1,CPU 时序的有关知识 ①振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或…...
高速接口PCB布局指南(五)高速差分信号布线(三)
高速接口PCB布局指南(五)高速差分信号布线(三) 1.表面贴装器件焊盘不连续性缓解2.信号线弯曲3.高速信号建议的 PCB 叠层设计4.ESD/EMI 注意事项5.ESD/EMI 布局规则 tips:资料主要来自网络,仅供学习使用。 …...
MySQL使用报错1045 - Access denied for user ‘root‘@‘localhost‘ (using password: YES)
问题描述 设备:MacBook Pro macOS Monterey 12.1 MySQL版本:8.0.27 arm-64 描述:在使用Navicat连接电脑本地的数据库时,发现连接不上了,报了个错误1045 - Access denied for user rootlocalhost (using password: YES)…...
UE4 C++创建摄像机摇臂和相机并且设置Transform
新建MyPawn C类 .h #include "GameFramework/SpringArmComponent.h" //SpringArm组件 #include "Camera/CameraComponent.h" //Camera组件class 工程名称_API AMyPawn : public APawn { //定义组件变量 public:UPROPERTY(VisibleAnywhere, BlueprintRead…...
<网络安全>《14 日志审计系统》
1 概念 日志审计系统是用于全面收集企业IT系统中常见的安全设备、网络设备、数据库、服务器、应用系统、主机等设备所产生的日志(包括运行、告警、操作、消息、状态等)并进行存储、监控、审计、分析、报警、响应和报告的系统。 日志审计系统是一种用于…...
嵌入式软件设计方式与方法
1、嵌入式软件与设计模式 思从深而行从简 软件开发,难的不是编写软件,而是编写功能正常的软件。软件工程化才能保证软件质量和项目进度,而设计模式使代码开发真正工程化,设计模式是软件工程的基石。 所谓设计模式就是对常见问题的…...
ELAdmin 前端启动
开发工具 官方指导的是使用WebStorm,但是本人后端开发一枚,最终还是继续使用了 idea,主打一个能用就行。 idea正式版激活方式: 访问这个查找可用链接:https://3.jetbra.in/进入任意一个能用的里面,顶部提…...
完全让ChatGPT写一个风格迁移的例子,不改动任何代码
⭐️ 前言 小编让ChatGPT写一个风格迁移的例子,注意注意,代码无任何改动,直接运行,输出结果。 额。。。。这不是风格转换后的结果图。 ⭐️ 风格迁移基本原理 风格迁移是一种计算机视觉领域的图像处理技术,它的目标…...
查看jar包编译的jdk版本
解压jar包 jar xf xxx.jar 查看对象 javap -v Myclassname javap -v KafkaProducer.class |grep version -C 3 J2SE 8.0 52(0x33 hex) J2SE 7.0 51(0x32 hex) J2SE 6.0 50 (0x32 hex) J2SE 5.0 49 (0x31 hex) JDK 1.4 48 (0x30 hex) JDK 1.3 47 (0x2F hex) JDK 1.2 46 …...
未来之梦:畅想人工智能操控手机的辉煌时代
引言: 在当今数字化快速发展的时代,人工智能技术正日益深入我们的生活。其中,手机作为人们日常生活不可或缺的一部分,其未来将如何受到人工智能技术的影响,引发了广泛的关注和研究。本文将深入探讨人工智能操控手机的…...
产品经理--分享在项目中产品与研发之间会遇到的问题 在面试这一岗位时,面试官常问的问题之一,且分享两大原则来回答面试官这一问题
目录 一.STAR原则 1.1 简介 1.2 如何使用 1.3 举例说明 二.PDCA原则 2.1 简介 2.2 如何使用 2.3 运用场景 2.4 举例说明 三.产品与研发的沟通痛点 3.1 沟通痛点的原因 3.2 分享案例 前言 本篇会详细阐明作为一个产品经理会在项目遇到的问题,如:产…...
node环境打包js,webpack和rollup两个打包工具打包,能支持vue
引言 项目中经常用到共用的js,这里就需要用到共用js打包,这篇文章讲解两种打包方式,webpack打包和rollup打包两种方式 1、webpack打包js 1.1 在根目录创建 webpack.config.js,配置如下 const path require(path); module.expo…...
图数据库 之 Neo4j - 图数据库基础(2)
图数据库是一种专门用于存储、管理和查询图数据的数据库。与传统的关系型数据库不同,图数据库以图的形式存储数据,其中节点表示实体,边表示实体之间的关系。这种图数据模型非常适合表示复杂的关系和连接。 图数据库的定义和特点 图数据库是一…...
20240202在Ubuntu20.04.6下配置环境变量之后让nvcc --version显示正常
20240202在Ubuntu20.04.6下配置环境变量之后让nvcc --version显示正常 2024/2/2 20:19 在Ubuntu20.04.6下编译whiper.cpp的显卡模式的时候,报告nvcc异常了! 百度:nvcc -v nvidia-cuda-toolkit rootrootrootroot-X99-Turbo:~/whisper.cpp$ WH…...
数字孪生网络攻防模拟与城市安全演练
在数字化浪潮的推动下,网络攻防模拟和城市安全演练成为维护社会稳定的不可或缺的环节。基于数字孪生技术我们能够在虚拟环境中进行高度真实的网络攻防模拟,为安全专业人员提供实战经验,从而提升应对网络威胁的能力。同时,在城市安…...
LeetCode、62.不同路径的数目(一)【简单,动态规划或递归】
文章目录 前言LeetCode、62.不同路径的数目(一)【简单,动态规划或递归】题目描述与分类思路思路1:动态规划思路2:递归实现简洁写法补充:2024.1.30 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、…...
re:从0开始的CSS学习之路 4. 长度单位
1. 长度单位 像素px:一个像素就是屏幕中一个不可分割的点。我们应用的屏幕实际上是由一个个的像素点构成的。 不同显示器的像素点大小也不同,在屏幕尺寸相同的情况下,像素越小,显示效果越清晰。 大部分浏览器默认字体大小是16px …...
golang开源定时任务调度框架
golang开源定时任务调度框架 Go语言中有很多开源的定时任务调度框架,以下几个是比较流行常用的: golang开源定时任务框架介绍 cron 一个基于Cron表达式的定时任务库,可以精确到秒级。它提供了简单易用的API来定义和管理定时任务ÿ…...
GridModel事件集合——yonBIP低代码
我们接着看表格相关的事件,用友的文档打不开,真的是天大的404,客观请看这个开发文档网址,找不到了,你说holy 不咯?http://tinper.org/mdf/(如果有哪位小伙伴知道这个地址是不是迁移了的话&#…...
苹果macbook电脑删除数据恢复该怎么做?Mac电脑误删文件的恢复方法
苹果电脑删除数据恢复该怎么做?Mac电脑误删文件的恢复方法 如何在Mac上恢复误删除的文件?在日常使用Mac电脑时,无论是工作还是娱乐,我们都会创建和处理大量的文件。然而,有时候可能会不小心删除一些重要的文件&#x…...
Linux串口通信终极指南:3步搞定CH341SER驱动安装,让Arduino开发不再卡壳
Linux串口通信终极指南:3步搞定CH341SER驱动安装,让Arduino开发不再卡壳 【免费下载链接】CH341SER CH341SER driver with fixed bug 项目地址: https://gitcode.com/gh_mirrors/ch/CH341SER 你是否曾经兴奋地拿起一块Arduino开发板,准…...
经营分析≠财务分析,经营分析必看的3条路径分析
每个月开经营分析会,我最怕看到什么?就是财务把利润表从头到尾念了一遍,收入多少、成本多少、费用多少,然后开始读PPT。念完就散会。问题解决了吗?没有。说实话,我第一次看这种汇报也觉得数据很全ÿ…...
多物流机器人任务调度与路径规划【附程序】
✨ 长期致力于物流机器人、任务调度、路径规划、沙猫群算法研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)栅格-拓扑双层地图建模与任务分配…...
Arm调试寄存器架构详解与应用实践
1. Arm调试寄存器架构概述在Armv8/v9处理器架构中,调试寄存器是实现硬件级调试功能的核心组件。这些寄存器通过外部调试接口(External Debug Interface)为开发人员提供了对处理器内部状态的访问和控制能力。调试寄存器主要分为两类࿱…...
压电定位平台建模与运动控制【附仿真】
✨ 长期致力于压电定位平台、磁滞非线性、反步控制、滑模控制、有限时间控制研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)Prandtl-Ishlinskii磁滞模…...
Windows Cleaner终极指南:5个技巧让C盘空间瞬间释放
Windows Cleaner终极指南:5个技巧让C盘空间瞬间释放 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系统设计的开源…...
如何反查竞品最近30天内新增的差评关键词,并优化Listing卖点?
很多亚马逊卖家做竞品分析,只盯价格、BSR、广告位、关键词排名,却很少认真看竞品最近30天新增的差评。其实,最新差评往往比老差评更有价值。老差评更多反映历史问题,可能来自旧批次、旧包装、旧版本;但最近30天新增差评…...
【Amazon Quick 桌面 AI 助手初体验】把重复造轮子的活交给 Quick 大显身手
🪪 本文作者:许业宝 ✍️ 作者信息: 🌞 VSTECS云解决方案架构师 | AWS APN Ambassador | 🪪 AWS Community Builder | 亚马逊云科技技能云博主 | UGL ⭐ 已获得 AWS 认证大满贯(13 个…...
LangForce方法:强化VLA模型语言依赖,提升分布外泛化能力并保留语言核心功能
LangForce方法:强化VLA模型语言依赖,提升分布外泛化能力并保留语言核心功能当前VLA模型常依赖视觉线索而非语言指令,在新场景下表现不佳。论文提出的LangForce方法,通过引入对数似然比损失,强化模型对语言的依赖&#…...
1.8.1 掌握Scala类与对象 - Scala类
本次实战通过两组对比鲜明的案例,带你快速入门Scala面向对象编程的核心。首先,通过创建User类,我们掌握了Scala普通类的定义方式,了解了如何使用private修饰符封装成员变量,以及如何通过new关键字实例化对象并调用其公…...
