问一下42步进电机的c程序怎么写,单片机是c51,只需要实现快转和点动,以及正反转就可以
1条回答 默认 最新
- havedream_one 2016-05-19 23:50关注
42步进电机是一个两相电机,一般控制可以分为全步或半步控制,全步控制,每一切换相序,步进电机走1.8度,半步控制则走0.9度。 全步控制相序分配为:A,/A,B,/B 半步控制相序分配为:A,AB,B,B/A,/A,/A/B,/B,/BA 加速的话,就使相序切换快一点就可以;当然减速就是相序切换慢点就行。举例如下: #include<reg51.h> #define uchar unsigned char uchar stepd[]={0x01,0x03,0x02,0x06,0x04,0xc0,0x08,0x09}; uchar num=0,fx=0; sbit keyup=P3^0; sbit keydn=P3^1; sbit keyfx=P3^2; int speed=10000; void t0isr() interrupt 1 { TH0=(65536-speed)/256; TL0=(65536-speed)%256; P2=stepd[num]; if(fx==0){num++;num%=8;} if(fx==1) { if(num==0)num=7; else num--; } } main() { TMOD=0x01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; TR0=1; ET0=1; EA=1; while(1) { if(keyup==0) { while(key1==0); speed-=10; } if(keydn==0) { while(keydn==0); speed+=10; } if(key3==0) { while(key3==0); fx=~fx; } } }
解决 1无用