資源簡介
簡易式步進伺服電機加減速控制程序,加減速各分成三個梯度,開始運行時
到一定位置開始加速,再檢測第二個加速位置加速,到第三個位置正常運行,
減速時檢測結束運行距離,到設定值開始減速,再判斷第二個位置,再減速,
再判斷第三個位置,再減速,程序提供加減速控制的模塊。實際控制可視現場情況
作出調整。

代碼片段和文件信息
/***2017?8?15?PAST??08:10?13775061792******/
/*步進伺服電機加減速測試?L76?CODE406?******/
??#include?????
??????????????#include?????
??????????????#include?????
??????????????#include?????
??????????????#include?????
??#define??????uchar?unsigned?char
??????????????#define??????uint??unsigned?int
??uint?????????valmt;???? ??????????/*電機運行參數寄存器*/
??uint?????????val_mtspeed;???? ??????/*電機運行速度寄存器*/
??uint?????????MtAdDc_mtspeed;???? ??/*電機加減速寄存器*/
??uint?????????val10;???? ??????????/*電機運行緩沖寄存器*/
??sbit?????????MTORCP=P2^4;???????????????//?
??bit ???????MtAdDc_FLAG;???????????????/*電機加減速標志01*/
/*------------------延時子程序------------------------*/?
???????????????void?delay10ms(uint?x)?
???????????????{
???????????????int?i;
???????????????for?(i=0;?i ???;
???????????????}
/*----------電機前進自動加速------------*/
???void???Motor_Run10()??????????/**/
???????????????{?
????uchar?k;
????MtAdDc_FLAG=1; ???//加減速標志置一
????for(val10>0;val10--;)
{
?if(MtAdDc_FLAG==1)
?{
?if(valmt-val10<10) ??//電機運行總值減緩沖器值
?????????????????MtAdDc_mtspeed=val_mtspeed*4P0=MtAdDc_mtspeed;?//4倍定時設定值
?else?if(valmt-val10<30&valmt-val10>10)
?????????????????MtAdDc_mtspeed=val_mtspeed*2P0=MtAdDc_mtspeed;?//2倍定時設定值
?else?if(valmt-val10<50&valmt-val10>30)
?{ ?//定時設定值
?????????????????MtAdDc_mtspeed=val_mtspeed;
?P0=MtAdDc_mtspeed;
?MtAdDc_FLAG=0; ?//加減速標志置零,判斷結束
?}
?}
?else?if(MtAdDc_FLAG==0)
?{
?if(val10<50&val10>30) ???//緩沖器值余50
?{
?MtAdDc_mtspeed=val_mtspeed*2;
?P0=MtAdDc_mtspeed;?//2倍設定時間
?}
?else?if(val10<30&val10>10)? ???//緩沖器值余30
?{
?MtAdDc_mtspeed=val_mtspeed*3;
?P0=MtAdDc_mtspeed;?//4倍設定時間
?}
?else?if(val10<10)? ???//緩沖器值余10
?{
?MtAdDc_mtspeed=val_mtspeed*4;
?P0=MtAdDc_mtspeed;?//8倍設定時間
?}
?}
?for(k=0;k<2;k++) //
?????{?
?????MTORCP=0;??????????????????????/*子函數開始*/
?? ?delay10ms(MtAdDc_mtspeed); ???//
?MTORCP=1;
? ?delay10ms(MtAdDc_mtspeed);
?????}
?P1=val10;
}
}??
void?main()
{
val_mtspeed=8;
valmt=val10=110;
Motor_Run10();
????????????????}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8723??2017-08-15?08:19??電機加減速控制\test\test
?????文件???????2465??2017-08-15?08:19??電機加減速控制\test\test.c
?????文件???????1228??2017-08-15?08:19??電機加減速控制\test\test.hex
?????文件?????????40??2017-08-15?08:19??電機加減速控制\test\test.lnp
?????文件???????6174??2017-08-15?08:19??電機加減速控制\test\test.LST
?????文件???????5801??2017-08-15?08:19??電機加減速控制\test\test.M51
?????文件???????9498??2017-08-15?08:19??電機加減速控制\test\test.OBJ
?????文件???????5143??2017-08-15?08:19??電機加減速控制\test\test.plg
????.......?????55558??2017-08-15?08:20??電機加減速控制\test\test.uvopt
????.......?????13256??2017-08-15?08:20??電機加減速控制\test\test.uvproj
????.......?????????0??2017-08-14?22:19??電機加減速控制\test\test_uvproj.bak
?????目錄??????????0??2017-08-15?08:20??電機加減速控制\test
?????目錄??????????0??2017-08-14?22:19??電機加減速控制
-----------?---------??----------?-----??----
???????????????107886????????????????????13
評論
共有 條評論