資源簡(jiǎn)介
簡(jiǎn)易式步進(jìn)伺服電機(jī)加減速控制程序,加減速各分成三個(gè)梯度,開(kāi)始運(yùn)行時(shí)
到一定位置開(kāi)始加速,再檢測(cè)第二個(gè)加速位置加速,到第三個(gè)位置正常運(yùn)行,
減速時(shí)檢測(cè)結(jié)束運(yùn)行距離,到設(shè)定值開(kāi)始減速,再判斷第二個(gè)位置,再減速,
再判斷第三個(gè)位置,再減速,程序提供加減速控制的模塊。實(shí)際控制可視現(xiàn)場(chǎng)情況
作出調(diào)整。

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