51单片机的步进电机控制系统(仿真+程序+报告+原理图)

2023-11-11

1、主要功能

该系统由AT89C51单片机+数码管模块+步进电机模块+按键模块构成。

可实现功能:
1、按键控制步进电机正反转、加减速、停止;
2、2个发光二极管显示正反转,1位7段LED数码管显示当前转速档位(共9个档位);
3、4个红色LED,指示电机的转速。

2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

在这里插入图片描述

3、程序代码

只是放上来了部分代码,仅供参考。

在这里插入图片描述

// 公众号:今天也不想打工
// 回复:“51步进电机”获取
//-----------------------------------------------------------------
// Timer0 初始化,模式1,允许中断,1ms定时
// Timer0 用于按键扫描
//-----------------------------------------------------------------
void T0_Init()
{
	TMOD &= 0xF0;
	TMOD |= 0x01;										//T0工作于模式1,16位定时器
	TH0 = (65536 - 1000) >> 8;			//1ms定时
	TL0 = (65536 - 1000) & 0xFF;
	ET0 = 1;												//允许T0中断
	TR0 = 1;												//启动T0
}

//-----------------------------------------------------------------
// Timer1 初始化,模式1,允许中断
// Timer1 用于改变步进电机转速
//-----------------------------------------------------------------
void T1_Init()
{
	TMOD &= 0x0F;
	TMOD |= 0x10;							//定时器1工作于模式1,16位定时器
	TH1 = Timer[speed][0];
	TL1 = Timer[speed][1];		//定时器1,定时用于步进电机转速控制
	ET1 = 1;									//允许T1中断
	PT1 = 1;									//定时器1优先级高
	TR1 = 0;									//关闭定时器1
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{	
	T0_Init();					//定时器0初始化
	T1_Init();					//定时器1初始化
	FWD_LED = 0;				//正转指示灯亮,默认初始化是正转
	
	delay_ms(500);			//延时500ms,待各个模块上电稳定
	EA = 1;							//开启中断
	while(1)
	{	
		KeyService();		//按键服务程序
	}
}	

4、原理图

在这里插入图片描述

5、报告

内含4.5k字,17页的相关报告一份,纯手打,内容一致

在这里插入图片描述

6、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)

在这里插入图片描述

7、资源获取

在这里插入图片描述

本项目包含的所有文件都可以在:今天也不想打工,回复“51步进电机”获取!
希望可以帮到你哈!

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

51单片机的步进电机控制系统(仿真+程序+报告+原理图) 的相关文章

  • 数据库中存储过程、函数、触发器的区别

    存储过程 函数 触发器的区别 比较项目 存储过程 函数 是否有返回值 可以有 也可以没有 必须有且只有一个 是否可以单独执行 可以 必须通过execute执行 SQL语句 DML或SELECT 可否调用 不可以 可以 且可以位于FROM关键
  • MySQL导入frm文件

    前几天我心爱的Windows Server 2003系统忽然崩溃里面装的东西全完了 还好我是装双系统的 还能有个系统用用 在恢复过程中试了很多办法都不行哦 后来去百度搜索一下 mysql导入frm文件 终于找到办法了 现在把这些记在这里 以
  • python获取文件后缀名及批量更新目录下文件后缀名的方法

    coding utf 8 import os 获取文件后缀名称 dict 存放文件后缀名 path r E test for dirpath dirnames filenames in os walk path for filename i
  • QT容器详解

    QString类 隐式共享 隐式数据共享机制去最大化资源有效利用和最小化复制克隆操作 隐式数据共享类当作为函数参数传递的时候 不仅安全而且效率很高 因为传递的时候只是传递了数据的指针 数据本身只当自己被修改的时候才会去复制 简称写时复制 数
  • vue引入vue-jsonp实现解决跨域(例:在项目里调用百度api/腾讯api获取定位)

    第一步 添加依赖npm install vue jsonp save 第二步 在vue cli项目main js中添加 import VueJsonp from vue jsonp 网上很多博客引用不加 会报错 Vue use VueJso

随机推荐

  • 基于STL的演讲流程管理系统

    完整项目代码已上传gitCode 地址 https gitcode net m0 46663240 stl 1 system pause 按任意键之后才会执行下一步 system cls 清屏 2 vector 清空函数 clear 3 s
  • 各类学习资料(网址)汇总~

    移动开发设计 英文 http davidbcalhoun com 2010 viewport metatag 伯乐论坛http blog jobbole com 这里面的东西感觉好有难度 保存起来再看 什么是响应式网站设计 http www
  • 区块链体系架构

    区块链技术经过多年的发展 它们在实现上各有不同 但是在整体架构上是大体上相同的 区块链平台整体上可以划分为网络层 共识层 数据层 智能合约层以及应用层五个部分 一 网络层 区块链平台通常选择完全分布式且可容忍单点故障的P2P协议作为网络传输
  • Mysql load data local命令详解

    1 load data local命令使用方法 不指定字段名 此写法数据文件内字段数必须跟数据库表一致 load data local infile C test txt into table tableName CHARACTER SET
  • python Elasticsearch update

    备注 如果更新没有成功 原因有几个 1 更改字段在实际中没有 2 多层结构要用用字典来更新 不能用car color方式更新 res es update index index doc type doc type id data id bo
  • 【linux】定时任务讲解

    文章目录 一 在某时刻只执行一次 at 1 设置定时任务 2 查看和删除定时任务 二 周期性执行任务 cron 1 启动crond进程 2 编辑定时任务 3 查看和删除 4 用户权限 4 1 黑名单 4 2指定用户 三 etc cronta
  • Head First Design Mode(5)-工厂模式

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 工厂模式 烘烤OO的精华 烘烤某些松耦合的OO设计 除了使用new操作符之外 还有更多制造对象的方法 本章我们将了解到实例化的这个活动不应该总是公开的进行 认识到初始
  • 按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。

    引用 软件秘笈 设计模式那点事 书籍 按照目的来分 设计模式可以分为创建型模式 结构型模式和行为型模式 创建型模式用来处理对象的创建过程 结构型模式用来处理类或者对象的组合 行为型模式用来对类或对象怎样交互和怎样分配职责进行描述 创建型模式
  • redis集群主流架构方案分析

    阿伊土鳖小码农 2017 02 10 09 29 Redis在互联网大数据平台有着广泛的应用 主要被用来缓存热点数据 避免海量请求压垮数据库 同时可以提升服务节点的响应速度和并发量 随着数据量的增多 由于redis是占用单台物理机或虚机的内
  • 【vue3+ts+vant】上传图片

    1 使用 van upload 组件 进行样式和功能配置 组件基础结构 配置文字和图标 配置最多数量和最大体积 支持双向数据绑定 支持选择图片后触发函数 支持点击删除事件函数 基础结构
  • STM32学习(一)-- stm32简介

    目录 前言 一 STM32简介 1 STM32 是什么 2 STM32 应用领域 3 STM32 优势 二 ARM简介 三 STM32芯片 1 芯片命名规则 2 型号分类及缩写 四 STM32F103C8T6 1 STM32F103C8T6
  • 机器学习:均值漂移(Mean Shift)详细解释

    1 均值漂移的基本概念 Mean Shift算法和k means相似 都是一个迭代的过程 即先算出当前点的偏移均值 将该点移动到该偏移均值 以此为新的起始点 继续移动 直到满足最终的条件 1 设想在一个有N个样本点的特征空间 初始确定一个中
  • LL(1)文法解析

    一 问题描述 给定上下文无关文法 对其进行解析 得出first集和follow集 在有能力的情况下 可以求出LL 1 分析表 二 算法设计 本程序主要分成三块内容 第一是文法的读入解析 第二是first集的求解 第三为follow集的求解
  • 蜣螂优化算法(DBO)优化VMD参数,最小包络熵、样本熵、信息熵、排列熵(适应度函数可自行选择,一键修改)包含MATLAB源代码

    蜣螂优化算法是华大学沈波教授团队 继麻雀搜索算法 Sparrow Search Algorithm SSA 之后 于2022年11月27日又提出的一种全新的群体智能优化算法 已有很多学者将算法用于实际工程问题中 今天咱们用蜣螂优化算法优化一
  • 七种实现web实时消息推送的方案!

    什么是消息推送 push 短轮询 长轮询 iframe流 SSE 我的方式 MQTT Websocket 自定义推送 Github地址 我有一个朋友 做了一个小破站 现在要实现一个站内信web消息推送的功能 对 就是下图这个小红点 一个很常
  • Python九九口诀表

    九九口诀1 py for i in range 1 10 for j in range 1 i 1 k j i print format j i k end t print n 九九口诀2 py for i in range 1 10 fo
  • 利用OpenSSL实现非阻塞通讯C++代码

    可以转载 转载请注明出处 谢谢 关于OpenSSL的原理以及OpenSSL如何安装 使用 测试demo请参看我之前的两篇博文 这篇博文主要实现了如何在win64下基于VS2012实现OpenSSL的非阻塞通讯 参考了以下几篇博文的内容 表示
  • gcov lcov, 部分代码无法生成 gcda 的原因解决

    参考http blog csdn net lostaway article details 40948841 配置 项目有多个module 组成 一部分有gcda 生成 一部分没有 原因是这部分module 在循环处理 永远不退出 使用 k
  • ResNet系列及其变体(六)—DarkNet53

    本篇主要介绍DarkNet53 其他ResNet系列及其变体介绍见如下blog ResNet系列及其变体目录 DarkNet53 YOLOv3 An Incremental Improvement Darknet53是经典的一个深层网络 结
  • 51单片机的步进电机控制系统(仿真+程序+报告+原理图)

    1 主要功能 该系统由AT89C51单片机 数码管模块 步进电机模块 按键模块构成 可实现功能 1 按键控制步进电机正反转 加减速 停止 2 2个发光二极管显示正反转 1位7段LED数码管显示当前转速档位 共9个档位 3 4个红色LED 指