ldy7474 发表于 2016-9-14 02:50:37

自学笔记步进电机驱动程序

/*****************
步进电机驱动程序0.1
硬件不熟直接贴到代码里方便修改
                                stc15w204s
                             _______
                P1.2--1 |                | 16--P1.1
                P1.3--2 |                | 15--P1.0
                P1.4--3 |                | 14--P3.7
                P1.5--4 |                | 13--P3.6
                P5.4--5 |                | 12--P3.3
                VCC --6 |                | 11--P3.2
                P5.5--7 |                | 10--P3.1
                GND --8 |_______| 9 --P3.0
***/                          
#include<STC15F2.h>
#include<intrins.h>//汇编指令调用头文件
//步进电机驱动程序
#define uint unsigned int
#define uchar unsigned char


sbit a=P1^1;//接步进电机A相
sbit b=P1^0;//接步进电机B相
sbit c=P3^7;//接步进电机C相
sbit d=P3^6;//接步进电机D相
sbit led=P5^5;//接个灯让程序循环一圈闪一下判断系统是否正常工作可不接
/**
1秒是1000ms
1秒1次,叫1hz
1秒100次,是100hz

每次动作,用50ms,那么1秒就能动20次
这个就是20hz
延时50是 20Hz,延时20是50Hz

**/
void Delay1ms()                //@12.000MHz
{
      uchar i, j;


      i = 12;
      j = 169;
      do
      {
                while (--j);
      } while (--i);
}


void delay_n_ms(uint n) //自己定义的延时n毫秒函数
{
      while(n)         
      {
                Delay1ms();
                n=n-1;//每循环一次n减小1
      }   
}




main()
{       
        uint y,j;
   y=2;                //经过试验Y的值调整范围2~100
   //在这个范围可以正常转动超过这个范围就没法控制了
   //数值越小转速越快500HZ为步进电机极限频率频率调整范围10HZ~500HZ


   j=512;
   //j的值为512是因为A B C D循环一次所转动的角度为0.7031
   //乘以512刚好可以转动一周0.7013*512=360
      
      while(j--)
      {       
                        a=1;//电机A相通电
                        b=0;
                        c=0;
                        d=0;
            delay_n_ms(y);//


                        a=0;
                        b=1;//电机B相通电
                        c=0;
                        d=0;
            delay_n_ms(y);//


                        a=0;
                        b=0;
                        c=1;//电机C相通电
                        d=0;
            delay_n_ms(y);//


                        a=0;
                        b=0;
                        c=0;
                        d=1;//电机D相通电
            delay_n_ms(y);//
                        //程序循环到这里就刚好控制电机转动0.7013度循环512次刚好一周                       
                        led=~led;
                                       
                }
                                       
        }

独行者 发表于 2021-7-26 08:46:37

学习了,谢谢楼主分享。

zhoulile123 发表于 2021-7-25 14:33:10

给力!!!奥利给

UG577 发表于 2021-7-12 09:28:34

学习学习{:1_1:}{:1_1:}{:1_1:}{:1_1:}

mimiCP 发表于 2020-8-27 02:48:35

看不懂啊·····我也想要A4988,傻瓜式驱动的。新手好难学{:1_2:}

ygrdfx 发表于 2020-3-19 09:23:11

好烧脑子,太专业了

fzlong1988 发表于 2019-8-16 20:18:39

很好很强大!谢谢

hellopp20082008 发表于 2018-3-7 17:27:13

材料材料很好,大神就是大神。

zxy2266 发表于 2017-7-13 16:40:45

谢谢楼主,有时间仿一下,手里2003不少那

ldy7474 发表于 2017-7-11 16:51:05

zxy2266 发表于 2017-7-9 22:00 static/image/common/back.gif
楼主能给个详细的2003的电路接线吗

按照图示正确接好电源然后A B C D接上就可以

ldy7474 发表于 2017-7-11 16:42:53

本帖最后由 ldy7474 于 2017-7-11 16:48 编辑

zxy2266 发表于 2017-7-9 22:00 static/image/common/back.gif
楼主能给个详细的2003的电路接线吗

百度一下2003网上大把我是用的现成的模块

ldy7474 发表于 2016-9-14 03:07:49

程序是根据萝莉的七色花修改得来的
其间走了点弯路 频率设置不对转不起来
调试时以为5v电压不够上12v的时候电源接反
差点把uln2003干掉
芯片和电机都烫手了
还好ULN2003比较耐操
程序还不够完善等萝莉大神教我们按键控制以后我把正反转调速功能加上
现在还不知道怎么写
先放一边调个小程序累出一身汗

脉动帝 发表于 2016-9-14 07:42:06

路过帮顶

武杰杰 发表于 2016-9-14 08:25:11

学习一下

竹蜻蜓 发表于 2016-9-14 08:37:41

学习了……

rensanny 发表于 2016-9-14 09:57:48

路过,顶一下,学习了。

脉动帝 发表于 2016-9-14 12:05:25

路过帮顶

zhangyiyun2014 发表于 2016-9-14 14:32:47

学习啦,顶顶                        

机甲老顽童 发表于 2016-9-14 22:05:45

ldy7474 发表于 2016-9-14 03:07
程序是根据萝莉的七色花修改得来的
其间走了点弯路 频率设置不对转不起来
调试时以为5v电压不够上12v的 ...

楼主改个步进驱动4988模块的,UL2003.太麻烦了

tjcdq 发表于 2016-9-15 01:25:13

有一个高手现身了!

ldy7474 发表于 2016-9-15 03:17:12

yrj 发表于 2016-9-14 22:05
楼主改个步进驱动4988模块的,UL2003.太麻烦了

好的稍等我现在也在研究A4988

武杰杰 发表于 2016-9-15 13:58:40

祝大家中秋快乐,永不炸鸡

Loki 发表于 2016-9-19 21:55:08

顶一个

scdyzjcq 发表于 2016-10-14 22:26:57

不错啊,基本看懂了,谢谢楼主。

panlongdian 发表于 2016-10-15 18:44:51

学习精神可嘉。

3300178839 发表于 2016-10-15 20:42:33

学习了,。。。。。。。。。。。。。。。。。。。

迪烈克斯 发表于 2016-10-17 11:54:33

这个字体大小, 看得很心累, 满屏, 就是一个函数....

angerb 发表于 2017-2-19 01:04:51

学习

angerb 发表于 2017-2-20 01:16:29

谢谢,学习

snowbun 发表于 2017-3-18 18:49:30

感谢楼主的奉献
页: [1] 2
查看完整版本: 自学笔记步进电机驱动程序