0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机的步进电机控制系统设计

CHANBAEK 来源:单片机资料宝库 作者:醉生梦死haha 2023-12-06 16:39 次阅读

一、项目简介:

该项目利用51单片机实现了一个步进电机控制系统,可以实现步进电机的正反转、加减速、启动和停止,并通过LCD显示电机的工作状态。通过该系统,你可以控制步进电机启动、旋转的方向和速度。

图片

二、主要功能:

  1. 步进电机正反转:通过控制电机驱动器的输入信号,可以实现步进电机的正反转运动。
  2. 加减速控制:通过逐渐增加或减小步进电机的脉冲频率,可以实现电机的加速和减速运动。
  3. 启动和停止控制:通过控制步进电机的脉冲信号,可以启动和停止电机的旋转运动。
  4. LCD显示电机工作状态:通过连接LCD显示模块,可以实时显示电机的工作状态,包括方向、速度和状态等信息

三、硬件组成:

  1. 51单片机开发板:作为主控制器,负责接收用户输入并控制步进电机运动。
  2. 步进电机:用于驱动机械装置,实现旋转运动。
  3. 步进电机驱动器:用于接收51单片机的控制信号,并驱动步进电机进行运动。
  4. LCD显示模块:用于显示电机的工作状态信息。

元件清单:

元件型号数量
单片机AT89C511
晶振12MHZ1
电阻10k1
电容10uf1
电容30pf1
按钮7
驱动器ULN20031
步进电机4相5线1
显示器LCD16021
排阻10k1

四、软件设计:

  1. 硬件初始化:初始化51单片机和LCD显示模块。
  2. 用户输入处理:通过按键或其他输入方式接收用户的指令,包括方向、速度和操作等参数
  3. 控制信号生成:根据用户输入的参数,生成相应的控制信号,控制步进电机的运动。
  4. 状态显示:将步进电机的工作状态信息通过LCD显示出来,包括方向、速度和状态等。

五、项目优势:

  1. 灵活性:可以根据用户的需求,通过用户输入控制步进电机的运动方式和参数。
  2. 实时反馈:通过LCD显示模块实时显示电机的工作状态,方便用户了解电机的运行情况。
  3. 简单易用:基于51单片机的设计简单,容易理解和实现。

六、部分代码

#include "reg51.h"

#include "lcd1602.h"

#define uchar unsigned char

#define uint unsigned int

sbit AA=P2^4;//步进电机

sbit BB=P2^5;

sbit CC=P2^6;

sbit DD=P2^7;

sbit k1=P1^0;//按钮

sbit k2=P1^1;

sbit k3=P1^2;

sbit k4=P1^3;

sbit k5=P1^4;

sbit k6=P1^5;

uchar flag=0,fang=0;//方向控制

uchar speed=0,time=0;//速度控制0-9

uchar start=0;//启动

uchar sec=0;

uchar disp1[]="sudu:0 ";//速度

//主函数

void main()

{

init_1602();

TMOD|=0X01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

ET0=1;//打开定时器0中断允许

EA=1;//打开总中断

TR0=1;//打开定时器

while(1)

{

//按键检测

if(!k1)//启动

{

start=1;

}

if(!k2)//停止

{

start=0;

}

if(!k3)//正转

{

fang=0;

}

if(!k4)//反转

{

fang=1;

}

if(!k5)//加速

{

if(speed<9)

speed++;

while(!k5);

}

if(!k6)//减速

{

if(speed>0)

speed--;

while(!k6);

}

}

}

//定时器中断

void Timer0() interrupt 1

{

if(start==1)//启动

{

if(time<10-speed)//速度0-9

{

time++;

}

else

{

time=0;

if(fang==0) //正转

{

switch(flag)

{

case 0:BB=1;break;

case 1:AA=0;break;

case 2:CC=1;break;

case 3:BB=0;break;

case 4:DD=1;break;

case 5:CC=0;break;

case 6:AA=1;break;

case 7:DD=0;

}

if(flag<7)//下一个状态

flag++;

else

flag=0;

}

else //反转

{

switch(flag)

{

case 0:DD=1;break;

case 1:AA=0;break;

case 2:CC=1;break;

case 3:DD=0;break;

case 4:BB=1;break;

case 5:CC=0;break;

case 6:AA=1;break;

case 7:BB=0;

}

if(flag<7)//下一个状态

flag++;

else

flag=0;

}

}

}

//=================显示

if(sec<50)//0.5s

sec++;

else

{

sec=0;

disp1[5]=speed+0x30;//速度

write_string(1,0,disp1);

if(start)

{

if(fang==0)

{

write_string(2,6,"right");

}

else

{

write_string(2,6,"left ");

}

}

else

{

write_string(2,6,"stop ");

}

}

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

}

七、原理图

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634689
  • 驱动器
    +关注

    关注

    52

    文章

    8227

    浏览量

    146258
  • 控制系统
    +关注

    关注

    41

    文章

    6605

    浏览量

    110578
  • 步进电机
    +关注

    关注

    150

    文章

    3109

    浏览量

    147444
  • 开发板
    +关注

    关注

    25

    文章

    5033

    浏览量

    97375
收藏 人收藏

    评论

    相关推荐

    一种基于微机和单片机步进电机控制系统

    单片机的迅速发展和普及,为设计功能强、价格低的步进电机控制系统提供了先进的威廉希尔官方网站 和充足的资源。本文主要介绍一种基于微机和单片机
    发表于 03-04 14:37

    【每日分享】基于单片机步进电机控制系统设计(二)

    ` 本帖最后由 松山归人 于 2021-4-8 16:06 编辑 大家下午好!继续接着我们上期没讲完的内容,今天我们继续往下。上期回顾:基于单片机步进电机控制系统设计3
    发表于 04-08 16:01

    基于单片机步进电机控制系统相关资料分享

    基于C++Builder下环状阀片位移检测系统的设计基于单片机步进电机控制系统前 言步进
    发表于 06-29 09:51

    怎样去设计一种基于单片机步进电机控制系统

    步进电机是什么?步进电机有哪些应用?怎样去设计一种基于单片机步进
    发表于 07-06 06:25

    怎样去设计一种基于51单片机步进电机控制系统

    基于51单片机步进电机控制系统proteus原理图需要元器件#硬件原理图proteus原理图##附上源代码通过STC89C52芯片的四个外部引脚就可以实现驱动
    发表于 07-08 09:04

    怎么实现基于51单片机步进电机控制系统的设计?

    怎么实现基于51单片机步进电机控制系统的设计?
    发表于 10-19 08:01

    基于AT89C52单片机步进电机控制系统设计

    基于AT89C52单片机步进电机控制系统设计 摘 要: 提出了一个由AT89C52单片机控制
    发表于 04-20 09:31 418次下载

    一种基于微机和单片机步进电机控制系统

    摘要:介绍了一种基于微机和单片机步进电机控制系统,利用上、下位控制
    发表于 07-22 21:16 76次下载

    基于单片机步进电机控制系统的研究

    基于单片机步进电机控制系统的研究....
    发表于 01-04 15:25 23次下载

    基于单片机步进电机控制系统(汇编及C语言程序各一个)

    单片机步进电机控制系统,采用的是C语言。
    发表于 04-28 10:46 22次下载

    基于单片机步进电机控制系统

    基于单片机步进电机控制系统,有需要的下来看看
    发表于 05-03 13:52 46次下载

    基于单片机步进电机控制系统

    基于单片机步进电机控制系统
    发表于 05-25 14:03 39次下载

    基于89c51单片机步进电机控制系统

    基于89c51单片机步进电机控制系统
    发表于 08-31 10:10 69次下载

    基于51单片机步进电机控制系统

    基于51单片机步进电机控制系统proteus原理图需要元器件#硬件原理图proteus原理图##附上源代码通过STC89C52芯片的四个外部引脚就可以实现驱动
    发表于 11-12 11:51 28次下载
    基于51<b class='flag-5'>单片机</b>的<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制系统</b>

    基于单片机步进电机控制系统设计与实现

    电机控制系统, 根据输出信号的不同可以控制步进电机的转动状态,其中采用了28BYJ-48的步进
    发表于 03-21 14:52 0次下载
    基于<b class='flag-5'>单片机</b>的<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制系统</b>设计与实现