由51机P1口控制步进电机编写程序并在输出脉冲序列控制步进电机实现反转、正传、加速和减速 !!!!!急求

由51机P1口控制步进电机编写程序并在输出脉冲序列控制步进电机实现反转、正传、加速和减速 !!!!!急求,第1张

1、本程序用于测试4相步进电机常规驱动

2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来

3、速度不可以调节的过快,不然就没有力矩转动了

4、按s4(设置成独立按键模式)可以控制正反转

------------------------------------------------/

#include <reg52h>

bit Flag;//定义正反转标志位

unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正转表格

unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反转表格

//

/ 延时函数 /

//

void Delay(unsigned int i)//延时

{

while(--i);

}

//

/ 主函数 /

//

main()

{

unsigned char i;

EX1=1; //外部中断0开

IT1=1; //边沿触发

EA=1; //全局中断开

while(!Flag)

{

P0=0x71;//显示 F 标示正转

for(i=0;i<4;i++) //4相

{

P1=F_Rotation[i]; //输出对应的相 可以自行换成反转表格

Delay(500); //改变这个参数可以调整电机转速 ,数字越小,转速越大

}

}

while(Flag)

{

P0=0x7C;//显示 b 标示反转

for(i=0;i<4;i++) //4相

{

P1=B_Rotation[i]; //输出对应的相

Delay(500); //改变这个参数可以调整电机转速 ,数字越小,转速越大

}

}

}

//

/ 中断入口函数 /

//

void ISR_Key(void) interrupt 2 using 1

{

Delay(300);

Flag=!Flag; //s3按下触发一次,标志位取反

}

298就是个H桥供电的,就写程序来说没多大关系,主要是你得测出或者查出步进电机的相序,然后按相序给IO电平就可以,每次给一个,中间间隔的时间用个可变的延时,通过改变延时来改变速度,反转嘛,你就反顺序给就可以了。

不知道你具体要什么的程序,程序太大,告你给思路吧。

哥们儿,你还是自己加油吧,用汇编写这个是比较麻烦的。

不过提醒你,一定要查出或测出步进相序才行。

以上就是关于由51机P1口控制步进电机编写程序并在输出脉冲序列控制步进电机实现反转、正传、加速和减速 !!!!!急求全部的内容,包括:由51机P1口控制步进电机编写程序并在输出脉冲序列控制步进电机实现反转、正传、加速和减速 !!!!!急求、请问基于L297/298单片机控制两相双极性步进电机正反转以及加速减速的程序怎么写急!!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10625816.html

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

发表评论

登录后才能评论

评论列表(0条)

保存