資源描述:
《步進(jìn)電機的控制c程序》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、#include#defineucharunsignedchar#defineuintunsignedintucharidatatable1[]={0xf3,0xf9,0xfC,0xf6,0xff};//正轉(zhuǎn)ucharidatatable2[]={0xf3,0xf6,0xfc,0xf9,0xff};//反轉(zhuǎn)sbitkey1=P0^7;//方向控制以direct為標(biāo)志sbitkey2=P0^6;//速度控制以mode為標(biāo)志(加速)sbitkey3=P0^5;//速度控制以mode為標(biāo)志(減速)sbitkey4=P0^4;//停止以st
2、op為標(biāo)志staticucharmode=1;//速度控制bitdirect=0;//方向控制bitstop=0;//停止標(biāo)志bitflag=0;//中斷標(biāo)志ucharsn=200;//步數(shù)ucharidata*control_mode;//控制速度指針/**************************************************************//****************延時部分**************************************/voiddelay1ms(){uchari,j=8;w
3、hile(j--){for(i=0;i<125;i++){;}}}/**************************************************************//****************移動控制**************************************/voidmove(){uchari;if(direct){control_mode=table1;}else{control_mode=table2;}do{P1=control_mode[i];if(control_mode[++i]==0
4、xff){i=0;}while(flag);flag=1;}while(sn--);if(stop){TR1=0;}else{TR1=1;}}/**************************************************************//****************轉(zhuǎn)速控制**************************************/voiddelay(void)interrupt3using1{TH1=(65536-mode*1000)/256;TL1=(65536-mode*1000)%256
5、;flag=0;}/**************************************************************//****************按鍵控制**************************************/voidscan_key(void)interrupt0using2{if(key1==0){delay1ms();if(key1==0){while(key1==0);direct=~direct;}}if(key2==0){delay1ms();if(key2==0){while(ke
6、y2==0);mode=mode+1;if(mode==20){mode=0;}}}if(key3==0){delay1ms();if(key3==0){while(key3==0);mode=mode-1;if(mode<0){mode=20;}}}if(key4==0){delay1ms();if(key4==0){while(key4==0);stop=~stop;}}}/**************************************************************//****************主函數(shù)****
7、************************************/voidmain(void){TMOD=0x10;TH1=(65536-mode*100)/256;TL1=(65536-mode*100)%256;TR1=1;PX0=1;EX0=1;ET1=1;EA=1;P1=0xff;while(1){move();}}/**************************************************************/