51单片机个人学习笔记14(直流电机驱动及PWM)

news2024/9/21 23:43:26

前言

本篇文章属于STC89C52单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。

[1-1] 课程简介_哔哩哔哩_bilibili

一、直流电机介绍

 二、电机驱动电路

IN口给低电平,三极管就导通,D1是续流二极管,可以释放电机停止时的感应电流,防止电机感应出来的高电压击穿三极管

H桥驱动就能实现电机的正反转,比如In1和In4使三极管导通,电机电流往右;In2和In3使三极管导通,电机电流就往左。

三、 PWM介绍

可以通过脉冲信号来调节电机的速度

四、 产生PWM的方法

五、实例(直流电机的驱动)

主要通过定时器来产生PWM来实现电机的调速

#include <REGX52.H>
#include "Key.h"
#include "Nixie.h"
#include "Delay.h"
#include "Timer0.h"

sbit Motor=P1^0;

unsigned char Counter,Compare,Speed,KeyNum;

void main()
{
	Timer0Init();
	while(1)
	{
		KeyNum=Key();
		if(KeyNum==1)
		{
			Speed++;
			Speed%=4;
			switch(Speed)
			{
				case 0:Compare=0;break;
				case 1:Compare=50;break;
				case 2:Compare=75;break;
				case 3:Compare=100;break;
			}
//			if(Speed==0){Compare=0;}
//			if(Speed==1){Compare=50;}
//			if(Speed==2){Compare=75;}
//			if(Speed==3){Compare=100;}
		}
		Nixie(1,Speed);
	}
}

//100us进行一次中断,所以周期是100*100us=10ms
void Timer0_Rountine() interrupt 1
{
	TH0=0xFF;   	    
	TL0=0xA4;		   
	Counter++;
	Counter%=100;
	if (Counter<Compare)
	{
		Motor=1;
	}
	else
	{
		Motor=0;
	}
}

 

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

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

相关文章

Elemnt UI筛选时间功能

html&#xff1a; <el-form-item label"数据筛选: " ><el-date-picker v-model"choose_time" type"datetimerange" size"small" change"chooseTime" style"width:100%;" value-format"yyyy-MM-dd …

逻辑推理之lora微调

逻辑推理微调 比赛介绍准备内容lora微调lora微调介绍lora优势代码内容 start_vllm相关介绍调用 运行主函数提交结果总结相应连接 比赛介绍 本比赛旨在测试参与者的逻辑推理和问题解决能力。参与者将面对一系列复杂的逻辑谜题&#xff0c;涵盖多个领域的推理挑战。 比赛的连接:…

内网穿透--ICMP隧道转发实验

实验背景 通过公司带有防火墙功能的路由器接入互联网&#xff0c;然后由于私网IP的缘故&#xff0c;公网无法直接访问内部web服务器主机。通过内网其它主机做代理&#xff0c;穿透访问内网web服务器主机边界路由器或防火墙做静态NAT映射访问内网服务器inux主机&#xff0c;且策…

C++分析AVL树

目录 AVL树介绍 AVL树平衡因子更新分析 AVL树插入时旋转与平衡因子更新 左单旋 右单旋 左右单旋 右左单旋 AVL旋转可行性 AVL树节点删除&#xff08;待补充&#xff09; AVL树分析 AVL树介绍 二叉搜索树在某些极端情况下可能会退化&#xff0c;为了解决这个问题&…

Redis学习[6] ——Redis缓存设计

八、Redis缓存设计 8.1 为什么Redis用作缓存&#xff1f; 一般来说&#xff0c;数据库的数据都是落在磁盘上的&#xff0c;会导致读写速度很慢。如果用户的请求量非常大&#xff0c;数据库很容易崩溃。由于Redis的数据保存在内存中&#xff0c;读写速度很快&#xff0c;所以R…

SQL注入 报错注入+附加拓展知识,一篇文章带你轻松入门

第5关--------------------------------------------> 前端直接不会显示账号密码的打印&#xff1b;但是在接收前端的数据的那部分后端那里&#xff0c;会看前端传递过来的值是否正确&#xff0c;如果不正确&#xff0c;后端接收值那里就会当MySQL语句执行错误&#xff0c;…

RK3568笔记五十一:W25Q64测试(spi 标准接口 )

若该文为原创文章&#xff0c;转载请注明原文出处。 前面有测试过W25Q64&#xff0c;但那是自己编写的驱动&#xff0c;现在使用内核自带的驱动&#xff0c;只需要通过SPI标准接口&#xff0c;编写应用程序即可以读写W25Q64. 一、硬件原理图 SPI 引脚 功能 MOSI GPIO3_C1 …

【java基础】徒手写Hello, World!程序

文章目录 前提&#xff1a;java环境变量配置使用vscode编写helloworld解析 前提&#xff1a;java环境变量配置 https://blog.csdn.net/xzzteach/article/details/140869188 使用vscode编写helloworld code .为什么用code看下图 报错了&#xff01;&#xff01;&#xff01;&…

【MATLAB】Matlab安装包及验证生成器

通过百度网盘分享的文件&#xff1a;Matlab 链接: https://pan.baidu.com/s/1PF8iP31WFJUYRF7PLyiX2A?pwdxkds 提取码&#xff1a;xkds

简单搭建dns服务器

目录 一.安装服务 二.编写子配置文件 三.编写主配置文件 四.编写文件 五.测试 一.安装服务 [rootnode1 ~]# dnf install bind -y 二.编写子配置文件 [rootnode1 ~]# vim /etc/named.rfc1912.zones 三.编写主配置文件 [rootnode1 ~]# vim /etc/named.conf 四.编写文件 …

一款创新的物联网综合业务支撑平台,提供资费、客户、进销存、合同、订单、续费、充值、账单等功能(附源码)

前言 在当今快速发展的物联网时代&#xff0c;企业和开发者面临着很大的挑战和机遇。现有软件在处理物联网设备和数据管理方面常常存在一些痛点&#xff0c;如设备管理分散、数据同步不及时、用户交互体验不佳等。这些问题不仅影响了物联网解决方案的效率&#xff0c;也限制了…

docker部署可执行的jar

1.将项目打包&#xff0c;上传到服务器的指定目录 2.在该目录下创建Dockerfile文件 3.Dockerfile写入如下指令 # 基于哪个镜像 FROM java:8 # 拷贝文件到容器&#xff0c;也可以直接写成ADD xxxxx.jar /app.jar ADD springboot-file-0.0.1.jar file.jar RUN bash -c touch /…

GuLi商城-商品服务-API-新增商品-调试会员等级相关接口

在网关服务中配置路由: 代码: nacos这些服务都要启动: 如果有不是一个命名空间中的,要改成同一个命名空间中 启动商品product服务遇到循环依赖问题,解决:

AVL树在插入时保持平衡的旋转过程

目录 AVL树节点的定义 AVL树的插入 AVL树的旋转 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找元素相当于在顺序表中搜索元素&#xff0c;效率低下。于是在这两位俄罗斯的数学家G.M.Adelson-Velskii 和E.M.…

《LeetCode热题100》---<6.①矩阵四道(二维数组)>

本篇博客讲解LeetCode热题100道矩阵篇中的四道题 第一道&#xff1a;矩阵置零&#xff08;中等&#xff09; 第二道&#xff1a;螺旋矩阵&#xff08;中等&#xff09; 第一道&#xff1a;矩阵置零&#xff08;中等&#xff09; 方法一&#xff1a;使用标记数组 class Solutio…

C语言指针(1)

目录 一、内存和地址 1、生活中的例子 2、内存的关系 二、指针变量和地址 1、&符号&#xff0c;%p占位符 2、一个简单的指针代码。 3、理解指针 4、解引用操作符 5、指针变量的大小。 三、指针变量类型的意义 1、指针解引用的作用 2、指针指针 3、指针-指针 4…

Leetcode3224. 使差值相等的最少数组改动次数

Every day a Leetcode 题目来源&#xff1a;3224. 使差值相等的最少数组改动次数 解法1&#xff1a; 想一想&#xff0c;什么情况下答案是 0&#xff1f;什么情况下答案是 1&#xff1f; 如果答案是 0&#xff0c;意味着所有 ∣nums[i]−nums[n−1−i]∣ 都等于同一个数 X。…

【JVM内存】系统性排查JVM内存问题的思路

【JVM内存】系统性排查JVM内存问题的思路 背景 前言 遇到过几次JVM堆外内存泄露的问题&#xff0c;每次问题的排查、修复都耗费了不少时间&#xff0c;问题持续几月、甚至一两年。我们将这些排查的思路梳理成一套系统的方法&#xff0c;希望能给对JVM内存分布、内存泄露问题…

有序矩阵中第K小的元素(LeetCode)

题目 给你一个 n x n 矩阵 matrix &#xff0c;其中每行和每列元素均按升序排序&#xff0c;找到矩阵中第 k 小的元素。 请注意&#xff0c;它是 排序后 的第 k 小元素&#xff0c;而不是第 k 个 不同 的元素。 你必须找到一个内存复杂度优于 的解决方案。 解题 from queue i…

DFS之搜索顺序与剪枝

搜索顺序&#xff1a; 1.https://www.acwing.com/problem/content/1119/ 首先&#xff0c;我们考虑一个贪心&#xff1a; 假如说A的倒数K个字符恰好与B的前K个字符重合&#xff0c;那么我们就连接。 也就是说我们一旦匹配就直接相连而不是继续找更长的重合的一段子串。 因…