新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 步进电机加速-匀速-减速运行程序(C51源程序)

步进电机加速-匀速-减速运行程序(C51源程序)

作者:时间:2018-08-01来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201808/384843.htm

ME300系列单片机开发系统+步进电机模块演示程序

功能:步进电机以加速方式启动,转速达到程序规定的最快速度后保持一段时间匀速运转,又开始以减速

方式运行直到步进电机停止转动。由K1键控制演示程序运行。步进电机模块上D1-D4可以指示工作状态。

/******************************************************************/

/* */

/* ME300B单片机开发系统演示程序 - 步进电机加减速运行程序 */

/* */

/* 步进电机启动时,转速由慢到快逐步加速。 */

/* 步进电机匀速运行 */

/* 步进电机由快到慢逐步减速到停止 */

/* 网站http://www.elecfans.com */

/******************************************************************/

#include //51芯片管脚定义头文件

#include //内部包含延时函数 _nop_();

#define uchar unsigned char

#define uint unsigned int

sbit K1=P1^4;

uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};

//uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};

uchar rate ;

/********************************************************/

/*

/* 延时

/* 11.0592MHz时钟,

/*

/********************************************************/

void delay()

{

uchar k;

uint s;

k = rate;

do

{

for(s = 0 ; s 500 ; s++) ;

}while(--k);

}

/********************************************************/

/*

/*步进电机正转

/*

/********************************************************/

void motor_ffw()

{

uchar i;

for (i=0; i8; i++) //一个周期转30度

{

P1 = FFW[i]; //取数据

delay(); //调节转速

}

}

/********************************************************

*

*步进电机运行

*

*********************************************************/

void motor_turn()

{

uchar x;

rate=0x10;

x=0xf0;

do

{

motor_ffw(); //加速

rate--;

}while(rate!=0x01);

do

{

motor_ffw(); //匀速

x--;

}while(x!=0x01);

do

{

motor_ffw(); //减速

rate++;

}while(rate!=0x10);

}

/********************************************************

*

* 主程序

*

*********************************************************/

main()

{

P1=0xf0;

while(1)

{

P1=0xf0;

if(K1==0)

{

motor_turn();

}

}

}

/********************************************************/



关键词: 51单片机

评论


相关推荐

技术专区

关闭