/******************************************************************
/* *
/* KT900单片机开发系统演示程序 - 步进电机控制程序 *
/* *
/* 步进电机启动时,转速由慢到快逐步加速。 *
/* *
/* 邮箱: 89s51@163.com *
/* 网站: http://www.150000.com *
/* 作者: 007 *
/* 时间: 2006/05/18 *
/* *
/*【版权】COPYRIGHT(C)南方电子 www.150000.com ALL RIGHTS RESERVED *
/*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! *
/* *
/******************************************************************/
#include <reg51.h> //51芯片管脚定义头文件
#include <intrins.h> //内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint unsigned int
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,t;
k = rate;
t = 0x00;
do{
do{ _nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}while(--t);
}while(--k);
}
/********************************************************/
/*
/*步进电机正转
/*
/********************************************************/
void motor_ffw()
{
uchar i;
for (i=0; i<8; i++) //一个周期转30度
{
P1 = FFW; //取数据
delay(); //调节转速
}
}
/********************************************************
*
* 主程序
*
*********************************************************/
main()
{
rate = 0x10;
while(1)
{
motor_ffw(); //电机正转
if(rate>2)
rate--;
}
}
/********************************************************/
|