标题:
三轴步进电机驱动程序(51单片机与STM32例程)供大家参考学习
[打印本页]
作者:
chengzhi24
时间:
2018-5-2 21:37
标题:
三轴步进电机驱动程序(51单片机与STM32例程)供大家参考学习
三个步进电机同步运行 直接可用
单片机源程序如下:
#include <REGX51.H>
#define motor1 1
#define motor2 2
#define motor3 3
#define motor1_up 0
#define motor1_down 1
#define motor2_up 0
#define motor2_down 1
#define motor3_up 0
#define motor3_down 1
#define sub 16
sbit pwm1 = P0^0;
sbit pwm2 = P0^1;
sbit pwm3 = P0^2;
sbit dir1 = P0^3;
sbit dir2 = P0^4;
sbit dir3 = P0^5;
sbit exti1 = P1^0;
sbit exti2 = P1^1;
sbit exti3 = P1^2;
int motor1_pulse = 0;
int motor2_pulse = 0;
int motor3_pulse = 0;
char motor1_cons = 0;
char motor2_cons = 0;
char motor3_cons = 0;
void delay_ms(int i)
{
unsigned char a,b;
for(;i>0;i--)
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0FF;
TL0 = 0x48;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void motor_control(char motor,char dir,int pulse)
{
if(motor == motor1)
{
if(dir == motor1_up)
{
dir1 = motor1_up;
}
else
{
dir1 = motor1_down;
}
motor1_cons = 0;
motor1_pulse += (pulse * sub *2);
}
if(motor ==motor2)
{
if(dir == motor2_up)
{
dir2 = motor2_up;
}
else
{
dir2 = motor2_down;
}
motor2_cons = 0;
motor2_pulse += (pulse * sub * 2);
}
if(motor ==motor3)
{
if(dir == motor3_up)
{
dir3 = motor3_up;
}
else
{
dir3 = motor3_down;
}
motor3_cons = 0;
motor3_pulse += (pulse * sub *2);
}
}
void motor_init(void)
{
while((!exti1) | (!exti2)| (!exti3))
{
if(!exti1)
{
motor_control(motor1,motor1_down,5);
}
if(!exti2)
{
motor_control(motor2,motor2_down,5);
}
if(!exti3)
{
motor_control(motor3,motor3_down,5);
}
while((!motor1_cons) | (!motor2_cons)| (!motor3_cons));
}
}
void main(void)
{
InitTimer0();
motor_init();
motor_control(motor1,motor1_up,200);
motor_control(motor2,motor2_up,200);
motor_control(motor3,motor3_up,200);
while((!motor1_cons) | (!motor2_cons)| (!motor3_cons));
delay_ms(1000);
while(1);
}
void Timer1_isr(void) interrupt 1 using 1
{
if(motor1_pulse > 0)
{
motor1_pulse--;
pwm1 = !pwm1;
}
else
{
motor1_cons = 1;
}
if(motor2_pulse > 0)
{
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
程序.rar
(5.33 MB, 下载次数: 76)
2018-5-3 02:11 上传
点击文件名下载附件
参考可行
下载积分: 黑币 -5
作者:
DOTHAT202
时间:
2018-5-4 09:29
能告诉一下STM32例程的电机接线吗?
作者:
smartphone
时间:
2020-4-16 21:22
万分感谢!一直在找这种资料学习
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1