步進(jìn)電機(jī)加速-勻速-減速運(yùn)行程序(C51源程序)
ME300系列單片機(jī)開發(fā)系統(tǒng)+步進(jìn)電機(jī)模塊演示程序
功能:步進(jìn)電機(jī)以加速方式啟動(dòng),轉(zhuǎn)速達(dá)到程序規(guī)定的最快速度后保持一段時(shí)間勻速運(yùn)轉(zhuǎn),又開始以減速
方式運(yùn)行直到步進(jìn)電機(jī)停止轉(zhuǎn)動(dòng)。由K1鍵控制演示程序運(yùn)行。步進(jìn)電機(jī)模塊上D1-D4可以指示工作狀態(tài)。
/******************************************************************/
/* */
/* ME300B單片機(jī)開發(fā)系統(tǒng)演示程序 - 步進(jìn)電機(jī)加減速運(yùn)行程序 */
/* */
/* 步進(jìn)電機(jī)啟動(dòng)時(shí),轉(zhuǎn)速由慢到快逐步加速。 */
/* 步進(jìn)電機(jī)勻速運(yùn)行 */
/* 步進(jìn)電機(jī)由快到慢逐步減速到停止 */
/* 網(wǎng)站http://www.elecfans.com */
/******************************************************************/
#include //51芯片管腳定義頭文件
#include //內(nèi)部包含延時(shí)函數(shù) _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 ;
/********************************************************/
/*
/* 延時(shí)
/* 11.0592MHz時(shí)鐘,
/*
/********************************************************/
void delay()
{
uchar k;
uint s;
k = rate;
do
{
for(s = 0 ; s 500 ; s++) ;
}while(--k);
}
/********************************************************/
/*
/*步進(jìn)電機(jī)正轉(zhuǎn)
/*
/********************************************************/
void motor_ffw()
{
uchar i;
for (i=0; i8; i++) //一個(gè)周期轉(zhuǎn)30度
{
P1 = FFW[i]; //取數(shù)據(jù)
delay(); //調(diào)節(jié)轉(zhuǎn)速
}
}
/********************************************************
*
*步進(jìn)電機(jī)運(yùn)行
*
*********************************************************/
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();
}
}
}
/********************************************************/
評(píng)論