分享好友 天南地北首页 网站导航

51单片机控制步进电机

网友发布 2023-07-30 08:48 · 头闻号仪器机械

这个简单,让我来教楼主怎么玩

首先我说下思路:

我们采用P1口来采集ADC0832的8位数据,用P0.0口控制步进电机动作,利用T0的时间中断来采集P1口的ADC0832数据并做出比较后设置步进电机启动标志位start=1;并设置他的运行频率,当然,楼主没说怎么比较,我这就只是写了个简单的例子,一通百通,希望对你有帮助

下面是程序:

#include <reg51.h> //选用晶振11.0592MHz

unsigned int m=0,n=0; //设置循环的周期

unsigned char start=0,t0temp=0;

sbit Y0=P0^0; //控制步进电机的管脚

delay()

{

unsigned char i,j;

for(i=m;i>0;i--)

for(j=n;i>0;j--);

}

main()

{

//自检测T0时间设置

ET0=1;

TMOD|=0x01;

TH0=0XFC; //1ms中断扫描

TL0=0X66;

IT0=1; //下降沿触发

TR0=0; //关闭扫描

/

#include?<reg52.h> ?

#include?<intrins.h>

#define?uint?unsigned?int

#define?uchar?unsigned?char

#define?_Nop()?_nop_()

#define?motor?P0?

sbit?P12?=?P1^2;?

sbit?P11?=?P1^1;?

sbit?P10?=?P1^0;?

sbit?led1?=?P1^3;?

sbit?led2?=?P1^4;?

uchar?code?table1[]={0xf3,0xf6,0xfc,0xf9};?

uchar?code?table2[]={0xf3,0xf9,0xfc,0xf6};?

void?delay_1ms(uchar?x)

{

uchar?j;

while(x--)?{?for(j=0;j<125;j++);?}

}

void?main()

{

uchar?yunzhuang=0;?

uchar?count=0;?

motor?=?0xf0;?

while(1){

if(yunzhuang==0){

motor?=?0xf0;?

led1=0;led2=0;

}

else?if(yunzhuang==1){

led1=0;led2=1; ?//等于0为点亮LED灯

motor?=?table1[count];?

}

else?if(yunzhuang==2){

led1=1;led2=0; ?//等于0为点亮LED灯

motor?=?table2[count];?

}

count++;

if(count>=4)?count=0;

delay_1ms(5);

if(P12==0){

delay_1ms(3);

if(P12==0){

yunzhuang?=?1;

}

}

else?if(P11==0){

delay_1ms(3);

if(P11==0){

yunzhuang?=?0;

count?=?0;

}

}

else?if(P10==0){

delay_1ms(3);

if(P10==0){

yunzhuang?=?2;

}

}

}

}

用单片机的四个口接uln的四个输入,然后uln四个输出接步进电机的ABCD,剩下的那一根红线是接VCC的。控制单片机四个口的输出控制正反转

uchar zheng[8] ={0x01,0X03,0x02,0X06,0x04,0X0C,0x08,0X09};//正转 电机导通相序 A-AB-B-BC-C-CD-D-DA

uchar fan[8]={0X09,0X08,0X0C,0X04,0X06,0X02,0X03,0X01};//反转 电机导通相序 DA-D-CD-C-BC-B-AB

void zhengzhuan()//正转函数

{

uchar a;

for(a=0;a<8;a++)

{

SM=zheng[a];

delay(speed);//过多长时间让a自加,每次自加使电机导通线圈改变进而转动。

//通过调节a自加的时间来改变转动一个角度的时间,即角速度 ,delay是延时函数

}

}

void fanzhuan()//反转函数

{

uchar b;

for(b=0;b<8;b++)

{

SM=fan[b];

delay(speed);

免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报

举报
反对 0
打赏 0
更多相关文章

收藏

点赞