问题描述
- 42步进电机的c程序怎么写啊
- 问一下42步进电机的c程序怎么写,单片机是c51,只需要实现快转和点动,以及正反转就可以
解决方案
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 charuchar stepd[]={0x010x030x020x060x040xc00x080x09};uchar num=0fx=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;}}}
时间: 2024-10-30 17:49:33