基于51单片机的步进电机调速系统

一.硬件方案

        本设计是基于51单片机控制的步进电机设计课题是以单片机为主控制模块,从而实现电机的启停、正反转和调速的目的的一个设计。步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电动机就转一个角度,因此非常适合于单片机控制。

       整体按键主要由51单片机+最小系统+四位数码管显示电路+ULN2003驱动电路+步进电机+按键模块;

二.设计功能

(1)本设计采用51单片机作为主控器,电机采用DC-5V步进减速电机(步进角度5.625°,减速比1/64);

(2)集成芯片ULN2003作为电机驱动;

(3)按键功能:按键1正转、按键2反转、按键3速度加、按键4速度减5暂停/开始;

(4)LED数码管一位显示电机的正反转,三位和四位显示电机运行速度的档数;

(5)五个红色LED,一个为电源指示,四个指示电机的转速。

三.设计原理图

Protues仿真图:

四.程序设计

    主程序源码如下:

//================================主函数=============================================
void main()
{
  T0_T1_init();
  buf[1] = 10;//不显示
  a=b=c=d=0;
  while(1)
  {
    display();
    if(s1 == 0)
    {
      delay1m(3);
      if(s1 == 0)
      {
        flag1 = 0;//正转
        buf[0] = 0;//最高位显示0
    //    haha = 0x00;//停止
         
      }
      while(!s1) display();
    }
    if(s2 == 0 )
    {
    
      delay1m(3);
      if(s2 == 0)
      {
      
        flag1 = 1;//反转
        buf[0] = 1;//最高位显示1
    //    haha = 0x00;//停止
      }
      while(!s2) display();
    }
    if(s3 == 0)     //速度加1档
    {
      delay1m(3);
      if(s3 == 0)
      {
        k++;
        TR1=1;
        if(k > 10 )
        {
          k = 1;
        }
        buf[2]= k/10;
        buf[3]= k%10;
      } 
      while(!s3) display();
    }
    if(s4 == 0)   //速度减1档
    {
      delay1m(3);
      if(s4 == 0)
      {
        k--;
        TR1=1;
        if(k <= 0)
        {
          k = 10;
        }
        buf[2]= k/10;
        buf[3]= k%10;
      }
      while(!s4) display();
    }
    if(s5==0)
    {
      delay1m(3);
      if(s5==0)
      {
        if(TR1==1)
        {
          pause=k;
          k=0;
          TR1=0;
          a=b=c=d=0;
        }
        else if(TR1==0)
        {
          k=pause;
          TR1=1;
        }
        buf[2]= k/10;
        buf[3]= k%10;
        while(!s5) display();
      }
    }
  }
}

资料链接:https://pan.baidu.com/s/1GrPNYqqHBB11oA4Xh_aGHg?pwd=14du 
提取码:14du

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值