当前位置:首页 > 单片机 > 单片机
[导读]ME300系列单片机开发系统+步进电机模块演示程序

 

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; i<8; 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();

}

}

}

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭