⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 步进电机转动控制-集成驱动模块.txt

📁 基于单片机控制的步进电机驱动程序
💻 TXT
字号:
#include  "reg51.h"
sbit p14=P1^4;   //控制方向
sbit p15=P1^5;   //驱动脉冲
sbit p16=P1^6;   //脱机电平
sbit P3_4=P3^4;  //控制百位
sbit P3_5=P3^5;  // 控制十位
sbit P3_6=P3^6;  // 控制个位
sbit P3_7=P3^7;  // 确认键
unsigned char smg[]={0xfe,0xfd,0xfb,
};
unsigned char xianshi[]={0,0,0};
unsigned char m;
int baiwei;
int shiwei;
int gewei;
unsigned int count;
unsigned int n,n1;
int i,j;
long i1,i2,j1;
void main()
{ p16=1;
  p15=0;
p14=1;   //控制电机转向
TMOD=0x01;
TH0=0xf8; //初值决定电机旋转的速度
TL0=0xff;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(P3_4==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P3_4==0)
{
baiwei++;
if(baiwei==10)
{
baiwei=0;
}

}
while(P3_4==0);                //关键的步骤
}
if(P3_5==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P3_5==0)
{
shiwei++;
if(shiwei==10)
{
shiwei=0;
}
}
while(P3_5==0);
}
if(P3_6==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P3_6==0)
{
gewei++;
if(gewei==10)
{
gewei=0;
}

}
while(P3_6==0);
}
if(P3_7==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P3_7==0)
{ n1=1;
count=baiwei*100+shiwei*10+gewei;
j1=count*800;

}
while(P3_7==0);
}
}
}
void t0(void) interrupt 1 using 0
{
TH0=0xf8;
TL0=0xff;
n++;
if(n==3)
{
n=0;
P0=xianshi[m];
P2=smg[m];
m++;
if(m==3)
m=0;
}

if(n1==1)
{   i1++;
    i2++;
    p15=!p15;
    if(i2%6400==0)       //转8圈后反向旋转
    {i2=0; p14=!p14;}
    
    if(i1%800==0)
    {gewei=gewei-1;
     if(gewei==-1)
     {shiwei-=1;
      gewei=9;
     }
    }
    if(i1==j1)           //到达制定圈数后电机停止转动
    {n1=0;p15=0;}
}
xianshi[0]=gewei;
xianshi[1]=shiwei;
xianshi[2]=baiwei;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -