文档库 最新最全的文档下载
当前位置:文档库 › 步进电机按键控制正反转

步进电机按键控制正反转

/***********************************************************************************
* 标题: 步进电机试验五(正转一圈 反转一圈) *
* *
* 通过本例程了解步进马达使用及驱动程序编写 *
*; 单双八拍工作方式: *
*; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度) *
* *
* 请学员一定要消化掉本例程 *
*
**************************************************************************************/

#include "reg52.h"
#define uchar unsigned char //数据类型宏定义
#define uint unsigned int
#define out P1

sbit k1 = P0^0;
sbit k2 = P0^1;
uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转
uchar code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转

/****************** 延时程序*********************************/
void delay(uint j)
{
uchar i;
for(;j>0;j--)
{
i=250;
while(--i);
i=249;
while(--i);
}
}

/**********************步进电机驱动 *****************************/
void motor_ffw()
{
uchar i;

if(k1==0)
delay(10);
if(k1==0)
{
for (i=0; i<8; i++)
{
out = FFW[i]; //取数据
delay(5); //调节转速
}
}

if(k2==0)
delay(10);
if(k2==0)
{
for (i=0; i<8; i++)
{
out = FFZ[i]; //取数据
delay(5); //调节转速
}
}
}
/***********************主函数***********************/
void main(void)
{
while(1)
{

motor_ffw();


}
}


相关文档
相关文档 最新文档