stc89c52单片机怎么联接驱动器控制步进电机图

stc89c52单片机怎么联接驱动器控制步进电机图,第1张

步进电机驱动器控制信号一般而言有以下两种:

1、CW(正转信号),CCW(反转信号),都是脉冲信号,脉冲频率决定速度大小。

2、CW(速度信号,为脉冲),DIR(方向信号,为电平)

#include<reg52h>

//#include "reg52h"

unsigned char code RUN[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6};  //步进电机相序表

void delay(unsigned int t);

//

//步进电机驱动

void  motor_ffw(unsigned int n)                                  //正转函数

{

 unsigned char i,j,s,x;

 for(x=0;x<n;x++)

 {

 for(s=0;s<43;s++)

{ for(j=0;j<12;j++)

{

    for (i=0; i<8; i++)    

      {

        P1 = RUN[i];      

        delay(5);          

      }

}  }

 }

  }

//

void  motor_ffm(unsigned int n)                                      //反转函数

{

 unsigned char i,j,s,x;

 for(x=0;x<n;x++)

 {

 for(s=0;s<43;s++)

{ for(j=0;j<12;j++)

{

    for (i=8; i>0; i--)    

      {

        P1 = RUN[i];      

        delay(5);          

      }

}

}

  }

}

/延时函数/

void delay(unsigned int t)

{                        

 unsigned int k;

 while(t--)

 {

   for(k=0; k<60; k++)//用for的空循环延长程序的执行时间

   { }

 }

}

//

void main()

{

 motor_ffw(1); //正转  1r

 P1=0x00;

 delay(500);

 motor_ffm(2);  //反转         2r

 P1=0x00;

 delay(500);

 while(1)

 {}

}

(这个型号步进电机自带减速器,上面的程序角度输出可能不太准确!

)前两天刚刚写的文件,你编译成hex文件烧写进去就好了!我今年大一,自学单片机!欢迎一起交流!qq810817901

我已经编译过了,应该没有问题

#include<reg51h>#define uchar unsigned char

#define uint unsigned int

uchar steptabt[]={0x08,0,0x02,0x06,0x04,0x05,0x01,0x09};

uchar steptabf[]={0,0x06,0x05,0x09,0,0x06,0x05,0x09};

uint freq,ftim;

uchar num;

sbit keyqt=P1^0;

sbit keyfx=P1^1;

void delay(){

uchar i,j;

for(i=0;i<30;i++)

for(j=0;j<120;j++);

}

void t0isr() interrupt 1

{

TH0=(65536-ftim)/256;

TL0=(65536-ftim)%256;

P0=steptabt[num]; //半步

// P0=steptabf[num]; //全步

if(keyfx==1)

{

num++;

num%=8;

}

else

{

if(num==0)num=7;

else num--;

}

}

main()

{

TMOD=0x01;

freq=400; //转动频率,你可以自己改变

ftim=1000000/2/freq;

TH0=(65536-ftim)/256;

TL0=(65536-ftim)%256;

ET0=1;

EA=1;

while(1)

{

if(keyqt==0)

{

delay();

if(keyqt==0)TR0=~TR0;

}

}

}

用三个L298n便可以控制六台步进电机了!每个L298n均可以驱动两台步进电机。你去网上搜一下L298N芯片,有好多经典电路图。大多数是一个L298N控制两个步进电机,另外四个类推就可以了

大概就是这个样子了

#include<reg52h>

#define uchar unsigned signed

sbit jia_key=P3^6;

sbit jian_key=P3^7;

sbit zf_key=P3^5;

bit flag=0;

uchar codetable[]={0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01};

uchar num,qidong,PWM,table_begin;

void delay(uchar 1)

{

uchar j,k;

for(j=i;j>0;j--)

for(k=125;k>0;k--);

}

void key()

{

if(jia_key==0)

{

delay(5);

if(jia_key==0)

{

num++;

if(num==4)num=3;

while(jia_key==0);

}

}

if(jian_key==0)

{

delay(5);

if(jian_key==0)

if(num!=0)

num--;

else

num=0;

while(jian_key==0);

}

}

if(zf_key==0)

{

delay(5);

if(zf_key==0)

{

flag=-flag;

while(zf_key==0);

}

}

}

void qidong()

{

uchar i,j;

switch(num)

{

case 0:PWM=5;break;

case 1:PWM=4;break;

case 2:PWM=3;break;

case 3:PWM=2;break;

}

if(flag==0)

table_begin=0;

else

table_begin=4;

for(i=table_begin;i<4+table_begin;i++)

{

P1=table[i];

for(j=0;j<PWM;j++)

delay(10);

}

}

void main()

{

while(1)

{

key();

qidong();

}

}

以上就是关于stc89c52单片机怎么联接驱动器控制步进电机图全部的内容,包括:stc89c52单片机怎么联接驱动器控制步进电机图、STC单片机89C52RC .步进电机驱动板型号是ULN2003AN 。步进电机是四相五线的,型号是28BYJ-48 .、求STC89C52RC单片机控制直线步进电机的例子,是用驱动器控制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9420696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存