資源簡介
步進電機的詳細簡單加減速的控制方法,很實用的。希望對有需要的朋友有所幫助。

代碼片段和文件信息
/******************************************************************/
/*****************************************************************/?
/*???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
/*?????????????????步進電機加減速運行程序????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
/*???????????????步進電機啟動時,轉速由慢到快逐步加速。??????????????????????????????????????????????????????????????????????
/*???????????????步進電機勻速運行???????????????????????????????????????????????????????????????????????????????????????????????????????
/*???????????????步進電機由快到慢逐步減速到停止?
/*????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
/******************************************************************/
????
#include????????
#include?????
#define?uchar?unsigned?char
#define?uint??unsigned?int
sbit??addr0?=?P1^4;
sbit??addr1?=?P1^5;
sbit??addr2?=?P1^6;
sbit??addr3?=?P1^7;
uchar?code?FFW[8]={0x0e0x0c0x0d0x090x0b0x030x070x06};//正轉數組
uchar?code?REV[8]={0x060x070x030x0b0x090x0d0x0c0x0e};//反轉數組
uchar?rate?;????????
/********************************************************/
/*??????????????????????????????????????????????????
/*?延時
/*?11.0592MHz時鐘,????????????????????????????????????
/*??????????????????????????????????????????????????????
/********************************************************/
void?delay()
?{???????????????????????????
???uchar?k;
???uint?s;
???k?=?rate;
???do
????{
???????for(s?=?0?;?s?<100?;?s++)?;??
????}while(--k);
?}
void?delay2(uchar?k)
?{??
?????????????????????????
???uchar?s;
???for(s?=?0?;?s?
???}
/********************************************************/
/*
/*步進電機正轉
/*
/********************************************************/
void??motor_ffw()
{?
???uchar?i;
?
????for?(i=0;?i<8;?i++)??????//一個周期轉30度
????{??
???????P0?=?FFW[i];//取數據
???????addr0?=?1;
???????addr1?=?0;
???????addr2?=?1;
???????addr3?=?1;
???????addr3?=?0;
???????delay();?????????????????//調節(jié)轉速
????}
}
/********************************************************/
/*
/*步進電機反轉
/*
/********************************************************/
void??motor_rev()
{?
???uchar?i;
?
????for?(i=0;?i<8;?i++)??????//一個周期轉30度
????{??
???????P0?=?REV[i];?//取數據
???????addr0?=?1;
???????addr1?=?0;
???????addr2?=?1;
???????addr3?=?1;
???????addr3?=?0;
???????delay();?????????????????//調節(jié)轉速
????}
}
/********************************************************
*???????????????????????????????????????????????????????
*步進電機運行???????????????????????????????????????????????
*???????????????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5115??2002-04-16?15:32??步進電機\STARTUP.A51
?????文件??????11789??2006-10-10?09:41??步進電機\STARTUP.lst
?????文件????????886??2006-10-10?09:41??步進電機\STARTUP.obj
?????文件???????5735??2006-12-04?19:35??步進電機\motor
?????文件???????7948??2006-12-04?19:35??步進電機\motor.LST
?????文件???????7525??2006-12-04?19:35??步進電機\motor.M51
?????文件???????6347??2006-12-04?19:35??步進電機\motor.OBJ
?????文件???????1019??2006-12-04?19:37??步進電機\motor.Opt
?????文件???????1979??2006-12-04?19:37??步進電機\motor.Uv2
?????文件????????981??2006-10-10?10:11??步進電機\motor.asm
?????文件???????4453??2006-11-08?09:06??步進電機\motor.c
?????文件????????647??2006-12-04?19:35??步進電機\motor.hex
?????文件?????????27??2006-12-04?19:35??步進電機\motor.lnp
?????文件????????545??2006-12-04?19:37??步進電機\motor.plg
?????文件???????1018??2006-11-23?10:54??步進電機\motor_Opt.Bak
?????文件???????1999??2006-10-10?10:41??步進電機\motor_Uv2.Bak
?????目錄??????????0??2007-05-14?13:12??步進電機
-----------?---------??----------?-----??----
????????????????58231????????????????????18
評論
共有 條評論