51单片机对直流电机的控制

2023-05-16

占空比=周期内高电平持续的时间/整个周期
直流电机驱动芯片选择L293D
电机正转:

#include "reg51.h"
sbit IN0=P2^0;
sbit IN1=P2^1;
//使能
sbit E=P2^2;


void deal(){
	IN0=1;
	IN1=0;
	E=1;
	
}
void main(){
	while(1){
		deal();
	}
}

在这里插入图片描述

延迟函数实现PWM调速:

#include "reg51.h"
sbit IN0=P2^0;
sbit IN1=P2^1;
//使能
sbit E=P2^2;
void delay(unsigned int n){
	unsigned int i=0,j=0;
	for(i=0;i<n;i++){
		for(j=0;j<120;j++){
			
		}
	}
}


void deal(){
	IN0=0;
	IN1=1;
	delay(50);
	IN1=0;
	delay(50);
	E=1;
	
}
void main(){
	while(1){
		deal();
	}
}

在这里插入图片描述
高电平1/4 低电平3/4;pwm 196*1/4
在这里插入图片描述

定时器实现PWM调速:
最大速度96

#include "reg51.h"
sbit IN0=P2^0;
sbit IN1=P2^1;
//使能
sbit E=P2^2;

void inittimer(){
	TMOD=0x01;
	TH0=(65535-10000)/256;
	TL0=(65535-10000)%256;
	ET0=1;
	EA=1;
	TR0=1;
	IN1=0;
}

void deal(){
	IN0=0;
	E=1;
}

void timer_isr() interrupt 1{
	TH0=(65535-10000)/256;
	TL0=(65535-10000)%256;
	//每10秒取反
	IN1=~IN1;
	
}	
void main(){
	inittimer();
	while(1){
		deal();
	}
}

最大速度43

#include "reg51.h"
sbit IN0=P2^0;
sbit IN1=P2^1;
//使能
sbit E=P2^2;
unsigned int value[]={2000,8000};
unsigned int count=0;
void inittimer(){
	TMOD=0x01;
	TH0=(65535-8000)/256;
	TL0=(65535-8000)%256;
	ET0=1;
	EA=1;
	TR0=1;
	//8000低电平
	IN1=0;
}

void deal(){
	IN0=0;
	E=1;
}

void timer_isr() interrupt 1{
	TH0=(65535-value[count])/256;
	TL0=(65535-value[count])%256;
	IN1=~IN1;
	count++;
	if(count==2){
		count=0;
	}

}	
void main(){
	inittimer();
	while(1){
		deal();
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机对直流电机的控制 的相关文章

随机推荐

  • ssh链接远程服务器 及 远程图形化界面的本地显示

    文章目录 一 ssh链接远程服务器1 1 MobaXterm1 2 VSCode问题与解决 对比 二 远程图形化界面的本地显示2 1 MobaXterm2 2 VSCode2 3 总结 附录参考 一 ssh链接远程服务器 这个方法有很多 x
  • window子系统wsl2安装kali及桌面

    一 先升级wsl2 xff08 1 xff09 wsl1没有Linux的内核 xff0c 所以很多Linux版本的工具都无法在wsl1中运行 xff0c 比如 xff1a docker xff0c Linux版本的浏览器等等 所以需要升级为
  • 数组下标赋值和指针赋值效率探索

    使用数组下标赋值和指针赋值效率探索 span class token keyword int span span class token function main span span class token punctuation spa
  • Archlinux/Manjaro使用笔记-报错:一个或多个 PGP 签名无法校验!的解决方法

    Archlinux Manjaro使用笔记 报错 xff1a 一个或多个 PGP 签名无法校验 xff01 的解决方法 参考文章 xff1a xff08 1 xff09 Archlinux Manjaro使用笔记 报错 xff1a 一个或多
  • Hadoop生态圈

    Hadoop生态圈 1 什么是Hadoop xff1f Hadoop是由Apache基金会所开发的分布式系统架构 主要解决 xff0c 海量数据的存储和海量数据的分析计算问题广义上来说 xff0c Hadoop通常是指一个更加广泛的概念 H
  • 【解决方案】error: Microsoft Visual C++ 14.0 or greater is required.【保姆级教程】

    在给python虚拟环境安装某些第三方库时 xff0c 会碰到以下报错 error Microsoft Visual C 43 43 span class token number 14 0 span or greater is requi
  • Hadoop3.2.2完全分布式集群环境搭建(一)

    大数据学习之Hadoop3 2 2集群环境搭建 xff08 一 xff09 Hadoop3 2 2完全分布式集群环境搭建 xff08 二 xff09 Zookeeper入门之分布式集群的搭建 xff08 三 xff09 HBase分布式集群
  • picgo+github 图床的使用

    picgo 43 github图床的使用 PicGo这款工具 xff0c 可以轻易的将图片转换为链接 1 准备工作 下载picgo xff1a 在github新建一个仓库 xff0c 用来存放图片 2 然后进入github设置 xff1a
  • Zookeeper入门之分布式集群的搭建(二)

    Zookeeper入门之分布式集群的搭建 xff08 一 xff09 Hadoop3 2 2完全分布式集群环境搭建 xff08 二 xff09 Zookeeper入门之分布式集群的搭建 xff08 三 xff09 HBase分布式集群的搭建
  • HBase分布式集群的搭建(三)

    HBase分布式集群的搭建 xff08 一 xff09 Hadoop3 2 2完全分布式集群环境搭建 xff08 二 xff09 Zookeeper入门之分布式集群的搭建 xff08 三 xff09 HBase分布式集群的搭建 安装 准备工
  • springboot集成swagger3.0

    Swagger3 0 最新版使用 Swagger 最新版的配置步骤和旧版本是一样 xff0c 只是每个具体的配置项又略有不同 xff0c 具体步骤如下 1 添加依赖 span class token comment lt https mvn
  • Windows/IDEA 常用快捷键

    windows 搜索的快捷键 ctr 43 F 切换窗口 win 43 1 2 3 根据任务栏切换 win 43 tab 显示图标 alt 43 esc 切换到上一个 最小化当前窗口 ctr 43 ESC 最小化所有窗口 CTR 43 D
  • windows mysql8.0.26的安装

    mysql8 0 26的安装 1 下载 https dev mysql com downloads mysql 2 解压并在mysql中的bin目录下创建my ini配置文件 mysqld 设置3306端口 port 61 3306 设置m
  • Linux(Debian,Centos,Ubuntu等) gcc的安装

    Linux gcc的安装 xff08 一 xff09 准备工作 1 什么是gcc xff1f GNU编译器集合 xff08 GCC xff09 是一个开源的编译器和库集合 xff0c 支持C xff0c C 43 43 xff0c Obje
  • nodeJs开发app.js解析

    在 node js 中模块分为核心模块和文件模块两种 xff0c 核心模块是通过 require 39 xxxx 39 导入的 xff0c 文件模块是以 require 39 xxxx 39 或 require 39 xxxx 39 req
  • Linux 安装最新版Redis(超简单详细)

    Redis最新版的安装 可以从官网下载 xff0c 然后传输到你的GUN linux中 xff0c 也可像下面那样用wget命令下载 xff0c 下载完后安装步骤基本一样 xff08 一 xff09 安装 1 下载 span class t
  • git:OpenSSL SSL_read: Connection was reset, errno 10054

    方式一 xff1a 可能为网络不稳定 xff0c 连接超时导致的 xff0c 可再次尝试提交 span class token function git span push 方式二 xff1a 打开Git命令页面 xff0c 执行git命令
  • springcloud nacos config快速入门

    nacos config 1 为什么需要配置中心 xff1f 传统配置的方式已经暴露出了很多问题 xff0c 其他的诸如 xff1a 历史版本管理 xff0c 权限控制 xff0c 安全性等等问题 xff0c 是传统的配置文件无法解决的 x
  • 左移运算符和右移运算符的使用

    先简单介绍一下 xff0c 左移运算符和右移运算符的功能 xff1a 计算机中的数字是以二进制补码的形式存放的 xff0c 而左移和右移运算符就是将内存中的二进制补码数字向左或者右移动 左移的结果 xff1a 1 左移会让最高位溢出 xff
  • 51单片机对直流电机的控制

    占空比 61 周期内高电平持续的时间 整个周期 直流电机驱动芯片选择L293D 电机正转 xff1a span class token macro property span class token directive hash span