【毕业设计】17-基于单片机的矿井提升机_步进电机控制装置设计(原理图+仿真+源代码+实物图+答辩论文+答辩PPT)
创始人
2024-03-02 16:34:39
0

typora-root-url: ./

【毕业设计】17-基于单片机的矿井提升机_步进电机控制装置设计(原理图+仿真+源代码+实物图+答辩论文+答辩PPT)

文章目录

    • typora-root-url: ./
  • 【毕业设计】17-基于单片机的矿井提升机_步进电机控制装置设计(原理图+仿真+源代码+实物图+答辩论文+答辩PPT)
    • 设计说明书
      • 摘要
      • 设计框架架构
      • 设计说明书及设计文件
      • 源码展示

设计说明书

摘要

本设计对系统的设计背景以及使用环境分析,确定系统的功能以及硬件设计框架。以AT89C51单片机作为系统的控制核心,主要包括主控模块、电机控制驱动模块、电源模块、按键模块组成、数码管显示模块。当系统开始工作时,通过按键来对系统实现加速、减速、正转、反转的控制。加速、减速需要主控模块启动内部的定时器调节运行占空比,控制电机的工作状态。当定时时间完成后,控制系统发出切换命令实现电机控制。在系统运行时,通过数码管显示系统的正反转、速度信息,方便操作人员熟知系统的工作方式。
资料链接
原理图工程文件
实物图
仿真模型工程文件
仿真截图
搭建视频
答辩论文低重复率文档,22233字
英文文献及翻译
答辩PPT
visio流程图

设计框架架构

前 言… 1

第一章 绪论… 2

第一节 矿井机研究背景… 2

第二节 国外矿井机发展… 3

第三节 国内矿机提升机的发展情况… 4

第四节 本文的主要研究内容… 4

第五节 本章小节… 5

第二章 矿井提升机装置方案设计… 6

第一节 系统设计功能分析… 6

第二节 主要元器件选型… 7

一、主控芯片选择… 7

二、电机选择… 7

三、显示器选择… 8

第三节 矿井提升机装置设计分析… 8

第四节 本章小结… 9

第三章 系统硬件设计… 10

第一节 单片机最小系统电路设计… 10

一、单片机介绍… 10

二、单片机复位电路… 11

三、晶振电路… 11

四、单片机最小系统电路原理图… 12

第二节 电源电路设计… 12

第三节 独立按键电路设计… 13

第四节 步进电机控制电路设计… 13

第五节 数码管显示电路设计… 15

第六节 系统总电路图… 15

第七节 本章小结… 16

第四章 系统软件设计… 17

第一节 Keil软件介绍… 17

第二节 系统软件总设计… 17

第三节 独立按键软件设计… 18

第四节 步进电机控制软件设计… 19

第五节 数码管显示软件设计… 20

第六节 本章小结… 21

第五章 矿井提升机装置系统仿真… 22

第一节 Proteus软件介绍… 22

第二节 系统仿真… 22

一、仿真电路连接… 22

二、功能仿真… 23

三、系统综合测试… 28

第三节 本章小结… 29

总 结… 30

致 谢… 31

参考文献… 32

附 录… 34

一、英文原文… 34

二、英文翻译… 37

三、源代码… 40

设计说明书及设计文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码展示

//数码管位 高位-----低位
//四个按键控制步进电机:正转,反转,加1,减1
//上电时电机启动,数码管上显示速度最小档1,加减档位均能通过数码管显示出来,电机采用单双八拍方式
//电机转速一共10档,通过按键调节转速 
//电机正转时最高位数码管显示0,反转时显示1  
#include
#define uchar unsigned char
#define uint unsigned int
#define led P0//数码管段选
#define haha P2
sbit s1 = P1^0;sbit s2 = P1^1;sbit s3 = P3^0;sbit s4 = P3^1;//按键定义,s1正转,s2反转,s3加1,s4减1
sbit wei3 = P2^3;sbit wei2 = P2^2;sbit wei1 = P2^1;sbit wei0 = P2^0;//数码管位选定义
sbit a = P2^7;sbit b = P2^6;sbit c = P2^5;sbit d = P2^4;//脉冲信号输入端定义uchar code tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳数码管驱动信号0---9,不显示
uchar code time_counter[10][2]={{0xda,0x1c},{0xde,0xe4},{0xe1,0xec},{0xe5,0xd4},{0xe9,0xbc},  //9.7 ----1ms{0xed,0xa4},{0xf1,0x8c},{0xf5,0x74},{0xf9,0x5c},{0xfc,0x18}};
uchar code qudong[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90};	 
uchar num1 = 0;//控制取励磁信号变量						  
uchar num2 = 8;
int jishu;//时间计算
#define Imax 14000    //此处为晶振为11.0592时的取值, 
#define Imin 8000    //如用其它频率的晶振时,
#define Inum1 1450    //要改变相应的取值。
#define Inum2 700 
#define Inum3 3000 
//解码变量
unsigned char Im[4]={0x00,0x00,0x00,0x00};//全局变量
uchar f;
unsigned long m,Tc;
unsigned char IrOK;char k=0;//加减档位控制,1为最小档
bit flag1 = 0,start=0,mode=0;//初始正转,正反转标志
uchar buf[4]={0,10,0,0};//数码管显示缓存,正转,不显示,不显示,显示0档位,高----低  
//================================定时器0/1初始化函数================================
void T0_T1_init()
{TMOD = 0x11;//定时器0/1均工作于方式1,16位计时方式TH0 =0;TL0 =0;//定时器0TH1 = time_counter[k-1][0];TL1 = time_counter[k-1][1];//定时器1,定时10ms用于步进电机转速控制TR0 = 0;TR1 = 1;ET0 = 1;IT1=1;//下降沿有效EX1=1;//外部中断1开ET1= 1;//开定时器中断EA = 1;//开总中断
}
//================================ms级延时函数=======================================
void delay1m(uint x)
{uint i,j;for(i=0;i

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...