欢迎来到天天文库
浏览记录
ID:24394245
大小:64.69 KB
页数:4页
时间:2018-11-14
《步进电机的控制c程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、#include#defineucharunsignedchar#defineuintunsignedintucharidatatable1[]={0xf3,0xf9,0xfC,0xf6,0xff};//正转ucharidatatable2[]={0xf3,0xf6,0xfc,0xf9,0xff};//反转sbitkey1=P0^7;//方向控制以direct为标志sbitkey2=P0^6;//速度控制以mode为标志(加速)sbitkey3=P0^5;//速度控制以mode为标志(减速)sbitkey4=P0^4;//停止以st
2、op为标志staticucharmode=1;//速度控制bitdirect=0;//方向控制bitstop=0;//停止标志bitflag=0;//中断标志ucharsn=200;//步数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;}}/**************************************************************//****************转速控制**************************************/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;}}}/**************************************************************//****************主函数****
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();}}/**************************************************************/
此文档下载收益归作者所有