标题:
三级调速步进电机C程序
[打印本页]
作者:
heicad
时间:
2014-10-24 14:01
标题:
三级调速步进电机C程序
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
sbit a=P1^4;
sbit b=P1^5;
sbit c=P1^6;
sbit d=P1^7;
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
void delay(uchar i)//延时函数
{
uint x,y;
for(x=i;x>0;x--)
for(y=30;y>0;y--);
}
void run(uchar i)//运转函数
{
a=0;
delay(i);
a=1;
b=0;
delay(i);
b=1;
c=0;
delay(i);
c=1;
d=0;
delay(i);
d=1;
}
void main()
{
P3=0xff;
a=1;
b=1;
c=1;
d=1;
while(1)
{
stop :if(k1==0)//停止运转
a=b=c=d=1;
k2 :if(k2==0)//低速运转
{
delay(5);
if(k2==0)
{
while(k2==0);
while(1)
{
if(k1==0)
goto stop;
if(k3==0)
goto k3;
if(k4==0)
goto k4;
run(300);
}
}
}
k3 :if(k3==0)//中速运转
{
delay(5);
if(k3==0)
{
while(k3==0);
while(1)
{
if(k1==0)
goto stop;
if(k2==0)
goto k2;
if(k4==0)
goto k4;
run(250);
}
}
}
k4 :if(k4==0)//高速运转
{
delay(5);
if(k4==0)
{
while(k4==0);
while(1)
{
if(k1==0)
goto stop;
if(k3==0)
goto k3;
if(k2==0)
goto k2;
run(200);
}
}
}
}
}
作者:
bg8sya
时间:
2016-3-30 23:43
你好,我用这个程序控制TB6560带42步进可以正转,但是却不能反转,停止有效,不知道怎么修改,请指点一下,谢谢
作者:
bg8sya
时间:
2016-3-30 23:44
采用的是共阴极接法
QQ图片20160329235014.png
(117.81 KB, 下载次数: 77)
下载附件
2016-3-30 23:44 上传
作者:
腾飞的龙
时间:
2016-3-31 14:13
void run(uchar i)//运转函数
{
a=0;
delay(i);
a=1;
b=0;
delay(i);
b=1;
c=0;
delay(i);
c=1;
d=0;
delay(i);
d=1;
}把运转函数倒过来就行啦。
void run(uchar i)//运转函数
{
a=1;
delay(i);
a=0;
b=1;
delay(i);
b=0;
c=1;
delay(i);
c=0;
d=1;
delay(i);
d=0;
}
作者:
zs85205627
时间:
2020-6-29 00:02
为什么模拟 步进电机几乎不动呢
作者:
Jeff_BlindCat
时间:
2020-6-29 12:46
谢谢楼主分享,这个功能很好。
这个单片机直连电机,因为单片机IO口输出电流限制,时间长了是不是会对U有影响,
如果加上max2303或者L298,那功能是不是功能更强大?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1