STC89C52学习笔记(十一)

news2025/6/9 10:33:14

STC89C52学习笔记(十一

综述:本文讲述了直流电机以及PWM调速。

一、直流电机

1、特点

(1)直流电机能将电能转化位机械能。

(2)直流电机有两个电极,电极正接时,电机正转;电极反接时,电机反转。

(3)电机的功率比较大,不可以直接接在单片机的IO口上,需要在IO口和电机之间接驱动电路。

2、常见的两种驱动电路

(1)直接驱动电路:电机只能固定一个方向转动。

①三极管直接驱动

电路原理:如果IN输入低电平,三极管导通,电流从电源流向三极管流向电机。当IN输入高电平时,三极管截止,电流不导通,而由于电机是一个感性元件,电流不能突变,于是,电机会产生一个极大的电压,这时,电机和三极管产生对抗:当电机的感性很大时,三极管击穿或者IO击穿,对电路的稳定性和安全性造成影响。所以这里必须要有二极管,做续流二极管的作用,可以在三极管断开时,和电机形成回路,使电机的电流流向二极管,逐渐消耗电流,达到保护电路的作用。

(拓展:如果电路中有电感元件,由于电流不能突变,那么可能会产生一个高于电源的电压,产生巨大的危险。)

②ULN2003驱动电路

ULN2003驱动电路也是只能使电机往一个方向转动的电路。由于ULN2003内部相当于有达林顿管,也能够达到保护电路的作用,左移可以直接在芯片外部接电机(Vcc接电机正极,OUT1接电机负极),当P10为高电平时,OUT1输出为低电平,电机转动。

(2)H桥驱动电路:电机可以向两个方向转动。

IN1和IN4导通,IN2和IN3断开时,电机正转;IN2和IN3导通,IN1和IN4断开时,电机反转。这里由于电机既能正转,又能反转,所以不需要加续流二极管,也能具有很强的耐压性。

二、PWM

1、PWM调速原理

通过控制开关断开闭合来控制电机速度(脉冲宽度调制)。由于PWM在开关断开时不会立马停止,所以,当单片机快速断开开关,再打开开关时,电机还是转动的,而且,电机会以一个比一直闭合开关小的速度在转动。当电机断开的时间占比越大时,速度就会越小,因此,可以通过控制开关断开闭合时间来控制电机的速度。(类似于开关电源的原理,开关电源是控制开关断开闭合时间来控制输出电压。)

注意:需要在惯性系统里!

2、PWM相关参数

Ts是周期,Ton是高电平时间,Toff是低电平时间。频率f=1/Ts,占空比=Ton/Ts,精度=占空比变化布距(一般会保证调制时间一样的情况下来调整占空比,不同也行)

三、代码

1、LED不同亮度

(1)直接给LED赋值来实现
While(1)

{

  LED=0;

  LED=1;

  LED=1;

  LED=1;

  LED=1;

  LED=1;

  LED=1;


}
(2)利用延时函数来实现
While(1)

{

  LED=0;

  Delay(5);

  LED=0;

  Delay(95);

}
(3)利用定时器来实现

思路:利用定时器和计数器来实现计数,再通过计数的值和比较值相比来实现置1还是置0,实现LED占空比,最终实现改变比较值的大小就能控制LED亮度。

void Timer0 Routine (interrupt 1
{
  TL0=0x9C;
  TH0=0xFF;
  Counter++;
  Counter%=100;
  if (Counter<Compare)
  {
    LED=0
  }
  else
  {
    LED=1;
  }
}

2、LED呼吸灯

(1)在while里运用for循环和延时函数

思路:

①使LED亮一小段时间,灭一小段时间,使LED达到一种亮度;

②延长①状态相应的时间,呈现维持LED亮度的现象;

③慢慢增加LED高电平的时间,呈现LED慢慢变亮的现象;

④再慢慢减少LED高电平的时间,呈现LED慢慢变暗的现象;

⑤循环增加LED高电平的时间与减少LED高电平的时间,呈现LED慢慢变暗后又慢慢变亮的,达到一种呼吸灯的效果。

while(1)
	{
		for(Time=0;Time<100;Time++)		
		{
			for(i=0;i<20;i++)			
			{
				LED=0;					
				Delay(Time);			
				LED=1;					
				Delay(100-Time);		
			}
		}
		for(Time=100;Time>0;Time--)		
		{
			for(i=0;i<20;i++)			
			{
				LED=0;					
				Delay(Time);			
				LED=1;					
				Delay(100-Time);		
			}
		}
	}
}

(2)利用定时器

由于(1)需要不断进行for循环和Delay,占用太多CPU资源,于是可以利用定时器来实现减少CPU资源浪费。


参考视频:51单片机学习.视频

侵权联系删除!

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

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

相关文章

Stable Diffusion文生图技术详解:从零基础到掌握CLIP模型、Unet训练和采样器迭代

文章目录 概要Stable Diffusion 底层结构与原理文本编码器&#xff08;Text Encoder&#xff09;图片生成器&#xff08;Image Generator&#xff09; 那扩散过程发生了什么&#xff1f;stable diffusion 总体架构主要模块分析Unet 网络采样器迭代CLIP 模型 小结 概要 Stable …

WebLogic-XMLDecoder(CVE-2017-10271)反序列化漏洞分析及复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

C++string类(个人笔记)

string类 1.认识string的接口以及熟练使用常用接口1.1string类对象的常见构造1.2string类对象的容量操作1.3string类对象的访问及遍历操作1.4string类对象的修改操作 2.vs 和g下string结构的说明3.string类运用的笔试题4.string类的模拟实现 1.认识string的接口以及熟练使用常用…

NPM 命令备忘单

NPM 简介 Node Package Manager (NPM) 是 Node.js 环境中不可或缺的命令行工具&#xff0c;充当包管理器来安装、更新和管理 Node.js 应用程序的库、包和模块。对于每个 Node.js 开发人员来说&#xff0c;无论他们的经验水平如何&#xff0c;它都是一个关键工具。 NPM 的主要…

Day19-【Java SE进阶】网络编程

一、网络编程 1.概述 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。java.net,*包下提供了网络编程的解决方案! 基本的通信架构 基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)。 网络通信的…

FourCastNet 论文解析

气象基础模型/气象大模型论文速递 论文链接基于arXiv Feb. 22, 2022版本阅读 几乎是第一篇气象大模型的工作&#xff0c;同时也是为数不多的对precipitation进行预测的模型。 文章目录 PerformanceStructureFourier transformToken mixing TrainingPrecipitation Model Ensembl…

Android开发:Camera2+MediaRecorder录制视频后上传到阿里云VOD

文章目录 版权声明前言1.Camera1和Camera2的区别2.为什么选择Camera2&#xff1f; 一、应用Camera2MediaPlayer实现拍摄功能引入所需权限构建UI界面的XMLActivity中的代码部分 二、在上述界面录制结束后点击跳转新的界面进行视频播放构建播放界面部分的XMLActivity的代码上述代…

C++如何排查并发编程死锁问题?

C如何排查并发编程死锁问题&#xff1f; 最近在Apache arrow里面写一个支持并行的算子&#xff1a;nested loop join&#xff0c;然后既然涉及到并行&#xff0c;这里就会遇到大家常说的死锁问题&#xff0c;假设你碰到了死锁问题&#xff0c;如何调试与定位呢&#xff1f; 那这…

C程序的编译

经过预处理后的源文件,退去一切包装,注释被删除,各种预处理命令也基本上被处理掉,剩下的就是原汁原味的C代码了。接下来的第二步,就开始进入编译阶段。编译阶段主要分两步:第一步,编译器调用一系列解析工具,去分析这些C代码,将C源文件编译为汇编文件;第二步,通过汇编…

科软24炸穿了,25还能冲吗?

25考研&#xff0c;科软必然保持大热 不是吧兄弟&#xff0c;明眼人都能看出来&#xff0c;科软以后不会出现大冷的局面了&#xff0c;除非考计算机的人减少&#xff0c;因为科软简直是叠满了buff&#xff0c;首先科软的专业课是22408&#xff0c;考的是数学二&#xff0c;这就…

一、接口自动化之pytest 运行参数

1、在跟目录下创建一个配置项pytest.ini [pytest] testpaths./testcases markersp0:高于优先级test:测试环境pro:生成环境2、打标签 3、运行命名pytest -m "p0"

暴雨孙辉:做好服务器,但更要辟出技术落地之道

稳扎稳打一直是暴雨的风格&#xff0c;这在被访者孙辉的身上尽显。作为暴雨&#xff08;武汉暴雨信息发展有限公司&#xff09;中国区销售及市场副总裁&#xff0c;在谈及公司的技术发展与市场推广走势之时&#xff0c;孙辉沉稳、敏锐且逻辑清晰。 因在服务器领域起步很早&…

MySQL前缀索引(3/16)

前缀索引 前缀索引&#xff1a;MySQL支持前缀索引&#xff0c;允许定义字符串的一部分作为索引。如果不指定前缀长度&#xff0c;索引将包含整个字符串。前缀索引可以节省空间&#xff0c;但可能会增加查询时的记录扫描次数&#xff08;因为会查询到多个前缀相同的数据&#x…

python数据可视化——笔记1

1、pyecharts模块 Pyecharts 是一个 Python 可视化库&#xff0c;绘制多种类型的图表&#xff0c;创建交互式和美观图表。 官方网站:https://pyecharts.org/#/zh-cn/ pyecharts画廊&#xff1a; https://gallery.pyecharts.org/#/README 安装pyechart包&#xff0c;在pych…

Docker入门指南:从基础概念到实践操

Docker简介 在编程的世界里&#xff0c;有一种名为Docker的神奇工具&#xff0c;它就像一个无形的魔术师&#xff0c;能够将复杂的开发环境和应用打包成一个个轻量级、独立的容器。这些容器犹如一艘艘小船&#xff0c;可以在任何地方轻松启动&#xff0c;而不需要担心环境的差…

阿里云优惠口令2024最新

2024年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

4G脚本开发网关助力城市智慧水务体系建设

智慧水务已经成为现代城市管理的重要组成部分。其中&#xff0c;4G脚本开发网关在智慧水务建设中扮演了关键角色&#xff0c;通过高速稳定的网络连接能力和强大的数据处理能力&#xff0c;实现了对水资源的全方位、精细化管理。 这种网关不仅具备稳定的4G通信能力&#xff0c;…

凡泰极客亮相2024 亚马逊云科技出海全球化论坛,为企业数字化出海赋能

随着「不出海&#xff0c;即出局」登上热搜榜单&#xff0c;企业出海已成燎原之势&#xff0c;3月29日&#xff0c;2024 亚马逊云科技出海全球化论坛在深圳成功举办&#xff0c;凡泰极客创始人梁启鸿受邀出席&#xff0c;并以 「App 2.0&#xff1a;以SuperApp构建智能数字生态…

2024年阿里云服务器优惠曝光:购买、续费、升级优惠都在这!

阿里云服务器租用价格表2024年最新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核…

Java基础(三)--常用工具类

文章目录 第三章、常用工具类一、Java异常1、什么是异常2、异常处理3、常见的异常类型4、throws5、throw6、自定义异常7、异常链 二、包装类1、包装类2、字符串与基本数据类型转换3、包装类的比较 三、String 类1、创建String对象的方法2、String的常用方法3、字符串的存储4、字…