📄 main.c
字号:
//QQ:228939191.
//两相5、6线步进电机,分为四拍和八拍,这里介绍输出八拍方式:A-AC-C-CB-B-BD-D-DA
//四拍:A-C-B-D,因此在八拍的基础上减去中间的就可以了,不过步距角要大一倍
//#include <reg51.h>
#include "STC89C52.H"
#include <intrins.h>
//定义两相电机的四组线,
sbit LA1=P0^0; //为 A相
sbit LB1=P0^1; //为 B相
sbit LA2=P0^2; //为/A相
sbit LB2=P0^3; //为/B相
#define uchar unsigned char
void mDelay(unsigned int DelayTime); //延时函数
//2相4拍
/************************************************************************************/
//两个参数代表步进步数和转速
void Right1(unsigned int BuShu,unsigned int SuDu)
{
//步进节拍:A-AC-C-CB-B-BD-D-DA
while(1)
{
LA1=0;LB1=1;LA2=1;LB2=1;
mDelay(SuDu); //这里的延时就可控制转速
if(!BuShu--)break; //判断步进量走完没?以下都是,每走一步,判断一次
LA1=0;LB1=0;LA2=1;LB2=1;
mDelay(SuDu);
if(!BuShu--)break;
LA1=1;LB1=0;LA2=1;LB2=1;
mDelay(SuDu);
if(!BuShu--)break;
LA1=1;LB1=0;LA2=0;LB2=1;
mDelay(SuDu);
if(!BuShu--)break;
LA1=1;LB1=1;LA2=0;LB2=1;
mDelay(SuDu);
if(!BuShu--)break;
LA1=1;LB1=1;LA2=0;LB2=0;
mDelay(SuDu);
if(!BuShu--)break;
LA1=1;LB1=1;LA2=1;LB2=0;
mDelay(SuDu);
if(!BuShu--)break;
LA1=0;LB1=1;LA2=1;LB2=0;
mDelay(SuDu);
if(!BuShu--)break;
}
// P0=0xFF;
}
//2相4拍
/************************************************************************************/
void Right2(unsigned int BuShu,unsigned int SuDu)
{
//步进节拍:A1B1-B1A2-A2B2-B2A1
while(1)
{
LA1=0;LB1=0;LA2=1;LB2=1;
mDelay(SuDu);//这里的延时就可控制转速
if(!BuShu--)break;
LA1=1;LB1=0;LA2=0;LB2=1;
mDelay(SuDu);
if(!BuShu--)break;
LA1=1;LB1=1;LA2=0;LB2=0;
mDelay(SuDu);
if(!BuShu--)break;
LA1=0;LB1=1;LA2=1;LB2=0;
mDelay(SuDu);
if(!BuShu--)break;
}
}
/************************************************************************************/
void mDelay(unsigned int DelayTime) //延时函数
{
unsigned char j=0;
while(DelayTime--)
{
for(j=0;j<20;j++){}
}
}
/************************************************************************************/
void main()
{
while(1)
{
//如果控制方式为2相4拍,一圈是200个脉冲。那一个脉冲是1.8度。
//如果电机连接机械运行一圈是100mm,那一个脉冲是0.5mm。
//如果你要电机运行248mm,知道给几个脉冲了吧?如果不知道安就撞墙了。
if(P1_0==0)Right2(800,12); //P1_0按下,电机运行800个脉冲。12是延时,数越大速度就越慢。
else P0=0x0F;//停止后将四个脚输出置高
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -