求单片机c语言控制步进电机调速程序

2024-11-19 22:32:24
推荐回答(2个)
回答1:

给你一段简单的程序代码,控制步进电机的,不过你要好好看看程序的编写,以适应你的硬件(主要是连线),你可以在实现这个的基础上实现你所说的目标,个人觉得你参考这个程序然后自己实现你所说的功能比较好:
#include
unsigned
char
code
f_rotation[4]={0x08,0x10,0x20,0x40};//正转表格
unsigned
char
code
b_rotation[4]={0x40,0x20,0x10,0x08};//反转表格
void
delay(unsigned
int
i)//延时
{
while(--i);
}
main()
{
unsigned
char
i;
while(1)
{
for(i=0;i<4;i++)
//4相
{
p1=f_rotation[i];
//输出对应的相
可以自行换成反转表格
delay(500);
//改变这个参数可以调整电机转速
}
}
}

回答2:

几相的步进电机啊?用不用驱动芯片?用的话选什么型号的驱动芯片?你要说具体点啊!
先给你三相的,个不用驱动芯片的步进电机程序。(驱动电路自己做)
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
uint
time
void
timer1(void)
interrupt
1
using
1{
//定时器0中断,定时1ms//
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
time++;
}
void
delay(uint
n){
//一般延时
while(--n);
}
void
delay(uint
dtime){
//延时
TR0=1;
while(time<=dtime);
time=0;
TR0=0;
}
void
moto(bit
cf,uchar
n,uint
dtime){
//电机驱动子程序,
uchar
idata
zhpai[4]={0x78,0xb8,0xd8,0xe8};
uchar
idata
fpai[4]={0xe8,0xd8,0xb8,0x78};
uchar
i,l=0;
if(cf==0)
//正转,A-B-C-A
for(i=0;i
追问:
四相的步进电机,采用单极性直流电源供电,应该是不用驱动芯片
评论
0
0
0
加载更多