51单片机 a4988驱动器 测试代码

2021-01-26  本文已影响0人  孙煜旺

/*-----------------------------------------------

名称:步进电机

------------------------------------------------*/

#include <reg52.h>

sbit step=P1^0; //步进脉冲,一个正脉冲就转一个步距角

sbit dir=P1^1; //1为正转,0为反转。

sbit sleep=P1^2;

sbit res=P1^3;

unsigned char sum=0;

unsigned char i=200;

/********************毫秒延时函数***************************/

void Delay(unsigned int xms)

{

unsigned int i,j;

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

for(j=110;j>0;j--);

}

void ISR_Key(void) interrupt 2 //外部中断1

{

Delay(20);

sum++;

if(sum==1)

{

dir=~dir;

}

if(sum==1) sum=0;

}

/******************************************************************/

/* 主函数 */

/******************************************************************/

main()

{

dir=1; //正转

sleep=1; //休眠无效

res=1; //复位无效

step=1;

EX1=1; //外部中断1开

IT1=1; //边沿触发

EA=1; //全局中断开

while(i)

{

step=~step;

Delay(2);

i--;

//需要延时,不延时电机不动,延时太久也不动。改变这个参数可以调整电机转速 ,数字越小,转速越大。

}

dir=1; //反转

while(1)

{

step=~step;

Delay(2);

}

}

上一篇下一篇

猜你喜欢

热点阅读